diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoarmor/conditions/conditions/ConditionAboveHealthPercent.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoarmor/conditions/conditions/ConditionAboveHealthPercent.java index 69e3927..45cfc76 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoarmor/conditions/conditions/ConditionAboveHealthPercent.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoarmor/conditions/conditions/ConditionAboveHealthPercent.java @@ -6,6 +6,7 @@ import com.willfp.ecoarmor.sets.util.ArmorUtils; import org.bukkit.attribute.Attribute; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityRegainHealthEvent; import org.jetbrains.annotations.NotNull; @@ -15,7 +16,10 @@ public class ConditionAboveHealthPercent extends Condition { super("above-health-percent", Double.class); } - @EventHandler + @EventHandler( + priority = EventPriority.MONITOR, + ignoreCancelled = true + ) public void listener(@NotNull final EntityRegainHealthEvent event) { if (!(event.getEntity() instanceof Player)) { return; @@ -35,14 +39,19 @@ public class ConditionAboveHealthPercent extends Condition { return; } - if (isMet(player, value)) { - set.getEffects().keySet().forEach(effect -> effect.enable(player, value)); - } else { - set.getEffects().keySet().forEach(effect -> effect.disable(player)); - } + this.getPlugin().getScheduler().runLater(() -> { + if (isMet(player, value)) { + set.getEffects().keySet().forEach(effect -> effect.enable(player, value)); + } else { + set.getEffects().keySet().forEach(effect -> effect.disable(player)); + } + }, 1); } - @EventHandler + @EventHandler( + priority = EventPriority.MONITOR, + ignoreCancelled = true + ) public void listener(@NotNull final EntityDamageEvent event) { if (!(event.getEntity() instanceof Player)) { return; @@ -62,11 +71,13 @@ public class ConditionAboveHealthPercent extends Condition { return; } - if (isMet(player, value)) { - set.getEffects().keySet().forEach(effect -> effect.enable(player, value)); - } else { - set.getEffects().keySet().forEach(effect -> effect.disable(player)); - } + this.getPlugin().getScheduler().runLater(() -> { + if (isMet(player, value)) { + set.getEffects().keySet().forEach(effect -> effect.enable(player, value)); + } else { + set.getEffects().keySet().forEach(effect -> effect.disable(player)); + } + }, 1); } @Override diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoarmor/conditions/conditions/ConditionAboveXPLevel.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoarmor/conditions/conditions/ConditionAboveXPLevel.java index 204b512..c467ed6 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoarmor/conditions/conditions/ConditionAboveXPLevel.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoarmor/conditions/conditions/ConditionAboveXPLevel.java @@ -5,6 +5,7 @@ import com.willfp.ecoarmor.sets.ArmorSet; import com.willfp.ecoarmor.sets.util.ArmorUtils; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; import org.bukkit.event.player.PlayerExpChangeEvent; import org.jetbrains.annotations.NotNull; @@ -13,7 +14,10 @@ public class ConditionAboveXPLevel extends Condition { super("above-xp-level", Integer.class); } - @EventHandler + @EventHandler( + priority = EventPriority.MONITOR, + ignoreCancelled = true + ) public void listener(@NotNull final PlayerExpChangeEvent event) { Player player = event.getPlayer(); @@ -29,11 +33,13 @@ public class ConditionAboveXPLevel extends Condition { return; } - if (isMet(player, value)) { - set.getEffects().keySet().forEach(effect -> effect.enable(player, value)); - } else { - set.getEffects().keySet().forEach(effect -> effect.disable(player)); - } + this.getPlugin().getScheduler().runLater(() -> { + if (isMet(player, value)) { + set.getEffects().keySet().forEach(effect -> effect.enable(player, value)); + } else { + set.getEffects().keySet().forEach(effect -> effect.disable(player)); + } + }, 1); } @Override diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoarmor/conditions/conditions/ConditionAboveY.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoarmor/conditions/conditions/ConditionAboveY.java index 2ca31f1..4994e37 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoarmor/conditions/conditions/ConditionAboveY.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoarmor/conditions/conditions/ConditionAboveY.java @@ -5,6 +5,7 @@ import com.willfp.ecoarmor.sets.ArmorSet; import com.willfp.ecoarmor.sets.util.ArmorUtils; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; import org.bukkit.event.player.PlayerMoveEvent; import org.jetbrains.annotations.NotNull; @@ -13,7 +14,10 @@ public class ConditionAboveY extends Condition { super("above-y", Double.class); } - @EventHandler + @EventHandler( + priority = EventPriority.MONITOR, + ignoreCancelled = true + ) public void listener(@NotNull final PlayerMoveEvent event) { Player player = event.getPlayer(); @@ -29,11 +33,13 @@ public class ConditionAboveY extends Condition { return; } - if (isMet(player, value)) { - set.getEffects().keySet().forEach(effect -> effect.enable(player, value)); - } else { - set.getEffects().keySet().forEach(effect -> effect.disable(player)); - } + this.getPlugin().getScheduler().runLater(() -> { + if (isMet(player, value)) { + set.getEffects().keySet().forEach(effect -> effect.enable(player, value)); + } else { + set.getEffects().keySet().forEach(effect -> effect.disable(player)); + } + }, 1); } @Override diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoarmor/conditions/conditions/ConditionBelowHealthPercent.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoarmor/conditions/conditions/ConditionBelowHealthPercent.java index 1b52519..48bfc45 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoarmor/conditions/conditions/ConditionBelowHealthPercent.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoarmor/conditions/conditions/ConditionBelowHealthPercent.java @@ -6,6 +6,7 @@ import com.willfp.ecoarmor.sets.util.ArmorUtils; import org.bukkit.attribute.Attribute; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityRegainHealthEvent; import org.jetbrains.annotations.NotNull; @@ -15,7 +16,10 @@ public class ConditionBelowHealthPercent extends Condition { super("below-health-percent", Double.class); } - @EventHandler + @EventHandler( + priority = EventPriority.MONITOR, + ignoreCancelled = true + ) public void listener(@NotNull final EntityRegainHealthEvent event) { if (!(event.getEntity() instanceof Player)) { return; @@ -35,14 +39,19 @@ public class ConditionBelowHealthPercent extends Condition { return; } - if (isMet(player, value)) { - set.getEffects().keySet().forEach(effect -> effect.enable(player, value)); - } else { - set.getEffects().keySet().forEach(effect -> effect.disable(player)); - } + this.getPlugin().getScheduler().runLater(() -> { + if (isMet(player, value)) { + set.getEffects().keySet().forEach(effect -> effect.enable(player, value)); + } else { + set.getEffects().keySet().forEach(effect -> effect.disable(player)); + } + }, 1); } - @EventHandler + @EventHandler( + priority = EventPriority.MONITOR, + ignoreCancelled = true + ) public void listener(@NotNull final EntityDamageEvent event) { if (!(event.getEntity() instanceof Player)) { return; diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoarmor/conditions/conditions/ConditionBelowXPLevel.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoarmor/conditions/conditions/ConditionBelowXPLevel.java index 0d69799..d2d8041 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoarmor/conditions/conditions/ConditionBelowXPLevel.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoarmor/conditions/conditions/ConditionBelowXPLevel.java @@ -5,6 +5,7 @@ import com.willfp.ecoarmor.sets.ArmorSet; import com.willfp.ecoarmor.sets.util.ArmorUtils; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; import org.bukkit.event.player.PlayerExpChangeEvent; import org.jetbrains.annotations.NotNull; @@ -13,7 +14,10 @@ public class ConditionBelowXPLevel extends Condition { super("below-xp-level", Integer.class); } - @EventHandler + @EventHandler( + priority = EventPriority.MONITOR, + ignoreCancelled = true + ) public void listener(@NotNull final PlayerExpChangeEvent event) { Player player = event.getPlayer(); @@ -29,11 +33,13 @@ public class ConditionBelowXPLevel extends Condition { return; } - if (isMet(player, value)) { - set.getEffects().keySet().forEach(effect -> effect.enable(player, value)); - } else { - set.getEffects().keySet().forEach(effect -> effect.disable(player)); - } + this.getPlugin().getScheduler().runLater(() -> { + if (isMet(player, value)) { + set.getEffects().keySet().forEach(effect -> effect.enable(player, value)); + } else { + set.getEffects().keySet().forEach(effect -> effect.disable(player)); + } + }, 1); } @Override diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoarmor/conditions/conditions/ConditionBelowY.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoarmor/conditions/conditions/ConditionBelowY.java index b525b62..da716a4 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoarmor/conditions/conditions/ConditionBelowY.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoarmor/conditions/conditions/ConditionBelowY.java @@ -5,6 +5,7 @@ import com.willfp.ecoarmor.sets.ArmorSet; import com.willfp.ecoarmor.sets.util.ArmorUtils; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; import org.bukkit.event.player.PlayerMoveEvent; import org.jetbrains.annotations.NotNull; @@ -13,7 +14,10 @@ public class ConditionBelowY extends Condition { super("below-y", Double.class); } - @EventHandler + @EventHandler( + priority = EventPriority.MONITOR, + ignoreCancelled = true + ) public void listener(@NotNull final PlayerMoveEvent event) { Player player = event.getPlayer(); @@ -29,11 +33,13 @@ public class ConditionBelowY extends Condition { return; } - if (isMet(player, value)) { - set.getEffects().keySet().forEach(effect -> effect.enable(player, value)); - } else { - set.getEffects().keySet().forEach(effect -> effect.disable(player)); - } + this.getPlugin().getScheduler().runLater(() -> { + if (isMet(player, value)) { + set.getEffects().keySet().forEach(effect -> effect.enable(player, value)); + } else { + set.getEffects().keySet().forEach(effect -> effect.disable(player)); + } + }, 1); } @Override diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoarmor/conditions/conditions/ConditionInWater.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoarmor/conditions/conditions/ConditionInWater.java index f87bf38..65a2d33 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoarmor/conditions/conditions/ConditionInWater.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoarmor/conditions/conditions/ConditionInWater.java @@ -6,6 +6,7 @@ import com.willfp.ecoarmor.sets.util.ArmorUtils; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; import org.bukkit.event.player.PlayerMoveEvent; import org.jetbrains.annotations.NotNull; @@ -14,7 +15,10 @@ public class ConditionInWater extends Condition { super("in-water", Boolean.class); } - @EventHandler + @EventHandler( + priority = EventPriority.MONITOR, + ignoreCancelled = true + ) public void listener(@NotNull final PlayerMoveEvent event) { Player player = event.getPlayer(); @@ -30,11 +34,13 @@ public class ConditionInWater extends Condition { return; } - if (isMet(player, value)) { - set.getEffects().keySet().forEach(effect -> effect.enable(player, value)); - } else { - set.getEffects().keySet().forEach(effect -> effect.disable(player)); - } + this.getPlugin().getScheduler().runLater(() -> { + if (isMet(player, value)) { + set.getEffects().keySet().forEach(effect -> effect.enable(player, value)); + } else { + set.getEffects().keySet().forEach(effect -> effect.disable(player)); + } + }, 1); } @Override diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoarmor/conditions/conditions/ConditionInWorld.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoarmor/conditions/conditions/ConditionInWorld.java index 42b920f..5a44908 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoarmor/conditions/conditions/ConditionInWorld.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoarmor/conditions/conditions/ConditionInWorld.java @@ -6,6 +6,7 @@ import com.willfp.ecoarmor.sets.util.ArmorUtils; import org.bukkit.World; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; import org.bukkit.event.player.PlayerMoveEvent; import org.jetbrains.annotations.NotNull; @@ -17,7 +18,10 @@ public class ConditionInWorld extends Condition { super("in-world", String.class); } - @EventHandler + @EventHandler( + priority = EventPriority.MONITOR, + ignoreCancelled = true + ) public void listener(@NotNull final PlayerMoveEvent event) { Player player = event.getPlayer(); @@ -33,11 +37,13 @@ public class ConditionInWorld extends Condition { return; } - if (isMet(player, value)) { - set.getEffects().keySet().forEach(effect -> effect.enable(player, value)); - } else { - set.getEffects().keySet().forEach(effect -> effect.disable(player)); - } + this.getPlugin().getScheduler().runLater(() -> { + if (isMet(player, value)) { + set.getEffects().keySet().forEach(effect -> effect.enable(player, value)); + } else { + set.getEffects().keySet().forEach(effect -> effect.disable(player)); + } + }, 1); } @Override