From 058b327612dd3cf7470f558f855c056dc6111eca Mon Sep 17 00:00:00 2001 From: jhqwqmc <2110242767@qq.com> Date: Fri, 6 Jun 2025 18:32:25 +0800 Subject: [PATCH] =?UTF-8?q?feat(entity):=20=E4=B8=BA=20EntityData=20?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E6=B7=BB=E5=8A=A0=20entityDataAccessor=20?= =?UTF-8?q?=E6=96=B9=E6=B3=95=E5=B9=B6=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../craftengine/bukkit/entity/data/EntityData.java | 1 + .../craftengine/bukkit/entity/data/SimpleEntityData.java | 9 +++++++++ 2 files changed, 10 insertions(+) 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; + } }