@Override protected void encode( ChannelHandlerContext channelHandlerContext, AbstractPacketOld abstractPacketOld, List<Object> out) throws Exception { ByteBuf buffer = Unpooled.buffer(); Class<? extends AbstractPacketOld> clazz = abstractPacketOld.getClass(); if (!this.packets.contains(abstractPacketOld.getClass())) { throw new NullPointerException( "No Packet Registered for: " + abstractPacketOld.getClass().getCanonicalName()); } byte discriminator = (byte) this.packets.indexOf(clazz); buffer.writeByte(discriminator); abstractPacketOld.encodeInto(channelHandlerContext, buffer); FMLProxyPacket proxyPacket = new FMLProxyPacket( new PacketBuffer(buffer.copy()), channelHandlerContext.channel().attr(NetworkRegistry.FML_CHANNEL).get()); out.add(proxyPacket); }