diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/data/EntityData.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/data/EntityData.java index 183a0578d..923211049 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/data/EntityData.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/data/EntityData.java @@ -7,6 +7,7 @@ public interface EntityData { Object serializer(); int id(); T defaultValue(); + Object entityDataAccessor(); default Object createEntityDataIfNotDefaultValue(T value) { if (defaultValue().equals(value)) return null; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/data/SimpleEntityData.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/data/SimpleEntityData.java index 7993ed163..ae96ccc3a 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/data/SimpleEntityData.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/data/SimpleEntityData.java @@ -1,14 +1,18 @@ package net.momirealms.craftengine.bukkit.entity.data; +import net.momirealms.craftengine.bukkit.nms.FastNMS; + public class SimpleEntityData implements EntityData { private final int id; private final Object serializer; private final T defaultValue; + private final Object entityDataAccessor; public SimpleEntityData(int id, Object serializer, T defaultValue) { this.id = id; this.serializer = serializer; this.defaultValue = defaultValue; + this.entityDataAccessor = FastNMS.INSTANCE.constructor$EntityDataAccessor(id, serializer); } @Override @@ -25,4 +29,9 @@ public class SimpleEntityData implements EntityData { public T defaultValue() { return defaultValue; } + + @Override + public Object entityDataAccessor() { + return entityDataAccessor; + } }