private static Object newHandle(WrappedDataWatcherObject watcherObject, Object value) { if (constructor == null) { constructor = Accessors.getConstructorAccessor(HANDLE_TYPE.getConstructors()[0]); } if (MinecraftReflection.watcherObjectExists()) { return constructor.invoke(watcherObject.getHandle(), value); } else { // new WatchableObject(classId, index, value) return constructor.invoke(WrappedDataWatcher.getTypeID(value.getClass()), watcherObject.getIndex(), value); } }