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); }