feat: add NametagEntityListener to handle special nametag interactions

This commit is contained in:
besiece committed 2026-09-25 16:47:48 +02:00
1 parent 3513477265
commit 879dfb9bdd
2 files changed
+33 -1

No files matched your search

@@ -0,0 +1,32 @@
package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.silenceNametag;
import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener;
import org.bukkit.Material;
import org.bukkit.event.EventHandler;
import org.bukkit.event.player.PlayerInteractEntityEvent;
import org.bukkit.inventory.EquipmentSlot;
import org.bukkit.inventory.ItemStack;
import org.bukkit.persistence.PersistentDataType;
public class NametagEntityListener extends ApplianceListener<SilenceNametag> {
@EventHandler
public void onNametagUse(PlayerInteractEntityEvent event){
ItemStack item;
if (event.getHand() == EquipmentSlot.HAND) {
item = event.getPlayer().getInventory().getItemInMainHand();
} else {
item = event.getPlayer().getInventory().getItemInOffHand();
}
if(item.getType() != Material.NAME_TAG) return;
if(!item.getItemMeta().getPersistentDataContainer().has(
this.getAppliance().nametagActionKey,
PersistentDataType.INTEGER
)) return;
System.out.println("NametagEntityListener: Player " + event.getPlayer().getName() + " used a special nametag on entity " + event.getRightClicked().getType());
}
}
@@ -81,6 +81,6 @@ public class SilenceNametag extends Appliance {
@Override
protected @NotNull List<Listener> listeners() {
return List.of(new NametagAnvilListener());
return List.of(new NametagAnvilListener(), new NametagEntityListener());
}
}