/** * 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; }