package cn.academy.core.network;
import cn.academy.core.config.ACConfig;
import com.google.common.base.Charsets;
import com.typesafe.config.ConfigFactory;
import cpw.mods.fml.common.network.simpleimpl.IMessage;
import cpw.mods.fml.common.network.simpleimpl.IMessageHandler;
import cpw.mods.fml.common.network.simpleimpl.MessageContext;
import cpw.mods.fml.relauncher.Side;
import io.netty.buffer.ByteBuf;
import com.typesafe.config.Config;
import java.io.*;
/**
* Created by Paindar on 2016/8/31.
*/
public class MessageConfig implements IMessage
{
public static class Handler implements IMessageHandler<MessageConfig, IMessage>
{
@Override
public IMessage onMessage(MessageConfig message, MessageContext ctx)
{
if (ctx.side == Side.CLIENT)
{
ACConfig.updateConfig(message.config);
}
return null;
}
}
public Config config;
@Override
public void fromBytes(ByteBuf byteBuf)
{
File file=new File("cache/academy-craft-data.conf");
if(!file.exists())
(new File(file.getParent())).mkdirs();
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
try {
String string = byteBuf.toString(Charsets.UTF_8);
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
bw.write(string);
bw.close();
config=ConfigFactory.parseFile(file);
file.delete();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void toBytes(ByteBuf byteBuf)
{
String string=config.root().render();
try {
byteBuf.writeBytes(string.getBytes("UTF-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}