From 652a4787cc5574fe45cae37b49512a04da49db69 Mon Sep 17 00:00:00 2001 From: Alex 'mcmonkey' Goodwin Date: Tue, 15 Dec 2020 03:57:23 -0800 Subject: [PATCH] add hoglins to entity immune property --- .../properties/entity/EntityImmune.java | 30 ++++++++++++++++--- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/plugin/src/main/java/com/denizenscript/denizen/objects/properties/entity/EntityImmune.java b/plugin/src/main/java/com/denizenscript/denizen/objects/properties/entity/EntityImmune.java index 03596ec99d..f8efecfe91 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/objects/properties/entity/EntityImmune.java +++ b/plugin/src/main/java/com/denizenscript/denizen/objects/properties/entity/EntityImmune.java @@ -6,13 +6,15 @@ import com.denizenscript.denizencore.objects.core.ElementTag; import com.denizenscript.denizencore.objects.properties.Property; import com.denizenscript.denizencore.tags.Attribute; +import org.bukkit.entity.Hoglin; import org.bukkit.entity.PiglinAbstract; public class EntityImmune implements Property { public static boolean describes(ObjectTag entity) { return entity instanceof EntityTag - && ((EntityTag) entity).getBukkitEntity() instanceof PiglinAbstract; + && (((EntityTag) entity).getBukkitEntity() instanceof PiglinAbstract + || ((EntityTag) entity).getBukkitEntity() instanceof Hoglin); } public static EntityImmune getFrom(ObjectTag entity) { @@ -38,13 +40,28 @@ private EntityImmune(EntityTag entity) { EntityTag dentity; + public boolean isHoglin() { + return dentity.getBukkitEntity() instanceof Hoglin; + } + + public Hoglin getHoglin() { + return (Hoglin) dentity.getBukkitEntity(); + } + public PiglinAbstract getPiglin() { return (PiglinAbstract) dentity.getBukkitEntity(); } + public boolean getIsImmune() { + if (isHoglin()) { + return getHoglin().isImmuneToZombification(); + } + return getPiglin().isImmuneToZombification(); + } + @Override public String getPropertyString() { - return getPiglin().isImmuneToZombification() ? "true" : "false"; + return getIsImmune() ? "true" : "false"; } @Override @@ -68,7 +85,7 @@ public ObjectTag getObjectAttribute(Attribute attribute) { // Returns whether this piglin entity is immune to zombification. // --> if (attribute.startsWith("immune")) { - return new ElementTag(getPiglin().isImmuneToZombification()) + return new ElementTag(getIsImmune()) .getObjectAttribute(attribute.fulfill(1)); } @@ -88,7 +105,12 @@ public void adjust(Mechanism mechanism) { // // --> if (mechanism.matches("immune") && mechanism.requireBoolean()) { - getPiglin().setImmuneToZombification(mechanism.getValue().asBoolean()); + if (isHoglin()) { + getHoglin().setImmuneToZombification(mechanism.getValue().asBoolean()); + } + else { + getPiglin().setImmuneToZombification(mechanism.getValue().asBoolean()); + } } } }