feat: add NametagEntityListener to handle special nametag interactions
This commit is contained in:
1 parent
3513477265
commit
879dfb9bdd
2 files changed
+33
-1
No files matched your search
+32
@@ -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());
|
||||
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -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());
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user