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); } }
@Override public String toString() { return "DataWatcherObject[index=" + getIndex() + ", serializer=" + getSerializer() + "]"; }
/** * Gets this Item's index from the watcher object * @return The index */ public int getIndex() { if (MinecraftReflection.watcherObjectExists()) { return getWatcherObject().getIndex(); } return modifier.<Integer>withType(int.class).read(1); }