feat: enhance silence and unsilence functionality and manage nametag item amount

This commit is contained in:
besiece committed 2026-09-25 17:19:54 +02:00
1 parent 091bc8f10c
commit 98dc59ca15
2 files changed
+16 -1

No files matched your search

@@ -16,8 +16,10 @@ public class NametagEntityListener extends ApplianceListener<SilenceNametag> {
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<SilenceNametag> {
)) 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);
}
}
}
@@ -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