Java tutorial
/** * This work is licensed under the Creative Commons * Attribution-ShareAlike 3.0 Unported License. To view a copy of this * license, visit http://creativecommons.org/licenses/by-sa/3.0/. */ package nxminetilities.network; import java.util.logging.Logger; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.network.INetworkManager; import net.minecraft.network.packet.Packet250CustomPayload; import nxminetilities.network.MinetilitiesPacket.ProtocolException; import com.google.common.io.ByteArrayDataInput; import com.google.common.io.ByteStreams; import cpw.mods.fml.common.network.IPacketHandler; import cpw.mods.fml.common.network.Player; import cpw.mods.fml.relauncher.Side; public class PacketHandler implements IPacketHandler { @Override public void onPacketData(INetworkManager manager, Packet250CustomPayload packet, Player player) { try { EntityPlayer entityPlayer = (EntityPlayer) player; ByteArrayDataInput in = ByteStreams.newDataInput(packet.data); int packetId = in.readUnsignedByte(); MinetilitiesPacket minetilitiesPacket = MinetilitiesPacket.constructPacket(packetId); minetilitiesPacket.read(in); minetilitiesPacket.execute(entityPlayer, entityPlayer.worldObj.isRemote ? Side.CLIENT : Side.SERVER); } catch (ProtocolException e) { if (player instanceof EntityPlayerMP) { ((EntityPlayerMP) player).playerNetServerHandler.kickPlayerFromServer("Protocol Exception!"); Logger.getLogger("nxMinetilities") .warning("Player " + ((EntityPlayer) player).username + " caused a Protocol Exception!"); } } catch (Exception e) { throw new RuntimeException("Unexpected exception during Packet construction!", e); } } }