From 89c6613794ca1c60d472b21170a91cdb726f5552 Mon Sep 17 00:00:00 2001 From: Alex 'mcmonkey' Goodwin Date: Fri, 20 Dec 2019 12:01:43 -0800 Subject: [PATCH] add Bee support to EntityAnger --- .../bukkit/BukkitElementProperties.java | 2 +- .../properties/entity/EntityAnger.java | 36 ++++++++++++++----- 2 files changed, 28 insertions(+), 10 deletions(-) diff --git a/plugin/src/main/java/com/denizenscript/denizen/objects/properties/bukkit/BukkitElementProperties.java b/plugin/src/main/java/com/denizenscript/denizen/objects/properties/bukkit/BukkitElementProperties.java index d21dbaf5f0..7561c48694 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/objects/properties/bukkit/BukkitElementProperties.java +++ b/plugin/src/main/java/com/denizenscript/denizen/objects/properties/bukkit/BukkitElementProperties.java @@ -236,7 +236,7 @@ public static void registerTags() { }); // <--[tag] - // @attribute ]> + // @attribute )]> // @returns ElementTag // @group text manipulation // @description diff --git a/plugin/src/main/java/com/denizenscript/denizen/objects/properties/entity/EntityAnger.java b/plugin/src/main/java/com/denizenscript/denizen/objects/properties/entity/EntityAnger.java index 38b66e6fc6..421e2f7e71 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/objects/properties/entity/EntityAnger.java +++ b/plugin/src/main/java/com/denizenscript/denizen/objects/properties/entity/EntityAnger.java @@ -1,18 +1,26 @@ package com.denizenscript.denizen.objects.properties.entity; +import com.denizenscript.denizen.nms.NMSHandler; +import com.denizenscript.denizen.nms.NMSVersion; import com.denizenscript.denizen.objects.EntityTag; import com.denizenscript.denizencore.objects.core.ElementTag; import com.denizenscript.denizencore.objects.Mechanism; import com.denizenscript.denizencore.objects.ObjectTag; import com.denizenscript.denizencore.objects.properties.Property; import com.denizenscript.denizencore.tags.Attribute; -import org.bukkit.entity.EntityType; +import org.bukkit.entity.Bee; +import org.bukkit.entity.Entity; import org.bukkit.entity.PigZombie; public class EntityAnger implements Property { public static boolean describes(ObjectTag entity) { - return entity instanceof EntityTag && ((EntityTag) entity).getBukkitEntityType() == EntityType.PIG_ZOMBIE; + if (!(entity instanceof EntityTag)) { + return false; + } + Entity bukkitEntity = ((EntityTag) entity).getBukkitEntity(); + return bukkitEntity instanceof PigZombie || + (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_14) && bukkitEntity instanceof Bee); } public static EntityAnger getFrom(ObjectTag entity) { @@ -61,6 +69,15 @@ public String getPropertyId() { // ObjectTag Attributes //////// + public int getAnger() { + if (entity.getBukkitEntity() instanceof PigZombie) { + return ((PigZombie) entity.getBukkitEntity()).getAnger(); + } + else { + return ((Bee) entity.getBukkitEntity()).getAnger(); + } + } + @Override public ObjectTag getObjectAttribute(Attribute attribute) { @@ -74,13 +91,11 @@ public ObjectTag getObjectAttribute(Attribute attribute) { // @mechanism EntityTag.anger // @group properties // @description - // Returns the anger level of a PigZombie. + // Returns the anger level of a PigZombie or Bee. // --> if (attribute.startsWith("anger")) { - if (entity.getBukkitEntityType() == EntityType.PIG_ZOMBIE) { - return new ElementTag(((PigZombie) entity.getBukkitEntity()).getAnger()) - .getObjectAttribute(attribute.fulfill(1)); - } + return new ElementTag(getAnger()) + .getObjectAttribute(attribute.fulfill(1)); } return null; @@ -94,15 +109,18 @@ public void adjust(Mechanism mechanism) { // @name anger // @input ElementTag(Boolean) // @description - // Changes the anger level of a PigZombie. + // Changes the anger level of a PigZombie or Bee. // @tags // // --> if (mechanism.matches("anger") && mechanism.requireInteger()) { - if (entity.getBukkitEntityType() == EntityType.PIG_ZOMBIE) { + if (entity.getBukkitEntity() instanceof PigZombie) { ((PigZombie) entity.getBukkitEntity()).setAnger(mechanism.getValue().asInt()); } + else { + ((Bee) entity.getBukkitEntity()).setAnger(mechanism.getValue().asInt()); + } } } }