From 01ebba4443a2dbbbbe8928909fbc1c1ee32ad1d5 Mon Sep 17 00:00:00 2001 From: TheBusyBiscuit Date: Mon, 2 Nov 2020 22:57:53 +0100 Subject: [PATCH] Two small fixes (#4321) * Fixed armor counting in BleedTimerTask * Key instead of Name for Piercing --- .../com/gmail/nossr50/listeners/EntityListener.java | 12 ++++++++++-- .../nossr50/runnables/skills/BleedTimerTask.java | 8 +++++--- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/gmail/nossr50/listeners/EntityListener.java b/src/main/java/com/gmail/nossr50/listeners/EntityListener.java index c005a38fb..8ba975f24 100644 --- a/src/main/java/com/gmail/nossr50/listeners/EntityListener.java +++ b/src/main/java/com/gmail/nossr50/listeners/EntityListener.java @@ -31,6 +31,7 @@ import com.gmail.nossr50.util.skills.SkillActivationType; import com.gmail.nossr50.worldguard.WorldGuardManager; import com.gmail.nossr50.worldguard.WorldGuardUtils; import org.bukkit.Material; +import org.bukkit.NamespacedKey; import org.bukkit.OfflinePlayer; import org.bukkit.block.Block; import org.bukkit.enchantments.Enchantment; @@ -54,6 +55,12 @@ public class EntityListener implements Listener { private final mcMMO pluginRef; private final @NotNull AbstractPersistentDataLayer persistentDataLayer; + /** + * We can use this {@link NamespacedKey} for {@link Enchantment} comparisons to + * check if a {@link Player} has a {@link Trident} enchanted with "Piercing". + */ + private final NamespacedKey piercingEnchantment = NamespacedKey.minecraft("piercing"); + public EntityListener(final mcMMO pluginRef) { this.pluginRef = pluginRef; persistentDataLayer = mcMMO.getCompatibilityManager().getPersistentDataLayer(); @@ -161,9 +168,10 @@ public class EntityListener implements Listener { projectile.setMetadata(mcMMO.bowForceKey, new FixedMetadataValue(pluginRef, 1.0)); projectile.setMetadata(mcMMO.arrowDistanceKey, new FixedMetadataValue(pluginRef, projectile.getLocation())); - for(Enchantment enchantment : player.getInventory().getItemInMainHand().getEnchantments().keySet()) { - if(enchantment.getName().equalsIgnoreCase("piercing")) + for (Enchantment enchantment : player.getInventory().getItemInMainHand().getEnchantments().keySet()) { + if (enchantment.getKey().equals(piercingEnchantment)) { return; + } } if (RandomChanceUtil.isActivationSuccessful(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SubSkillType.ARCHERY_ARROW_RETRIEVAL, player)) { diff --git a/src/main/java/com/gmail/nossr50/runnables/skills/BleedTimerTask.java b/src/main/java/com/gmail/nossr50/runnables/skills/BleedTimerTask.java index 228ae7f18..aef946971 100644 --- a/src/main/java/com/gmail/nossr50/runnables/skills/BleedTimerTask.java +++ b/src/main/java/com/gmail/nossr50/runnables/skills/BleedTimerTask.java @@ -69,9 +69,11 @@ public class BleedTimerTask extends BukkitRunnable { } //Count Armor - for(ItemStack armorPiece : ((Player) target).getInventory().getArmorContents()) - { - armorCount++; + for (ItemStack armorPiece : ((Player) target).getInventory().getArmorContents()) { + //We only want to count slots that contain armor. + if (armorPiece != null) { + armorCount++; + } } } else {