Momentan schreibe ich an einem Plugin, für welches ich eine Liste mit Inventaren habe und wissen muss, ob das Inventar welches ein Spieler geöffnet hat, während er eine Aktion ausführt, in dieser Liste vorhanden ist. Ich nutze als Liste eine BiMap, eine HashMap die in beide Richtungen verwendet werden kann. Anfangs erstelle ich ein neues Inventar. Dazu verwende ich diesen Code:
Nun schmeiß ich ein paar Items in dieses Inventar. Bin ich damit fertig, speichere ich das Inventar in die besagte HashMap, indem ich diesen Code nutze:
Jetzt öffne ich das Inventar mithilfe dieses Codes:
Ich übergebe hier den Key mit dem ich vorher das Inventar abgespeichert habe.
Wenn der Spieler nun in seinem Inventar herumklickt, frage ich mit diesem Code ab, ob das offene Inventar das Inventar ist, welches ich vorher in die HashMap eingetragen habe. Dies tue ich mit diesem Code:
Das Inventar, welches geöffnet ist, ist ja genau das Inventar aus der Liste. Trotzdem sagt er mir, dass die beiden Inventare nicht gleich sind. Wie kann ich das beheben? Seht ihr einen Fehler oder habt ihr Ideen?
Ich bedanke mich schonmal im Voraus, ich hoffe ihr könnt mir helfen
Gruß,
Marius
Code:
Inventory inv = Bukkit.createInventory(null, 54,"Shop Hauptseite");
Code:
plugin.invHolder.put("Hauptseite", inv);
Code:
Bukkit.getPlayerExact(playerName).openInventory(plugin.invHolder.get("Hauptseite")
Wenn der Spieler nun in seinem Inventar herumklickt, frage ich mit diesem Code ab, ob das offene Inventar das Inventar ist, welches ich vorher in die HashMap eingetragen habe. Dies tue ich mit diesem Code:
Code:
if(player.getOpenInventory().getTopInventory() == plugin.invHolder.get("Hauptseite"))
{
Bukkit.broadcastMessage("Inventare sind gleich");
}
Das Inventar, welches geöffnet ist, ist ja genau das Inventar aus der Liste. Trotzdem sagt er mir, dass die beiden Inventare nicht gleich sind. Wie kann ich das beheben? Seht ihr einen Fehler oder habt ihr Ideen?
Ich bedanke mich schonmal im Voraus, ich hoffe ihr könnt mir helfen
Gruß,
Marius