From 4489e5dacca1cce4120c5f6f9e174b764ab4b5aa Mon Sep 17 00:00:00 2001 From: Pyrbu Date: Mon, 26 Jun 2023 12:20:42 +0200 Subject: [PATCH] add setProperty method to the api --- .../java/lol/pyr/znpcsplus/api/entity/PropertyHolder.java | 1 + .../main/java/lol/pyr/znpcsplus/hologram/HologramLine.java | 5 +++++ plugin/src/main/java/lol/pyr/znpcsplus/npc/NpcImpl.java | 5 +++++ 3 files changed, 11 insertions(+) diff --git a/api/src/main/java/lol/pyr/znpcsplus/api/entity/PropertyHolder.java b/api/src/main/java/lol/pyr/znpcsplus/api/entity/PropertyHolder.java index 51ffcfd..b3d3b95 100644 --- a/api/src/main/java/lol/pyr/znpcsplus/api/entity/PropertyHolder.java +++ b/api/src/main/java/lol/pyr/znpcsplus/api/entity/PropertyHolder.java @@ -3,4 +3,5 @@ package lol.pyr.znpcsplus.api.entity; public interface PropertyHolder { T getProperty(EntityProperty key); boolean hasProperty(EntityProperty key); + void setProperty(EntityProperty key, T value); } diff --git a/plugin/src/main/java/lol/pyr/znpcsplus/hologram/HologramLine.java b/plugin/src/main/java/lol/pyr/znpcsplus/hologram/HologramLine.java index 181d05a..4140ae6 100644 --- a/plugin/src/main/java/lol/pyr/znpcsplus/hologram/HologramLine.java +++ b/plugin/src/main/java/lol/pyr/znpcsplus/hologram/HologramLine.java @@ -52,4 +52,9 @@ public class HologramLine implements PropertyHolder { public boolean hasProperty(EntityProperty key) { return key.getName().equalsIgnoreCase("name") || key.getName().equalsIgnoreCase("invisible"); } + + @Override + public void setProperty(EntityProperty key, T value) { + throw new UnsupportedOperationException("Can't set properties on a hologram"); + } } diff --git a/plugin/src/main/java/lol/pyr/znpcsplus/npc/NpcImpl.java b/plugin/src/main/java/lol/pyr/znpcsplus/npc/NpcImpl.java index 2fee6a6..39b57b7 100644 --- a/plugin/src/main/java/lol/pyr/znpcsplus/npc/NpcImpl.java +++ b/plugin/src/main/java/lol/pyr/znpcsplus/npc/NpcImpl.java @@ -129,6 +129,11 @@ public class NpcImpl extends Viewable implements Npc { return propertyMap.containsKey((EntityPropertyImpl) key); } + @Override + public void setProperty(EntityProperty key, T value) { + setProperty((EntityPropertyImpl) key, value ); + } + public void setProperty(EntityPropertyImpl key, T value) { if (value == null || value.equals(key.getDefaultValue())) removeProperty(key); else propertyMap.put(key, value);