(!MinecraftReflection.isMinecraftClass(clazz) || 
         Factory.class.isAssignableFrom(clazz))) {
      clazz = clazz.getSuperclass();
    }
    
    return PrettyPrinter.printObject(packet, clazz, MinecraftReflection.getPacketClass(), PrettyPrinter.RECURSE_DEPTH, new ObjectPrinter() {
      @Override
      public boolean print(StringBuilder output, Object value) {
        // Special case
        if (value instanceof byte[]) {
          byte[] data = (byte[]) value;