From db992952641f7335c2d319eb3c49a951aaed6253 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Wojtas?= Date: Thu, 27 Aug 2026 00:18:29 +0200 Subject: [PATCH 1/3] Add system where mobs ignore players --- .../feature/notarget/MobTargetService.java | 23 ++++++ .../feature/notarget/MobTargetListener.java | 27 +++++++ .../notarget/MobTargetServiceImpl.java | 42 ++++++++++ .../feature/notarget/NoTargetCommand.java | 79 +++++++++++++++++++ .../notarget/messages/ENNoTargetMessages.java | 19 +++++ .../notarget/messages/NoTargetMessages.java | 12 +++ .../notarget/messages/PLNoTargetMessages.java | 18 +++++ .../core/translation/Translation.java | 9 +-- .../implementation/ENTranslation.java | 4 + .../implementation/PLTranslation.java | 12 +-- 10 files changed, 231 insertions(+), 14 deletions(-) create mode 100644 eternalcore-api/src/main/java/com/eternalcode/core/feature/notarget/MobTargetService.java create mode 100644 eternalcore-core/src/main/java/com/eternalcode/core/feature/notarget/MobTargetListener.java create mode 100644 eternalcore-core/src/main/java/com/eternalcode/core/feature/notarget/MobTargetServiceImpl.java create mode 100644 eternalcore-core/src/main/java/com/eternalcode/core/feature/notarget/NoTargetCommand.java create mode 100644 eternalcore-core/src/main/java/com/eternalcode/core/feature/notarget/messages/ENNoTargetMessages.java create mode 100644 eternalcore-core/src/main/java/com/eternalcode/core/feature/notarget/messages/NoTargetMessages.java create mode 100644 eternalcore-core/src/main/java/com/eternalcode/core/feature/notarget/messages/PLNoTargetMessages.java diff --git a/eternalcore-api/src/main/java/com/eternalcode/core/feature/notarget/MobTargetService.java b/eternalcore-api/src/main/java/com/eternalcode/core/feature/notarget/MobTargetService.java new file mode 100644 index 000000000..3794b127c --- /dev/null +++ b/eternalcore-api/src/main/java/com/eternalcode/core/feature/notarget/MobTargetService.java @@ -0,0 +1,23 @@ +package com.eternalcode.core.feature.notarget; + +import java.util.UUID; +import org.bukkit.entity.Player; + +public interface MobTargetService { + + /* + * Ignores a player for mob targeting. + */ + void ignorePlayer(Player uniqueId); + + /* + * Checks if a player is ignored for mob targeting. + * @return true if the player is ignored, false otherwise. + */ + boolean doMobsIgnore(UUID uniqueId); + + /* + * Removes a player from the mob targeting ignore list. + */ + void removeMobIgnore(UUID uniqueId); +} diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/notarget/MobTargetListener.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/notarget/MobTargetListener.java new file mode 100644 index 000000000..987b1cb88 --- /dev/null +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/notarget/MobTargetListener.java @@ -0,0 +1,27 @@ +package com.eternalcode.core.feature.notarget; + +import com.eternalcode.core.injector.annotations.Inject; +import com.eternalcode.core.injector.annotations.component.Controller; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.EntityTargetLivingEntityEvent; + +@Controller +public class MobTargetListener implements Listener { + + private final MobTargetService mobTargetService; + + @Inject + public MobTargetListener(MobTargetService mobTargetService) { + this.mobTargetService = mobTargetService; + } + + @EventHandler + public void onMobTarget(EntityTargetLivingEntityEvent event) { + if (event.getTarget() instanceof Player player && this.mobTargetService.doMobsIgnore(player.getUniqueId())) { + event.setCancelled(true); + } + + } +} \ No newline at end of file diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/notarget/MobTargetServiceImpl.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/notarget/MobTargetServiceImpl.java new file mode 100644 index 000000000..07b7ab163 --- /dev/null +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/notarget/MobTargetServiceImpl.java @@ -0,0 +1,42 @@ +package com.eternalcode.core.feature.notarget; + +import com.eternalcode.core.injector.annotations.component.Service; +import java.util.HashSet; +import java.util.UUID; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Mob; +import org.bukkit.entity.Player; + +@Service +public class MobTargetServiceImpl implements MobTargetService { + + private final HashSet mobTargetMap = new HashSet<>(); + + @Override + public void ignorePlayer(Player player) { + this.mobTargetMap.add(player.getUniqueId()); + + this.enableNoTarget(player); + } + + @Override + public boolean doMobsIgnore(UUID uniqueId) { + return this.mobTargetMap.contains(uniqueId); + } + + @Override + public void removeMobIgnore(UUID uniqueId) { + this.mobTargetMap.remove(uniqueId); + } + + private void enableNoTarget(Player player) { + for (Entity entity : player.getNearbyEntities(30, 30, 30)) { + if (entity instanceof Mob mob) { + + if (mob.getTarget() != null && mob.getTarget().equals(player)) { + mob.setTarget(null); + } + } + } + } +} diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/notarget/NoTargetCommand.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/notarget/NoTargetCommand.java new file mode 100644 index 000000000..3a58ef462 --- /dev/null +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/notarget/NoTargetCommand.java @@ -0,0 +1,79 @@ +package com.eternalcode.core.feature.notarget; + +import com.eternalcode.core.injector.annotations.Inject; +import com.eternalcode.core.notice.NoticeService; +import dev.rollczi.litecommands.annotations.argument.Arg; +import dev.rollczi.litecommands.annotations.command.Command; +import dev.rollczi.litecommands.annotations.context.Sender; +import dev.rollczi.litecommands.annotations.execute.Execute; +import dev.rollczi.litecommands.annotations.permission.Permission; +import java.util.UUID; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +@Command(name = "notarget") +@Permission("eternalcore.notarget") +public class NoTargetCommand { + + private final MobTargetService mobTargetService; + private final NoticeService noticeService; + + @Inject + public NoTargetCommand(MobTargetService mobTargetService, NoticeService noticeService) { + this.mobTargetService = mobTargetService; + this.noticeService = noticeService; + } + + @Execute + void execute(@Sender Player player) { + + UUID uniqueId = player.getUniqueId(); + + if (this.mobTargetService.doMobsIgnore(uniqueId)) { + this.turnOff(uniqueId); + } else { + this.turnOn(player); + } + } + + @Execute + void execute(@Sender CommandSender sender, @Arg Player target) { + UUID uniqueId = target.getUniqueId(); + + if (this.mobTargetService.doMobsIgnore(uniqueId)) { + this.noticeService.create() + .notice(translation -> translation.noTarget().turnedOn()) + .placeholder("{PLAYER}", target.getName()) + .sender(sender) + .send(); + + this.turnOn(target); + } else { + this.noticeService.create() + .notice(translation -> translation.noTarget().turnedOff()) + .placeholder("{PLAYER}", target.getName()) + .sender(sender) + .send(); + + this.turnOff(uniqueId); + } + } + + private void turnOn(Player player) { + this.mobTargetService.ignorePlayer(player); + + this.noticeService.create() + .notice(translation -> translation.noTarget().enabled()) + .player(player.getUniqueId()) + .send(); + } + + private void turnOff(UUID uniqueId) { + this.mobTargetService.removeMobIgnore(uniqueId); + + this.noticeService.create() + .notice(translation -> translation.noTarget().disabled()) + .player(uniqueId) + .send(); + } +} diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/notarget/messages/ENNoTargetMessages.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/notarget/messages/ENNoTargetMessages.java new file mode 100644 index 000000000..db93258d1 --- /dev/null +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/notarget/messages/ENNoTargetMessages.java @@ -0,0 +1,19 @@ +package com.eternalcode.core.feature.notarget.messages; + +import com.eternalcode.multification.notice.Notice; +import eu.okaeri.configs.OkaeriConfig; +import eu.okaeri.configs.annotation.Comment; +import lombok.Getter; +import lombok.experimental.Accessors; + +@Getter +@Accessors(fluent = true) +public class ENNoTargetMessages extends OkaeriConfig implements NoTargetMessages { + Notice disabled = Notice.chat("Monsters will target You!"); + Notice enabled = Notice.chat("Monsters will no longer target You!"); + + @Comment({" ", "# Placeholder: {PLAYER} - Targeted player name"}) + Notice turnedOff = Notice.chat("Monsters will target {PLAYER} - protection has been turned off!"); + Notice turnedOn = Notice.chat("Monsters will ignore {PLAYER} - protection has been turned on!"); + +} diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/notarget/messages/NoTargetMessages.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/notarget/messages/NoTargetMessages.java new file mode 100644 index 000000000..b4060acc0 --- /dev/null +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/notarget/messages/NoTargetMessages.java @@ -0,0 +1,12 @@ +package com.eternalcode.core.feature.notarget.messages; + +import com.eternalcode.multification.notice.Notice; + +public interface NoTargetMessages { + Notice enabled(); + Notice disabled(); + + Notice turnedOn(); + Notice turnedOff(); + +} diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/notarget/messages/PLNoTargetMessages.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/notarget/messages/PLNoTargetMessages.java new file mode 100644 index 000000000..5b06052a7 --- /dev/null +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/notarget/messages/PLNoTargetMessages.java @@ -0,0 +1,18 @@ +package com.eternalcode.core.feature.notarget.messages; + +import com.eternalcode.multification.notice.Notice; +import eu.okaeri.configs.OkaeriConfig; +import eu.okaeri.configs.annotation.Comment; +import lombok.Getter; +import lombok.experimental.Accessors; + +@Getter +@Accessors(fluent = true) +public class PLNoTargetMessages extends OkaeriConfig implements NoTargetMessages { + Notice disabled = Notice.chat("Potwory nie będą Cię więcej ignorować!"); + Notice enabled = Notice.chat("Potwory będą Cię ignorować!"); + + @Comment({ " ", "# Placeholder: {PLAYER} - Wybrany komendą gracz"}) + Notice turnedOff = Notice.chat("Potwory nie będą ignorować gracza: {PLAYER} - ochrona została wyłączona!"); + Notice turnedOn = Notice.chat("Potwory będą ignorować gracza: {PLAYER} - ochrona została włączona!"); +} diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/translation/Translation.java b/eternalcore-core/src/main/java/com/eternalcode/core/translation/Translation.java index f4228143e..b1dd9ade6 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/translation/Translation.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/translation/Translation.java @@ -2,6 +2,7 @@ import com.eternalcode.core.feature.back.messages.BackMessages; import com.eternalcode.core.feature.freeze.messages.FreezeMessages; +import com.eternalcode.core.feature.notarget.messages.NoTargetMessages; import com.eternalcode.core.feature.playtime.messages.PlaytimeMessages; import com.eternalcode.core.feature.clear.messages.ClearMessages; import com.eternalcode.core.feature.container.messages.ContainerMessages; @@ -14,14 +15,11 @@ import com.eternalcode.core.feature.burn.messages.BurnMessages; import com.eternalcode.core.feature.butcher.messages.ButcherMessages; import com.eternalcode.core.feature.chat.messages.ChatMessages; -import com.eternalcode.core.feature.clear.messages.ClearMessages; -import com.eternalcode.core.feature.container.messages.ContainerMessages; import com.eternalcode.core.feature.deathmessage.messages.DeathMessages; import com.eternalcode.core.feature.disposal.messages.DisposalMessages; import com.eternalcode.core.feature.enchant.messages.EnchantMessages; import com.eternalcode.core.feature.feed.messages.FeedMessages; import com.eternalcode.core.feature.fly.messages.FlyMessages; -import com.eternalcode.core.feature.freeze.messages.FreezeMessages; import com.eternalcode.core.feature.fun.demoscreen.messages.DemoScreenMessages; import com.eternalcode.core.feature.fun.elderguardian.messages.ElderGuardianMessages; import com.eternalcode.core.feature.fun.endscreen.messages.EndScreenMessages; @@ -41,11 +39,9 @@ import com.eternalcode.core.feature.near.messages.NearMessages; import com.eternalcode.core.feature.onlineplayers.messages.OnlineMessages; import com.eternalcode.core.feature.ping.PingMessages; -import com.eternalcode.core.feature.playtime.messages.PlaytimeMessages; import com.eternalcode.core.feature.powertool.messages.PowertoolMessages; import com.eternalcode.core.feature.quitmessage.messages.QuitMessage; import com.eternalcode.core.feature.randomteleport.messages.RandomTeleportMessages; -import com.eternalcode.core.feature.repair.messages.RepairMessages; import com.eternalcode.core.feature.seen.messages.SeenMessages; import com.eternalcode.core.feature.setslot.messages.SetSlotMessages; import com.eternalcode.core.feature.signeditor.messages.SignEditorMessages; @@ -61,7 +57,6 @@ import com.eternalcode.core.feature.vanish.messages.VanishMessages; import com.eternalcode.core.feature.warp.messages.WarpMessages; import com.eternalcode.core.feature.whois.WhoIsMessages; -import com.eternalcode.core.litecommand.argument.messages.ArgumentMessages; public interface Translation { @@ -118,6 +113,8 @@ interface Format { NearMessages near(); + NoTargetMessages noTarget(); + HealMessages heal(); FeedMessages feed(); diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/translation/implementation/ENTranslation.java b/eternalcore-core/src/main/java/com/eternalcode/core/translation/implementation/ENTranslation.java index 9cf7a1e0e..8dc9253c1 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/translation/implementation/ENTranslation.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/translation/implementation/ENTranslation.java @@ -33,6 +33,7 @@ import com.eternalcode.core.feature.motd.messages.ENMotdMessages; import com.eternalcode.core.feature.msg.messages.ENMsgMessages; import com.eternalcode.core.feature.near.messages.ENNearMessages; +import com.eternalcode.core.feature.notarget.messages.ENNoTargetMessages; import com.eternalcode.core.feature.onlineplayers.messages.ENOnlineMessages; import com.eternalcode.core.feature.ping.ENPingMessages; import com.eternalcode.core.feature.playtime.messages.ENPlaytimeMessages; @@ -211,6 +212,9 @@ public static class ENFormatSection extends OkaeriConfig implements Format { @Comment("# Near") public ENNearMessages near = new ENNearMessages(); + @Comment("# No Target") + public ENNoTargetMessages noTarget = new ENNoTargetMessages(); + @Comment("# Heal") public ENHealMessages heal = new ENHealMessages(); diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/translation/implementation/PLTranslation.java b/eternalcore-core/src/main/java/com/eternalcode/core/translation/implementation/PLTranslation.java index ee828da82..e6f0af262 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/translation/implementation/PLTranslation.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/translation/implementation/PLTranslation.java @@ -3,12 +3,12 @@ import com.eternalcode.core.feature.back.messages.PLBackMessages; import com.eternalcode.core.feature.freeze.messages.PLFreezeMessages; import com.eternalcode.core.feature.near.messages.PLNearMessages; +import com.eternalcode.core.feature.notarget.messages.PLNoTargetMessages; import com.eternalcode.core.feature.playtime.messages.PLPlaytimeMessages; import com.eternalcode.core.feature.clear.messages.PLClearMessages; import com.eternalcode.core.feature.container.messages.PLContainerMessages; import com.eternalcode.core.feature.repair.messages.PLRepairMessages; import com.eternalcode.core.litecommand.argument.messages.PLArgumentMessages; -import com.eternalcode.core.configuration.contextual.ConfigItem; import com.eternalcode.core.feature.adminchat.messages.PLAdminChatMessages; import com.eternalcode.core.feature.afk.messages.PLAfkMessages; import com.eternalcode.core.feature.automessage.messages.PLAutoMessageMessages; @@ -16,14 +16,11 @@ import com.eternalcode.core.feature.burn.messages.PLBurnMessages; import com.eternalcode.core.feature.butcher.messages.PLButcherMessages; import com.eternalcode.core.feature.chat.messages.PLChatMessages; -import com.eternalcode.core.feature.clear.messages.PLClearMessages; -import com.eternalcode.core.feature.container.messages.PLContainerMessages; import com.eternalcode.core.feature.deathmessage.messages.PLDeathMessages; import com.eternalcode.core.feature.disposal.messages.PLDisposalMessages; import com.eternalcode.core.feature.enchant.messages.PLEnchantMessages; import com.eternalcode.core.feature.feed.messages.PLFeedMessages; import com.eternalcode.core.feature.fly.messages.PLFlyMessages; -import com.eternalcode.core.feature.freeze.messages.PLFreezeMessages; import com.eternalcode.core.feature.fun.demoscreen.messages.PLDemoScreenMessages; import com.eternalcode.core.feature.fun.elderguardian.messages.PLElderGuardianMessages; import com.eternalcode.core.feature.fun.endscreen.messages.PLEndScreenMessages; @@ -40,14 +37,11 @@ import com.eternalcode.core.feature.kill.messages.PLKillMessages; import com.eternalcode.core.feature.motd.messages.PLMotdMessages; import com.eternalcode.core.feature.msg.messages.PLMsgMessages; -import com.eternalcode.core.feature.near.messages.PLNearMessages; import com.eternalcode.core.feature.onlineplayers.messages.PLOnlineMessages; import com.eternalcode.core.feature.ping.PLPingMessages; -import com.eternalcode.core.feature.playtime.messages.PLPlaytimeMessages; import com.eternalcode.core.feature.powertool.messages.PLPowertoolMessages; import com.eternalcode.core.feature.quitmessage.messages.PLQuitMessage; import com.eternalcode.core.feature.randomteleport.messages.PLRandomTeleportMessages; -import com.eternalcode.core.feature.repair.messages.PLRepairMessages; import com.eternalcode.core.feature.seen.messages.PLSeenMessages; import com.eternalcode.core.feature.setslot.messages.PLSetSlotMessages; import com.eternalcode.core.feature.signeditor.messages.PLSignEditorMessages; @@ -63,7 +57,6 @@ import com.eternalcode.core.feature.vanish.messages.PLVanishMessages; import com.eternalcode.core.feature.warp.messages.PLWarpMessages; import com.eternalcode.core.feature.whois.PLWhoIsMessages; -import com.eternalcode.core.litecommand.argument.messages.PLArgumentMessages; import com.eternalcode.core.translation.AbstractTranslation; import com.eternalcode.core.translation.Language; import eu.okaeri.configs.OkaeriConfig; @@ -215,6 +208,9 @@ public static class PLFormatSection extends OkaeriConfig implements Format { @Comment("# Gracze w pobliżu") public PLNearMessages near = new PLNearMessages(); + @Comment("# Ignorowanie prze moby") + public PLNoTargetMessages noTarget = new PLNoTargetMessages(); + @Comment("# Leczenie") public PLHealMessages heal = new PLHealMessages(); From 5f6fcc6e7490275e57645c41ae271c321d394d67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Wojtas?= <80779749+CitralFlo@users.noreply.github.com> Date: Thu, 27 Aug 2026 23:07:41 +0200 Subject: [PATCH 2/3] Update eternalcore-core/src/main/java/com/eternalcode/core/translation/implementation/PLTranslation.java MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Jakub Kędziora <77227023+Jakubk15@users.noreply.github.com> --- .../core/translation/implementation/PLTranslation.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/translation/implementation/PLTranslation.java b/eternalcore-core/src/main/java/com/eternalcode/core/translation/implementation/PLTranslation.java index e6f0af262..fe2ebcbec 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/translation/implementation/PLTranslation.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/translation/implementation/PLTranslation.java @@ -208,7 +208,7 @@ public static class PLFormatSection extends OkaeriConfig implements Format { @Comment("# Gracze w pobliżu") public PLNearMessages near = new PLNearMessages(); - @Comment("# Ignorowanie prze moby") + @Comment("# Ignorowanie przez moby") public PLNoTargetMessages noTarget = new PLNoTargetMessages(); @Comment("# Leczenie") From cd7e4ab8e624d6bc8e031bdaabb252b69b855ec9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Wojtas?= Date: Thu, 27 Aug 2026 23:16:57 +0200 Subject: [PATCH 3/3] Follow @Jakubk15 review --- .../feature/notarget/MobTargetService.java | 14 +++++----- .../notarget/MobTargetServiceImpl.java | 4 +-- .../feature/notarget/NoTargetCommand.java | 26 +++++++++---------- 3 files changed, 22 insertions(+), 22 deletions(-) diff --git a/eternalcore-api/src/main/java/com/eternalcode/core/feature/notarget/MobTargetService.java b/eternalcore-api/src/main/java/com/eternalcode/core/feature/notarget/MobTargetService.java index 3794b127c..58e4822e2 100644 --- a/eternalcore-api/src/main/java/com/eternalcode/core/feature/notarget/MobTargetService.java +++ b/eternalcore-api/src/main/java/com/eternalcode/core/feature/notarget/MobTargetService.java @@ -6,18 +6,18 @@ public interface MobTargetService { /* - * Ignores a player for mob targeting. + * Removes mob tracking for player. */ - void ignorePlayer(Player uniqueId); + void removeTracking(Player player); /* - * Checks if a player is ignored for mob targeting. - * @return true if the player is ignored, false otherwise. - */ + * Checks if a player is ignored for mob targeting. + * @return true if the player is ignored, false otherwise. + */ boolean doMobsIgnore(UUID uniqueId); /* - * Removes a player from the mob targeting ignore list. + * Removes a player from the mob targeting ignore list. */ - void removeMobIgnore(UUID uniqueId); + void startTracking(UUID uniqueId); } diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/notarget/MobTargetServiceImpl.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/notarget/MobTargetServiceImpl.java index 07b7ab163..c5ec0373b 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/notarget/MobTargetServiceImpl.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/notarget/MobTargetServiceImpl.java @@ -13,7 +13,7 @@ public class MobTargetServiceImpl implements MobTargetService { private final HashSet mobTargetMap = new HashSet<>(); @Override - public void ignorePlayer(Player player) { + public void removeTracking(Player player) { this.mobTargetMap.add(player.getUniqueId()); this.enableNoTarget(player); @@ -25,7 +25,7 @@ public boolean doMobsIgnore(UUID uniqueId) { } @Override - public void removeMobIgnore(UUID uniqueId) { + public void startTracking(UUID uniqueId) { this.mobTargetMap.remove(uniqueId); } diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/notarget/NoTargetCommand.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/notarget/NoTargetCommand.java index 3a58ef462..52aa06937 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/notarget/NoTargetCommand.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/notarget/NoTargetCommand.java @@ -26,14 +26,14 @@ public NoTargetCommand(MobTargetService mobTargetService, NoticeService noticeSe @Execute void execute(@Sender Player player) { - UUID uniqueId = player.getUniqueId(); if (this.mobTargetService.doMobsIgnore(uniqueId)) { this.turnOff(uniqueId); - } else { - this.turnOn(player); + return; } + + this.turnOn(player); } @Execute @@ -48,19 +48,19 @@ void execute(@Sender CommandSender sender, @Arg Player target) { .send(); this.turnOn(target); - } else { - this.noticeService.create() - .notice(translation -> translation.noTarget().turnedOff()) - .placeholder("{PLAYER}", target.getName()) - .sender(sender) - .send(); - - this.turnOff(uniqueId); + return; } + this.noticeService.create() + .notice(translation -> translation.noTarget().turnedOff()) + .placeholder("{PLAYER}", target.getName()) + .sender(sender) + .send(); + + this.turnOff(uniqueId); } private void turnOn(Player player) { - this.mobTargetService.ignorePlayer(player); + this.mobTargetService.removeTracking(player); this.noticeService.create() .notice(translation -> translation.noTarget().enabled()) @@ -69,7 +69,7 @@ private void turnOn(Player player) { } private void turnOff(UUID uniqueId) { - this.mobTargetService.removeMobIgnore(uniqueId); + this.mobTargetService.startTracking(uniqueId); this.noticeService.create() .notice(translation -> translation.noTarget().disabled())