Wie kann man die Displaynamen von Items im Inventar abfragen?

6 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")

spiele mit dem /testfor command. Schau auf Youtube nach tutorial für den command /testfor (minecraft wiki geht auch)

Wir sind Bei Bukkit/Java und nicht CommandBlocks...

2

Mit Item.GetDisplayName() sollte es gehen

Was möchtest Du wissen?