Wie kann man die Displaynamen von Items im Inventar abfragen?
Ich möchte abfragen ob der Spieler schon ein Item hat hier mit dem Namen Smoke. Fals er das nicht hat würde er es bekommen. Dort wo es rot markiert ist müsste man es abfragen
Version: 1.9.2 Bukkit
Vielen dank für eure Antworten
5 Antworten
Mit Item.GetDisplayName() sollte es gehen
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.
Nutzer, der sehr aktiv auf gutefrage ist
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.
Nutzer, der sehr aktiv auf gutefrage ist
ItemStack item = null;
item.getItemMeta().getDisplayName().equals("§4Verlassen")
Woher ich das weiß:Studium / Ausbildung – Ausbildung Fachinformatiker Anwendungsentwicklung
If(e.getDisplayname().equals("ITEMNAME")) {