diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/LivingEcoBoss.java b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/LivingEcoBoss.java index a6eafe0..e233d57 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/LivingEcoBoss.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/LivingEcoBoss.java @@ -8,6 +8,7 @@ import com.willfp.eco.util.plugin.AbstractEcoPlugin; import com.willfp.ecobosses.bosses.tick.BossTicker; import com.willfp.ecobosses.bosses.tick.tickers.BossBarTicker; import com.willfp.ecobosses.bosses.tick.tickers.HealthPlaceholderTicker; +import com.willfp.ecobosses.bosses.tick.tickers.TargetTicker; import com.willfp.ecobosses.bosses.util.obj.OptionedSound; import com.willfp.ecobosses.bosses.util.obj.attacks.EffectOption; import com.willfp.ecobosses.bosses.util.obj.attacks.SummonsOption; @@ -69,6 +70,7 @@ public class LivingEcoBoss extends PluginDependent { // Tickers this.tickers = new HashSet<>(); this.tickers.add(new HealthPlaceholderTicker()); + this.tickers.add(new TargetTicker()); if (boss.isBossbarEnabled()) { this.tickers.add( new BossBarTicker( diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/effects/effects/DamageNearbyPlayers.java b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/effects/effects/DamageNearbyPlayers.java index c8096cc..3af8d9d 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/effects/effects/DamageNearbyPlayers.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/effects/effects/DamageNearbyPlayers.java @@ -13,24 +13,22 @@ public class DamageNearbyPlayers extends Effect { private final int frequency; private final double damage; private final double radius; - private final boolean triggerHandler; public DamageNearbyPlayers(@NotNull final List args) { super(args); - if (args.size() < 4) { + if (args.size() < 3) { showConfigError("Incorrect amount of arguments!"); } frequency = Integer.parseInt(args.get(0)); radius = Double.parseDouble(args.get(1)); damage = Double.parseDouble(args.get(2)); - triggerHandler = Boolean.parseBoolean(args.get(3)); } @Override public String getUsage() { - return "damage-nearby-players::::"; + return "damage-nearby-players:::"; } @Override @@ -40,11 +38,7 @@ public class DamageNearbyPlayers extends Effect { if (tick % frequency == 0) { for (Entity nearbyEntity : entity.getNearbyEntities(radius, radius, radius)) { if (nearbyEntity instanceof Player) { - if (triggerHandler) { - ((Player) nearbyEntity).damage(damage, entity); - } else { - ((Player) nearbyEntity).damage(damage); - } + ((Player) nearbyEntity).damage(damage, entity); } } } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/tick/tickers/TargetTicker.java b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/tick/tickers/TargetTicker.java new file mode 100644 index 0000000..f3a392e --- /dev/null +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/tick/tickers/TargetTicker.java @@ -0,0 +1,26 @@ +package com.willfp.ecobosses.bosses.tick.tickers; + +import com.willfp.ecobosses.bosses.EcoBoss; +import com.willfp.ecobosses.bosses.tick.BossTicker; +import org.bukkit.entity.Entity; +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Mob; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; + +public class TargetTicker implements BossTicker { + @Override + public void tick(@NotNull final EcoBoss boss, + @NotNull final LivingEntity entity, + final long tick) { + if (tick % 10 == 0) { + for (Entity nearbyEntity : entity.getNearbyEntities(10, 5, 10)) { + if (nearbyEntity instanceof Player) { + if (entity instanceof Mob) { + ((Mob) entity).setTarget((Player) nearbyEntity); + } + } + } + } + } +}