@Override protected void decode( ChannelHandlerContext channelHandlerContext, FMLProxyPacket fmlProxyPacket, List<Object> out) throws Exception { ByteBuf payload = fmlProxyPacket.payload(); byte discriminator = payload.readByte(); Class<? extends AbstractPacketOld> clazz = this.packets.get(discriminator); if (clazz == null) { throw new NullPointerException("No packet registered for discriminator: " + discriminator); } AbstractPacketOld packet = clazz.newInstance(); packet.decodeInto(channelHandlerContext, payload.slice()); EntityPlayer player; switch (FMLCommonHandler.instance().getEffectiveSide()) { case CLIENT: player = PacketHandlerOld.getClientPlayer(); packet.handleClientSide(player); break; case SERVER: INetHandler netHandler = channelHandlerContext.channel().attr(NetworkRegistry.NET_HANDLER).get(); player = ((NetHandlerPlayServer) netHandler).playerEntity; packet.handleServerSide(player); break; default: } out.add(packet); }