From 804246d3609cca67e65e72ca95945c33821d9456 Mon Sep 17 00:00:00 2001 From: Auxilor Date: Sat, 28 Aug 2021 21:57:57 +0100 Subject: [PATCH] Implemented the requirement system on all enchantments --- .../ecoenchants/display/EnchantDisplay.java | 2 +- .../ecoenchants/display/EnchantmentCache.java | 2 +- .../ecoenchants/enchantments/EcoEnchant.java | 9 ++- .../ecoenchants/curse/CallingCurse.java | 4 +- .../ecoenchants/curse/DecayCurse.java | 8 ++- .../ecoenchants/curse/FragilityCurse.java | 4 ++ .../ecoenchants/curse/HungerCurse.java | 4 ++ .../ecoenchants/normal/Beheading.java | 4 ++ .../ecoenchants/normal/Dexterous.java | 4 ++ .../ecoenchants/normal/Economical.java | 3 + .../ecoenchants/normal/Enderism.java | 5 +- .../ecoenchants/normal/Farmhand.java | 4 ++ .../ecoenchants/normal/Fetching.java | 4 ++ .../ecoenchants/normal/Forcefield.java | 4 +- .../ecoenchants/normal/Frozen.java | 4 ++ .../ecoenchants/normal/Graceful.java | 4 ++ .../ecoenchants/normal/GreenThumb.java | 4 ++ .../enchantments/ecoenchants/normal/Grit.java | 4 ++ .../ecoenchants/normal/InfernalTouch.java | 4 ++ .../ecoenchants/normal/Invigoration.java | 8 +++ .../ecoenchants/normal/Launch.java | 4 ++ .../ecoenchants/normal/LuckyCatch.java | 4 ++ .../ecoenchants/normal/Magnetic.java | 4 +- .../ecoenchants/normal/Marksman.java | 5 +- .../ecoenchants/normal/Necrotic.java | 4 ++ .../ecoenchants/normal/Rebounding.java | 4 ++ .../enchantments/ecoenchants/normal/Reel.java | 4 ++ .../ecoenchants/normal/Rejuvenation.java | 4 ++ .../ecoenchants/normal/Sating.java | 4 ++ .../ecoenchants/normal/Shockwave.java | 4 ++ .../ecoenchants/normal/ShotAssist.java | 4 ++ .../ecoenchants/normal/Slicing.java | 4 ++ .../ecoenchants/normal/Spearfishing.java | 4 ++ .../ecoenchants/normal/Spiked.java | 4 ++ .../ecoenchants/normal/Stamina.java | 4 ++ .../ecoenchants/normal/Telekinesis.java | 4 +- .../ecoenchants/normal/Thrive.java | 4 ++ .../ecoenchants/special/Aiming.java | 4 ++ .../ecoenchants/special/Frenzy.java | 4 ++ .../ecoenchants/special/Harpoon.java | 4 ++ .../special/Indestructibility.java | 4 ++ .../ecoenchants/special/Instability.java | 4 ++ .../ecoenchants/special/Intellect.java | 4 ++ .../ecoenchants/special/Prosperity.java | 52 ++++++++------- .../ecoenchants/special/Repairing.java | 8 ++- .../ecoenchants/special/Soulbound.java | 4 ++ .../enchantments/itemtypes/Artifact.java | 4 ++ .../enchantments/itemtypes/Spell.java | 4 ++ .../enchantments/util/WatcherTriggers.java | 66 ++++++++++++++++++- 49 files changed, 279 insertions(+), 41 deletions(-) diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/display/EnchantDisplay.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/display/EnchantDisplay.java index 4bb2c357..4dd197f0 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/display/EnchantDisplay.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/display/EnchantDisplay.java @@ -136,7 +136,7 @@ public class EnchantDisplay extends DisplayModule { } if (player != null && enchantment instanceof EcoEnchant ecoEnchant) { - if (!ecoEnchant.doesPlayerMeetRequirements(player)) { + if (!ecoEnchant.areRequirementsMet(player)) { requirementLore.addAll(StringUtils.formatList(EnchantmentCache.getEntry(enchantment).getRequirementLore(), player)); } } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/display/EnchantmentCache.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/display/EnchantmentCache.java index 73f69c53..f2addb96 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/display/EnchantmentCache.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/display/EnchantmentCache.java @@ -266,7 +266,7 @@ public class EnchantmentCache { String formattedName = name; String unformattedName = name; if (enchantment instanceof EcoEnchant enchant && player != null) { - if (!enchant.doesPlayerMeetRequirements(player)) { + if (!enchant.areRequirementsMet(player)) { String color = PLUGIN.getDisplayModule().getOptions().getRequirementsOptions().getRequirementColor(); if (color.contains("{}")) { unformattedName = color.replace("{}", unformattedName); diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/EcoEnchant.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/EcoEnchant.java index 8f2c8b20..9ca1a7ee 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/EcoEnchant.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/EcoEnchant.java @@ -19,6 +19,7 @@ import org.bukkit.Material; import org.bukkit.NamespacedKey; import org.bukkit.World; import org.bukkit.enchantments.Enchantment; +import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.event.Listener; import org.bukkit.inventory.ItemStack; @@ -291,10 +292,14 @@ public abstract class EcoEnchant extends Enchantment implements Listener, Watche /** * Does the player meet the requirements to use this enchantment. * - * @param player The player. + * @param entity The entity. * @return If the requirements are met. */ - public boolean doesPlayerMeetRequirements(@NotNull final Player player) { + public boolean areRequirementsMet(@NotNull final LivingEntity entity) { + if (!(entity instanceof Player player)) { + return true; + } + if (cachedRequirements.containsKey(player.getUniqueId())) { return cachedRequirements.get(player.getUniqueId()); } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/curse/CallingCurse.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/curse/CallingCurse.java index a80d4b57..18c345f5 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/curse/CallingCurse.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/curse/CallingCurse.java @@ -57,7 +57,9 @@ public class CallingCurse extends EcoEnchant implements TimedRunnable { for (Player player : this.getPlugin().getServer().getOnlinePlayers()) { int level = EnchantChecks.getArmorPoints(player, this, 0); if (level > 0) { - players.put(player, level); + if (this.areRequirementsMet(player)) { + players.put(player, level); + } } } }, 1); diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/curse/DecayCurse.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/curse/DecayCurse.java index c3669ff5..eb37542d 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/curse/DecayCurse.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/curse/DecayCurse.java @@ -69,7 +69,9 @@ public class DecayCurse extends EcoEnchant implements TimedRunnable { players.clear(); this.getPlugin().getScheduler().runLater(() -> this.getPlugin().getServer().getOnlinePlayers().forEach(player -> { if (Arrays.stream(player.getInventory().getContents()).parallel().anyMatch(item -> EnchantChecks.item(item, this))) { - players.add(player); + if (this.areRequirementsMet(player)) { + players.add(player); + } } }), 1); amount = this.getConfig().getInt(EcoEnchants.CONFIG_LOCATION + "multiplier"); @@ -78,7 +80,9 @@ public class DecayCurse extends EcoEnchant implements TimedRunnable { private void refreshPlayer(@NotNull final Player player) { players.remove(player); if (Arrays.stream(player.getInventory().getContents()).parallel().anyMatch(item -> EnchantChecks.item(item, this))) { - players.add(player); + if (this.areRequirementsMet(player)) { + players.add(player); + } } } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/curse/FragilityCurse.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/curse/FragilityCurse.java index 3e7d82b1..4fe68cf6 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/curse/FragilityCurse.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/curse/FragilityCurse.java @@ -33,6 +33,10 @@ public class FragilityCurse extends EcoEnchant { return; } + if (!this.areRequirementsMet(event.getPlayer())) { + return; + } + if (this.getDisabledWorlds().contains(event.getPlayer().getWorld())) { return; } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/curse/HungerCurse.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/curse/HungerCurse.java index c4153515..a9081736 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/curse/HungerCurse.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/curse/HungerCurse.java @@ -40,6 +40,10 @@ public class HungerCurse extends EcoEnchant { return; } + if (!this.areRequirementsMet(player)) { + return; + } + int delta = player.getFoodLevel() - event.getFoodLevel(); delta *= this.getConfig().getInt(EcoEnchants.CONFIG_LOCATION + "times-more-hunger"); diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Beheading.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Beheading.java index c90c6d84..d38c7b45 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Beheading.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Beheading.java @@ -35,6 +35,10 @@ public class Beheading extends EcoEnchant { Player player = event.getEntity().getKiller(); + if (!this.areRequirementsMet(player)) { + return; + } + LivingEntity victim = event.getEntity(); if (!EnchantChecks.mainhand(player, this)) { diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Dexterous.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Dexterous.java index ce6510ea..1cb1e7f3 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Dexterous.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Dexterous.java @@ -32,6 +32,10 @@ public class Dexterous extends EcoEnchant { return; } + if (!this.areRequirementsMet(player)) { + return; + } + int level = EnchantChecks.getItemLevel(item, this); double bonus = this.getConfig().getDouble(EcoEnchants.CONFIG_LOCATION + "add-speed-per-level"); player.getAttribute(Attribute.GENERIC_ATTACK_SPEED).setBaseValue(4.0 + (level * bonus)); diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Economical.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Economical.java index 4ca7c6c6..8684ffcd 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Economical.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Economical.java @@ -33,6 +33,9 @@ public class Economical extends EcoEnchant { if (this.getDisabledWorlds().contains(event.getPlayer().getWorld())) { return; } + if (!this.areRequirementsMet(event.getPlayer())) { + return; + } event.setShouldConsume(false); } } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Enderism.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Enderism.java index ce4232e8..757f93ca 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Enderism.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Enderism.java @@ -43,11 +43,14 @@ public class Enderism extends EcoEnchant { return; } - assert player != null; if (!player.getWorld().getEnvironment().equals(World.Environment.THE_END)) { return; } + if (!this.areRequirementsMet(player)) { + return; + } + if (!EnchantChecks.arrow(arrow, this)) { return; } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Farmhand.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Farmhand.java index a73755d6..c0b79443 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Farmhand.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Farmhand.java @@ -37,6 +37,10 @@ public class Farmhand extends EcoEnchant { return; } + if (!this.areRequirementsMet(player)) { + return; + } + if (!(event.getClickedBlock().getType().equals(Material.DIRT) || event.getClickedBlock().getType().equals(Material.GRASS_BLOCK))) { return; } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Fetching.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Fetching.java index 3e9eb3f2..e5d29393 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Fetching.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Fetching.java @@ -43,6 +43,10 @@ public class Fetching extends EcoEnchant { return; } + if (!this.areRequirementsMet(player)) { + return; + } + if (!(EnchantChecks.helmet(player, this))) { return; } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Forcefield.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Forcefield.java index 56e3e555..0ee074d0 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Forcefield.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Forcefield.java @@ -52,7 +52,9 @@ public class Forcefield extends EcoEnchant implements TimedRunnable { for (Player player : this.getPlugin().getServer().getOnlinePlayers()) { int level = EnchantChecks.getArmorPoints(player, this, 0); if (level > 0) { - players.put(player, level); + if (this.areRequirementsMet(player)) { + players.put(player, level); + } } } }, 1); diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Frozen.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Frozen.java index 0782beab..09703ca3 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Frozen.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Frozen.java @@ -35,6 +35,10 @@ public class Frozen extends EcoEnchant { return; } + if (!this.areRequirementsMet(player)) { + return; + } + final int points = EnchantChecks.getArmorPoints(player, this, 0); if (points == 0) { diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Graceful.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Graceful.java index 588e9024..e0d383a5 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Graceful.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Graceful.java @@ -33,6 +33,10 @@ public class Graceful extends EcoEnchant { return; } + if (!this.areRequirementsMet(player)) { + return; + } + if (player.getVelocity().getY() > -1) { return; } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/GreenThumb.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/GreenThumb.java index e1f1008a..ef014eaf 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/GreenThumb.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/GreenThumb.java @@ -28,6 +28,10 @@ public class GreenThumb extends EcoEnchant { return; } + if (!this.areRequirementsMet(player)) { + return; + } + if (event.getClickedBlock() == null) { return; } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Grit.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Grit.java index c69036e3..62e66cec 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Grit.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Grit.java @@ -29,6 +29,10 @@ public class Grit extends EcoEnchant { return; } + if (!this.areRequirementsMet(attacker)) { + return; + } + if (!AntigriefManager.canInjure(attacker, player)) { return; } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/InfernalTouch.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/InfernalTouch.java index e3ac97aa..12a7b440 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/InfernalTouch.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/InfernalTouch.java @@ -72,6 +72,10 @@ public class InfernalTouch extends EcoEnchant { Player player = event.getPlayer(); Block block = event.getBlock(); + if (!this.areRequirementsMet(player)) { + return; + } + if (!EnchantChecks.mainhand(player, this)) { return; } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Invigoration.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Invigoration.java index 2213e2da..5995063c 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Invigoration.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Invigoration.java @@ -27,6 +27,10 @@ public class Invigoration extends EcoEnchant { return; } + if (!this.areRequirementsMet(player)) { + return; + } + int totalInvigorationPoints = EnchantChecks.getArmorPoints(player, this, 0); if (this.getDisabledWorlds().contains(player.getWorld())) { return; @@ -47,6 +51,10 @@ public class Invigoration extends EcoEnchant { return; } + if (!this.areRequirementsMet(player)) { + return; + } + if (player.getHealth() > this.getConfig().getInt(EcoEnchants.CONFIG_LOCATION + "below-health")) { return; } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Launch.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Launch.java index 83402c7e..78d29ace 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Launch.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Launch.java @@ -35,6 +35,10 @@ public class Launch extends EcoEnchant { Player player = event.getPlayer(); + if (!this.areRequirementsMet(player)) { + return; + } + if (!player.isGliding()) { return; } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/LuckyCatch.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/LuckyCatch.java index 0be67270..0a28227c 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/LuckyCatch.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/LuckyCatch.java @@ -33,6 +33,10 @@ public class LuckyCatch extends EcoEnchant { return; } + if (!this.areRequirementsMet(player)) { + return; + } + if (event.getState() == PlayerFishEvent.State.CAUGHT_ENTITY) { return; } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Magnetic.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Magnetic.java index 45049f00..040ab596 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Magnetic.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Magnetic.java @@ -51,7 +51,9 @@ public class Magnetic extends EcoEnchant implements TimedRunnable { this.getPlugin().getScheduler().runLater(() -> this.getPlugin().getServer().getOnlinePlayers().forEach(player -> { int level = EnchantChecks.getArmorPoints(player, this, 0); if (level > 0) { - players.put(player, level); + if (this.areRequirementsMet(player)) { + players.put(player, level); + } } }), 1); initialDistance = EcoEnchants.MAGNETIC.getConfig().getDouble(EcoEnchants.CONFIG_LOCATION + "initial-distance"); diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Marksman.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Marksman.java index aa10aaa2..4a36b2dc 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Marksman.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Marksman.java @@ -19,11 +19,14 @@ public class Marksman extends EcoEnchant { @EventHandler public void onMarksmanShoot(@NotNull final ProjectileLaunchEvent event) { - if (!(event.getEntity().getShooter() instanceof Player player)) { return; } + if (!this.areRequirementsMet(player)) { + return; + } + if (!EnchantChecks.mainhand(player, this)) { return; } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Necrotic.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Necrotic.java index 6de03256..8be84217 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Necrotic.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Necrotic.java @@ -37,6 +37,10 @@ public class Necrotic extends EcoEnchant { Player player = event.getEntity().getKiller(); + if (!this.areRequirementsMet(player)) { + return; + } + if (!EnchantChecks.mainhand(player, this)) { return; } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Rebounding.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Rebounding.java index 1d2785a3..f0dbf63d 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Rebounding.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Rebounding.java @@ -32,6 +32,10 @@ public class Rebounding extends EcoEnchant { return; } + if (!this.areRequirementsMet(victim)) { + return; + } + int level = EnchantChecks.getArmorPoints(victim, this); if (level == 0) { diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Reel.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Reel.java index f10c4eca..f6770f32 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Reel.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Reel.java @@ -32,6 +32,10 @@ public class Reel extends EcoEnchant { Player player = event.getPlayer(); + if (!this.areRequirementsMet(player)) { + return; + } + if (victim.hasMetadata("NPC")) { return; } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Rejuvenation.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Rejuvenation.java index b44db99c..596a0438 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Rejuvenation.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Rejuvenation.java @@ -22,6 +22,10 @@ public class Rejuvenation extends EcoEnchant { return; } + if (!this.areRequirementsMet(player)) { + return; + } + if (!event.getRegainReason().equals(EntityRegainHealthEvent.RegainReason.SATIATED) && !event.getRegainReason().equals(EntityRegainHealthEvent.RegainReason.REGEN)) { return; } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Sating.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Sating.java index 0b77b06c..a2db6c61 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Sating.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Sating.java @@ -27,6 +27,10 @@ public class Sating extends EcoEnchant { return; } + if (!this.areRequirementsMet(player)) { + return; + } + if (!EnchantChecks.helmet(player, this)) { return; } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Shockwave.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Shockwave.java index da9b170a..86b5d6c3 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Shockwave.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Shockwave.java @@ -31,6 +31,10 @@ public class Shockwave extends EcoEnchant { return; } + if (!this.areRequirementsMet(player)) { + return; + } + ItemStack item = player.getInventory().getItemInMainHand(); if (entity instanceof Trident trident) { item = trident.getItem(); diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/ShotAssist.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/ShotAssist.java index 9552a44a..f1fb87e3 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/ShotAssist.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/ShotAssist.java @@ -36,6 +36,10 @@ public class ShotAssist extends EcoEnchant { return; } + if (!this.areRequirementsMet(player)) { + return; + } + assert player != null; int points = EnchantChecks.getArmorPoints(player, this, 0); diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Slicing.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Slicing.java index 38a3268d..4f7137d3 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Slicing.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Slicing.java @@ -32,6 +32,10 @@ public class Slicing extends EcoEnchant { return; } + if (!this.areRequirementsMet(player)) { + return; + } + if (!EnchantChecks.chestplate(player, this)) { return; } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Spearfishing.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Spearfishing.java index b14f17b4..cd3e6ddb 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Spearfishing.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Spearfishing.java @@ -43,6 +43,10 @@ public class Spearfishing extends EcoEnchant { return; } + if (!this.areRequirementsMet(player)) { + return; + } + if (!(event.getEntity() instanceof Trident trident)) { return; } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Spiked.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Spiked.java index 7a26fd02..cf5347eb 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Spiked.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Spiked.java @@ -30,6 +30,10 @@ public class Spiked extends EcoEnchant { Player player = event.getPlayer(); + if (!this.areRequirementsMet(player)) { + return; + } + if (victim.hasMetadata("NPC")) { return; } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Stamina.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Stamina.java index 53756b54..fb563bbe 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Stamina.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Stamina.java @@ -31,6 +31,10 @@ public class Stamina extends EcoEnchant { return; } + if (!this.areRequirementsMet(player)) { + return; + } + if (!EnchantChecks.boots(player, this)) { return; } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Telekinesis.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Telekinesis.java index e37648bd..4167fb75 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Telekinesis.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Telekinesis.java @@ -48,7 +48,7 @@ public class Telekinesis extends EcoEnchant { public void telekinesisDropItem(@NotNull final BlockDropItemEvent event) { Player player = event.getPlayer(); - if (!always && !EnchantChecks.mainhand(player, this)) { + if (!always && !(EnchantChecks.mainhand(player, this)) && this.areRequirementsMet(player)) { return; } @@ -94,7 +94,7 @@ public class Telekinesis extends EcoEnchant { Player player = event.getPlayer(); Block block = event.getBlock(); - if (!always && !EnchantChecks.mainhand(player, this)) { + if (!always && !(EnchantChecks.mainhand(player, this)) && this.areRequirementsMet(player)) { return; } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Thrive.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Thrive.java index 679ac46f..e7e6ff39 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Thrive.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/normal/Thrive.java @@ -27,6 +27,10 @@ public class Thrive extends EcoEnchant { public void onArmorEquip(@NotNull final ArmorChangeEvent event) { Player player = event.getPlayer(); + if (!this.areRequirementsMet(player)) { + return; + } + int points = EnchantChecks.getArmorPoints(player, this); AttributeInstance inst = player.getAttribute(Attribute.GENERIC_MAX_HEALTH); diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/special/Aiming.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/special/Aiming.java index fcd85641..4b2b3911 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/special/Aiming.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/special/Aiming.java @@ -46,6 +46,10 @@ public class Aiming extends EcoEnchant { return; } + if (!this.areRequirementsMet(player)) { + return; + } + int level = EnchantChecks.getMainhandLevel(player, this); if (this.getDisabledWorlds().contains(player.getWorld())) { diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/special/Frenzy.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/special/Frenzy.java index a00af005..2c256781 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/special/Frenzy.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/special/Frenzy.java @@ -26,6 +26,10 @@ public class Frenzy extends EcoEnchant { Player player = event.getEntity().getKiller(); + if (!this.areRequirementsMet(player)) { + return; + } + if (!EnchantChecks.mainhand(player, this)) { return; } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/special/Harpoon.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/special/Harpoon.java index 57874b95..9d501fac 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/special/Harpoon.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/special/Harpoon.java @@ -30,6 +30,10 @@ public class Harpoon extends EcoEnchant { Player player = event.getPlayer(); + if (!this.areRequirementsMet(player)) { + return; + } + if (victim.hasMetadata("NPC")) { return; } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/special/Indestructibility.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/special/Indestructibility.java index 30615882..7adbb7ce 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/special/Indestructibility.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/special/Indestructibility.java @@ -29,6 +29,10 @@ public class Indestructibility extends EcoEnchant { return; } + if (!this.areRequirementsMet(event.getPlayer())) { + return; + } + double level = EnchantChecks.getItemLevel(item, this); double levelBonus = this.getConfig().getInt(EcoEnchants.CONFIG_LOCATION + "level-bonus"); diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/special/Instability.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/special/Instability.java index 250bd414..01ec32e7 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/special/Instability.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/special/Instability.java @@ -29,6 +29,10 @@ public class Instability extends EcoEnchant { return; } + if (!this.areRequirementsMet(player)) { + return; + } + if (!EnchantChecks.mainhand(player, this)) { return; } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/special/Intellect.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/special/Intellect.java index 4e1d8855..2f3282b7 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/special/Intellect.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/special/Intellect.java @@ -24,6 +24,10 @@ public class Intellect extends EcoEnchant { return; } + if (!this.areRequirementsMet(player)) { + return; + } + int level = EnchantChecks.getMainhandLevel(player, this); if (level == 0) { diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/special/Prosperity.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/special/Prosperity.java index 55679632..bd00ebdc 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/special/Prosperity.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/special/Prosperity.java @@ -27,37 +27,39 @@ public class Prosperity extends EcoEnchant { public void onArmorEquip(@NotNull final ArmorChangeEvent event) { Player player = event.getPlayer(); - this.getPlugin().getScheduler().runLater(() -> { - int points = EnchantChecks.getArmorPoints(player, this); + if (!this.areRequirementsMet(player)) { + return; + } - AttributeInstance inst = player.getAttribute(Attribute.GENERIC_MAX_HEALTH); + int points = EnchantChecks.getArmorPoints(player, this); - assert inst != null; + AttributeInstance inst = player.getAttribute(Attribute.GENERIC_MAX_HEALTH); - inst.setBaseValue(inst.getDefaultValue()); + assert inst != null; - if (this.getDisabledWorlds().contains(player.getWorld())) { - points = 0; - } + inst.setBaseValue(inst.getDefaultValue()); - inst.removeModifier(modifier); + if (this.getDisabledWorlds().contains(player.getWorld())) { + points = 0; + } - if (player.getHealth() >= inst.getValue()) { - this.getPlugin().getScheduler().runLater(() -> { - player.setHealth(player.getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue()); - }, 1); - } + inst.removeModifier(modifier); - if (points > 0) { - inst.addModifier( - new AttributeModifier( - UUID.nameUUIDFromBytes("prosperity".getBytes()), - this.getKey().getKey(), - this.getConfig().getInt(EcoEnchants.CONFIG_LOCATION + "health-per-point") * points, - AttributeModifier.Operation.ADD_NUMBER - ) - ); - } - }, 1); + if (player.getHealth() >= inst.getValue()) { + this.getPlugin().getScheduler().runLater(() -> { + player.setHealth(player.getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue()); + }, 1); + } + + if (points > 0) { + inst.addModifier( + new AttributeModifier( + UUID.nameUUIDFromBytes("prosperity".getBytes()), + this.getKey().getKey(), + this.getConfig().getInt(EcoEnchants.CONFIG_LOCATION + "health-per-point") * points, + AttributeModifier.Operation.ADD_NUMBER + ) + ); + } } } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/special/Repairing.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/special/Repairing.java index edbbd7b9..20ab14bd 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/special/Repairing.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/special/Repairing.java @@ -70,7 +70,9 @@ public class Repairing extends EcoEnchant implements TimedRunnable { players.clear(); this.getPlugin().getScheduler().runLater(() -> this.getPlugin().getServer().getOnlinePlayers().forEach(player -> { if (Arrays.stream(player.getInventory().getContents()).parallel().anyMatch(item -> EnchantChecks.item(item, this))) { - players.add(player); + if (this.areRequirementsMet(player)) { + players.add(player); + } } }), 1); amount = this.getConfig().getInt(EcoEnchants.CONFIG_LOCATION + "multiplier"); @@ -79,7 +81,9 @@ public class Repairing extends EcoEnchant implements TimedRunnable { private void refreshPlayer(@NotNull final Player player) { players.remove(player); if (Arrays.stream(player.getInventory().getContents()).parallel().anyMatch(item -> EnchantChecks.item(item, this))) { - players.add(player); + if (this.areRequirementsMet(player)) { + players.add(player); + } } } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/special/Soulbound.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/special/Soulbound.java index bf81fd5b..26ec8e35 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/special/Soulbound.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/ecoenchants/special/Soulbound.java @@ -42,6 +42,10 @@ public class Soulbound extends EcoEnchant { return; } + if (!this.areRequirementsMet(player)) { + return; + } + if (player.getKiller() != null) { Player killer = player.getKiller(); int reaperLevel = EnchantChecks.getMainhandLevel(killer, EcoEnchants.REAPER); diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/itemtypes/Artifact.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/itemtypes/Artifact.java index 758338f4..25bc0eaf 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/itemtypes/Artifact.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/itemtypes/Artifact.java @@ -100,6 +100,10 @@ public abstract class Artifact extends EcoEnchant { return; } + if (!this.areRequirementsMet(player)) { + return; + } + if (!EnchantChecks.chestplate(player, this)) { return; } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/itemtypes/Spell.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/itemtypes/Spell.java index bd6d1990..21e440a1 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/itemtypes/Spell.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/itemtypes/Spell.java @@ -252,6 +252,10 @@ public abstract class Spell extends EcoEnchant { } } + if (!this.areRequirementsMet(player)) { + return; + } + if (cooldown > 0) { if (!this.hasFlag("no-cooldown-message")) { if (this.getPlugin().getConfigYml().getBool("types.special.cooldown-in-actionbar")) { diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/util/WatcherTriggers.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/util/WatcherTriggers.java index 3a4fa585..fa501bfb 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/util/WatcherTriggers.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/util/WatcherTriggers.java @@ -113,6 +113,10 @@ public class WatcherTriggers extends PluginDependent implements Liste return; } + if (!enchant.areRequirementsMet(attacker)) { + return; + } + enchant.onArrowDamage(attacker, victim, arrow, level, event); })); } @@ -173,6 +177,10 @@ public class WatcherTriggers extends PluginDependent implements Liste return; } + if (!enchant.areRequirementsMet(attacker)) { + return; + } + enchant.onTridentDamage(attacker, victim, trident, level, event); })); } @@ -203,6 +211,10 @@ public class WatcherTriggers extends PluginDependent implements Liste return; } + if (!enchant.areRequirementsMet(player)) { + return; + } + enchant.onJump(player, level, event); }); } @@ -257,6 +269,10 @@ public class WatcherTriggers extends PluginDependent implements Liste return; } + if (!enchant.areRequirementsMet(attacker)) { + return; + } + enchant.onMeleeAttack(attacker, victim, level, event); }); } @@ -292,6 +308,10 @@ public class WatcherTriggers extends PluginDependent implements Liste return; } + if (!enchant.areRequirementsMet(shooter)) { + return; + } + enchant.onBowShoot(shooter, arrow, level, event); }); } @@ -342,6 +362,10 @@ public class WatcherTriggers extends PluginDependent implements Liste return; } + if (!enchant.areRequirementsMet(shooter)) { + return; + } + enchant.onProjectileLaunch(shooter, projectile, level, event); }); } @@ -378,6 +402,10 @@ public class WatcherTriggers extends PluginDependent implements Liste return; } + if (!enchant.areRequirementsMet(victim)) { + return; + } + enchant.onFallDamage(victim, level, event); }); } @@ -414,6 +442,10 @@ public class WatcherTriggers extends PluginDependent implements Liste return; } + if (!enchant.areRequirementsMet(shooter)) { + return; + } + enchant.onArrowHit(shooter, level, event); })); } @@ -452,6 +484,10 @@ public class WatcherTriggers extends PluginDependent implements Liste return; } + if (!enchant.areRequirementsMet(shooter)) { + return; + } + enchant.onTridentHit(shooter, level, event); }); } @@ -491,6 +527,10 @@ public class WatcherTriggers extends PluginDependent implements Liste return; } + if (!enchant.areRequirementsMet(player)) { + return; + } + enchant.onBlockBreak(player, block, level, event); }); } @@ -523,6 +563,10 @@ public class WatcherTriggers extends PluginDependent implements Liste return; } + if (!enchant.areRequirementsMet(victim)) { + return; + } + enchant.onDamageWearingArmor(victim, level, event); }); } @@ -550,6 +594,10 @@ public class WatcherTriggers extends PluginDependent implements Liste return; } + if (!enchant.areRequirementsMet(player)) { + return; + } + int level = EnchantChecks.getArmorPoints(player, enchant); enchant.onArmorEquip(player, level, event); }), 1); @@ -561,7 +609,6 @@ public class WatcherTriggers extends PluginDependent implements Liste * @param event The event to listen for. */ @EventHandler(ignoreCancelled = true) - @Deprecated public void onArmorChange(@NotNull final ArmorChangeEvent event) { if (McmmoManager.isFake(event)) { return; @@ -578,6 +625,10 @@ public class WatcherTriggers extends PluginDependent implements Liste return; } + if (!enchant.areRequirementsMet(player)) { + return; + } + int level = EnchantChecks.getArmorPoints(player, enchant); enchant.onArmorEquip(player, level, event); }); @@ -614,6 +665,10 @@ public class WatcherTriggers extends PluginDependent implements Liste return; } + if (!enchant.areRequirementsMet(player)) { + return; + } + enchant.onDamageBlock(player, block, level, event); }); } @@ -639,6 +694,7 @@ public class WatcherTriggers extends PluginDependent implements Liste LivingEntity shooter = (LivingEntity) trident.getShooter(); ItemStack item = trident.getItem(); + assert shooter != null; EnchantChecks.getEnchantsOnItem(item).forEach((enchant, level) -> { if (event.isCancelled()) { @@ -653,6 +709,10 @@ public class WatcherTriggers extends PluginDependent implements Liste return; } + if (!enchant.areRequirementsMet(shooter)) { + return; + } + enchant.onTridentLaunch(shooter, trident, level, event); }); } @@ -701,6 +761,10 @@ public class WatcherTriggers extends PluginDependent implements Liste return; } + if (!enchant.areRequirementsMet(blocker)) { + return; + } + enchant.onDeflect(blocker, attacker, level, event); }); }