diff --git a/plugin/src/main/java/lol/pyr/znpcsplus/metadata/MetadataFactory.java b/plugin/src/main/java/lol/pyr/znpcsplus/metadata/MetadataFactory.java index 340f923..1843e23 100644 --- a/plugin/src/main/java/lol/pyr/znpcsplus/metadata/MetadataFactory.java +++ b/plugin/src/main/java/lol/pyr/znpcsplus/metadata/MetadataFactory.java @@ -26,5 +26,5 @@ public interface MetadataFactory { Collection name(Component name); EntityData noGravity(); EntityData pose(EntityPose pose); - EntityData shaking(); + EntityData shaking(boolean enabled); } diff --git a/plugin/src/main/java/lol/pyr/znpcsplus/metadata/V1_17MetadataFactory.java b/plugin/src/main/java/lol/pyr/znpcsplus/metadata/V1_17MetadataFactory.java index 624c02e..137447b 100644 --- a/plugin/src/main/java/lol/pyr/znpcsplus/metadata/V1_17MetadataFactory.java +++ b/plugin/src/main/java/lol/pyr/znpcsplus/metadata/V1_17MetadataFactory.java @@ -15,7 +15,7 @@ public class V1_17MetadataFactory extends V1_16MetadataFactory { } @Override - public EntityData shaking() { - return newEntityData(7, EntityDataTypes.INT, 140); + public EntityData shaking(boolean enabled) { + return newEntityData(7, EntityDataTypes.INT, enabled ? 140 : 0); } } diff --git a/plugin/src/main/java/lol/pyr/znpcsplus/metadata/V1_8MetadataFactory.java b/plugin/src/main/java/lol/pyr/znpcsplus/metadata/V1_8MetadataFactory.java index b41cc24..8b79756 100644 --- a/plugin/src/main/java/lol/pyr/znpcsplus/metadata/V1_8MetadataFactory.java +++ b/plugin/src/main/java/lol/pyr/znpcsplus/metadata/V1_8MetadataFactory.java @@ -41,7 +41,7 @@ public class V1_8MetadataFactory implements MetadataFactory { } @Override - public EntityData shaking() { + public EntityData shaking(boolean enabled) { throw new UnsupportedOperationException("The shaking entity data isn't supported on this version"); } diff --git a/plugin/src/main/java/lol/pyr/znpcsplus/npc/NpcRegistryImpl.java b/plugin/src/main/java/lol/pyr/znpcsplus/npc/NpcRegistryImpl.java index fa91a62..062f4ad 100644 --- a/plugin/src/main/java/lol/pyr/znpcsplus/npc/NpcRegistryImpl.java +++ b/plugin/src/main/java/lol/pyr/znpcsplus/npc/NpcRegistryImpl.java @@ -136,7 +136,7 @@ public class NpcRegistryImpl implements NpcRegistry { if (npcIdLookupMap.containsKey(id)) throw new IllegalArgumentException("An npc with the id " + id + " already exists!"); NpcImpl npc = new NpcImpl(UUID.randomUUID(), configManager, textSerializer, world, type, location, packetFactory); NpcEntryImpl entry = new NpcEntryImpl(id, npc); - npcIdLookupMap.put(id, entry); + register(entry); return entry; } @@ -144,7 +144,7 @@ public class NpcRegistryImpl implements NpcRegistry { public void delete(String id) { id = id.toLowerCase(); if (!npcIdLookupMap.containsKey(id)) return; - npcIdLookupMap.remove(id).getNpc().delete(); + unregister(npcIdLookupMap.get(id)); } public void unload() { diff --git a/plugin/src/main/java/lol/pyr/znpcsplus/packets/V1_17PacketFactory.java b/plugin/src/main/java/lol/pyr/znpcsplus/packets/V1_17PacketFactory.java index fc09651..a17ae92 100644 --- a/plugin/src/main/java/lol/pyr/znpcsplus/packets/V1_17PacketFactory.java +++ b/plugin/src/main/java/lol/pyr/znpcsplus/packets/V1_17PacketFactory.java @@ -24,7 +24,7 @@ public class V1_17PacketFactory extends V1_16PacketFactory { properties.hasProperty(propertyRegistry.getByName("glow", Boolean.class)), properties.getProperty(propertyRegistry.getByName("invisible", Boolean.class)), false)); - if (properties.getProperty(propertyRegistry.getByName("shaking", Boolean.class))) add(data, metadataFactory.shaking()); + add(data, metadataFactory.shaking(properties.getProperty(propertyRegistry.getByName("shaking", Boolean.class)))); return data; } }