Wie kann man die Displaynamen von Items im Inventar abfragen?

5 Antworten

public boolean playerHasItem(Player p, String itemname) {
	for(int i = 0; i < p.getInventory().getSize(); i++) {
		if(p.getInventory().getItem(i).getItemMeta().getDisplayName() == itemname){
			return true;
		}
	}
	return false;
}
	
public boolean playerHasItem(Player p, ItemMeta itemmeta) {
	for(int i = 0; i < p.getInventory().getSize(); i++) {
		if(p.getInventory().getItem(i).getItemMeta() == itemmeta){
			return true;
		}
	}
	return false;
}

Du kannst eine der Funktionen benutzen. Beide Funktionen durchsuchen das Inventar vom Spieler nach (Funktion 1) einem Namen und (Funktion 2) nach einer ItemMeta.

Du kannst mit der Inventory Methode all(Material material) alle Items eines bestimmten Typs in einem Inventar bekommen, dann musst du nur noch bei jedem dieser Items überprüfen, ob es den richtigen Name hat.

ItemStack item = null;
item.getItemMeta().getDisplayName().equals("§4Verlassen")
Woher ich das weiß:Studium / Ausbildung – Ausbildung Fachinformatiker Anwendungsentwicklung

Mit Item.GetDisplayName() sollte es gehen

If(e.getDisplayname().equals("ITEMNAME")) {