@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);
 }