From 7fbe42e2078d13012aa077724e722bb84dd8a1cc Mon Sep 17 00:00:00 2001 From: D3v1s0m Date: Thu, 12 Dec 2024 14:30:22 +0400 Subject: [PATCH] feat: Creaking NPC Type and its properties --- .../znpcsplus/entity/EntityPropertyRegistryImpl.java | 10 ++++++++++ .../main/java/lol/pyr/znpcsplus/npc/NpcTypeImpl.java | 5 +++++ .../lol/pyr/znpcsplus/npc/NpcTypeRegistryImpl.java | 6 ++++++ 3 files changed, 21 insertions(+) diff --git a/plugin/src/main/java/lol/pyr/znpcsplus/entity/EntityPropertyRegistryImpl.java b/plugin/src/main/java/lol/pyr/znpcsplus/entity/EntityPropertyRegistryImpl.java index f097962..6e02d58 100644 --- a/plugin/src/main/java/lol/pyr/znpcsplus/entity/EntityPropertyRegistryImpl.java +++ b/plugin/src/main/java/lol/pyr/znpcsplus/entity/EntityPropertyRegistryImpl.java @@ -667,6 +667,16 @@ public class EntityPropertyRegistryImpl implements EntityPropertyRegistry { // Bogged register(new BooleanProperty("bogged_sheared", 16, false, legacyBooleans)); + + if (!ver.isNewerThanOrEquals(ServerVersion.V_1_21_2)) return; + + // Creaking + register(new BooleanProperty("creaking_active", 17, false, legacyBooleans)); + + if (!ver.isNewerThanOrEquals(ServerVersion.V_1_21_4)) return; + + // Creaking + register(new BooleanProperty("creaking_crumbling", 18, false, legacyBooleans)); } private void registerSerializer(PropertySerializer serializer) { diff --git a/plugin/src/main/java/lol/pyr/znpcsplus/npc/NpcTypeImpl.java b/plugin/src/main/java/lol/pyr/znpcsplus/npc/NpcTypeImpl.java index 1e6a26d..1a9bb9c 100644 --- a/plugin/src/main/java/lol/pyr/znpcsplus/npc/NpcTypeImpl.java +++ b/plugin/src/main/java/lol/pyr/znpcsplus/npc/NpcTypeImpl.java @@ -176,6 +176,11 @@ public class NpcTypeImpl implements NpcType { addProperties("wolf_variant"); } } + if (version.isNewerThanOrEquals(ServerVersion.V_1_21_4)) { + if (EntityTypes.isTypeInstanceOf(type, EntityTypes.CREAKING)) { + addProperties("creaking_crumbling"); + } + } return new NpcTypeImpl(name, type, hologramOffset, new HashSet<>(allowedProperties), defaultProperties); } } diff --git a/plugin/src/main/java/lol/pyr/znpcsplus/npc/NpcTypeRegistryImpl.java b/plugin/src/main/java/lol/pyr/znpcsplus/npc/NpcTypeRegistryImpl.java index 39f52b7..78c217e 100644 --- a/plugin/src/main/java/lol/pyr/znpcsplus/npc/NpcTypeRegistryImpl.java +++ b/plugin/src/main/java/lol/pyr/znpcsplus/npc/NpcTypeRegistryImpl.java @@ -386,6 +386,12 @@ public class NpcTypeRegistryImpl implements NpcTypeRegistry { register(builder(p, "breeze", EntityTypes.BREEZE) .setHologramOffset(-0.205)); + + if (!version.isNewerThanOrEquals(ServerVersion.V_1_21_2)) return; + + register(builder(p, "creaking", EntityTypes.CREAKING) + .setHologramOffset(0.725) + .addProperties("creaking_active")); } public Collection getAll() {