/** * 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); }
/** * Constructs a new DataWatcher using a fake egg entity and a given * list of watchable objects. * * @param objects The list of objects */ public WrappedDataWatcher(List<WrappedWatchableObject> objects) { this(); if (MinecraftReflection.watcherObjectExists()) { for (WrappedWatchableObject object : objects) { setObject(object.getWatcherObject(), object); } } else { for (WrappedWatchableObject object : objects) { setObject(object.getIndex(), object); } } }
/** * Clone the content of the current DataWatcher. * * @return A cloned data watcher. */ public WrappedDataWatcher deepClone() { WrappedDataWatcher clone = new WrappedDataWatcher(getEntity()); if (MinecraftReflection.watcherObjectExists()) { for (WrappedWatchableObject wrapper : this) { clone.setObject(wrapper.getWatcherObject(), wrapper); } } else { for (WrappedWatchableObject wrapper : this) { clone.setObject(wrapper.getIndex(), wrapper); } } return clone; }