From 961a22beac694d1db9f0a5d161638bf0b1f9fe6f Mon Sep 17 00:00:00 2001 From: David Rauh Date: Fri, 25 Sep 2026 17:24:50 +0200 Subject: [PATCH] feat: improve silence and unsilence feedback for mobs in NametagEntityListener --- .../silenceNametag/NametagEntityListener.java | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/silenceNametag/NametagEntityListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/silenceNametag/NametagEntityListener.java index e7be5b4..dfa5bf5 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/silenceNametag/NametagEntityListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/silenceNametag/NametagEntityListener.java @@ -4,6 +4,7 @@ import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Material; +import org.bukkit.entity.Entity; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerInteractEntityEvent; import org.bukkit.inventory.EquipmentSlot; @@ -30,23 +31,39 @@ public class NametagEntityListener extends ApplianceListener { PersistentDataType.INTEGER )) return; + Entity mob = event.getRightClicked(); + if (getAppliance().getNametagAction(item) == SilenceNametag.NametagActions.SILENCE) { + if(mob.isSilent()) { + event.getPlayer().sendMessage( + Component.text("Der Mob ist bereits verstummt.") + .color(NamedTextColor.RED) + ); + return; + } System.out.println("Silencing mob"); - event.getRightClicked().setSilent(true); + mob.setSilent(true); event.getPlayer().sendMessage( Component.text("Der Mob wurde verstummt.") .color(NamedTextColor.GREEN) ); } else if (getAppliance().getNametagAction(item) == SilenceNametag.NametagActions.UNSILENCE) { + if (!mob.isSilent()) { + event.getPlayer().sendMessage( + Component.text("Der Mob ist bereits entstummt.") + .color(NamedTextColor.RED) + ); + return; + } System.out.println("Unsilencing mob"); - event.getRightClicked().setSilent(false); + mob.setSilent(false); event.getPlayer().sendMessage( Component.text("Der Mob wurde entstummt.") .color(NamedTextColor.GREEN) ); } - if (item.getItemMeta().customName() == null){ + if (item.getItemMeta().customName() == null && event.getPlayer().getGameMode() != org.bukkit.GameMode.CREATIVE) { System.out.println("Nametag has no custom name, reducing amount"); item.setAmount(item.getAmount() - 1); }