package gtPlusPlus.core.handler; import cpw.mods.fml.common.network.ByteBufUtils; import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.network.simpleimpl.*; import cpw.mods.fml.relauncher.Side; import net.minecraft.entity.player.EntityPlayerMP; import io.netty.buffer.ByteBuf; public class PacketHandler { public static SimpleNetworkWrapper packetLightning; public PacketHandler(){ packetLightning = NetworkRegistry.INSTANCE.newSimpleChannel("gtpp_Lightning"); packetLightning.registerMessage(Packet_Lightning_Handler.class, Packet_Lightning.class, 0, Side.SERVER); } /** * Internal Packet Handlers * @author Alkalus * */ private class Packet_Lightning implements IMessage{ public void sendTo(IMessage msg, EntityPlayerMP player){ packetLightning.sendTo(msg, player); } public void sendToServer(String string){ packetLightning.sendToServer(new Packet_Lightning(string)); } private String text; public Packet_Lightning(String text) { this.text = text; } @Override public void fromBytes(ByteBuf buf) { text = ByteBufUtils.readUTF8String(buf); // this class is very useful in general for writing more complex objects } @Override public void toBytes(ByteBuf buf) { ByteBufUtils.writeUTF8String(buf, text); } } private class Packet_Lightning_Handler implements IMessageHandler{ @Override public IMessage onMessage(Packet_Lightning message, MessageContext ctx) { System.out.println(String.format("Received %s from %s", message.text, ctx.getServerHandler().playerEntity.getDisplayName())); return null; // no response in this case } } }