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 7814d11..e7be5b4 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 @@ -16,8 +16,10 @@ public class NametagEntityListener extends ApplianceListener { ItemStack item; if (event.getHand() == EquipmentSlot.HAND) { + System.out.println("Using main hand"); item = event.getPlayer().getInventory().getItemInMainHand(); } else { + System.out.println("Using off hand"); item = event.getPlayer().getInventory().getItemInOffHand(); } @@ -29,17 +31,24 @@ public class NametagEntityListener extends ApplianceListener { )) return; if (getAppliance().getNametagAction(item) == SilenceNametag.NametagActions.SILENCE) { + System.out.println("Silencing mob"); event.getRightClicked().setSilent(true); event.getPlayer().sendMessage( Component.text("Der Mob wurde verstummt.") .color(NamedTextColor.GREEN) ); } else if (getAppliance().getNametagAction(item) == SilenceNametag.NametagActions.UNSILENCE) { + System.out.println("Unsilencing mob"); event.getRightClicked().setSilent(false); event.getPlayer().sendMessage( Component.text("Der Mob wurde entstummt.") .color(NamedTextColor.GREEN) ); } + + if (item.getItemMeta().customName() == null){ + System.out.println("Nametag has no custom name, reducing amount"); + item.setAmount(item.getAmount() - 1); + } } } diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/silenceNametag/SilenceNametag.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/silenceNametag/SilenceNametag.java index 6751984..aa1d0d0 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/silenceNametag/SilenceNametag.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/silenceNametag/SilenceNametag.java @@ -31,6 +31,7 @@ public class SilenceNametag extends Appliance { setPersistentDataOfNametag(item, action); removeLoreOfNametag(item); setLoreOfNametag(item, action); + restoreDefaultNameOfNametag(item); return item; } @@ -58,11 +59,16 @@ public class SilenceNametag extends Appliance { } else if (action == NametagActions.UNSILENCE){ lore.add(Component.text("Dieser Name Tag entstummt Mobs.")); } - meta.customName(null); meta.lore(lore); }); } + void restoreDefaultNameOfNametag(ItemStack item){ + item.editMeta(meta -> { + meta.customName(null); + }); + } + @Nullable NametagActions getNametagAction(ItemStack item) { Objects.requireNonNull(item, "Item must not be null."); return item.getPersistentDataContainer().get(nametagActionKey, PersistentDataType.INTEGER) == null