Bukkit ItemStack?
Hallo an alle!
Wenn ich nur 1 Item (in diesem Fall ein Diamant) in meiner Main Hand habe, dann funktioniert es prima, aber sobald ich mehr als 1 (2, 3, 4 ect.) in der Main Hand habe, dann sagt er, dass ich kein Item bzw. das falsche Item in der Hand halte.
ItemStack diamond = new ItemStack(Material.DIAMOND);
ItemStack paper = new ItemStack(Material.PAPER);
ItemStack mainHand = player.getInventory().getItemInMainHand();
if (mainHand.equals(diamond) || mainHand.equals(paper)) { // Hier sagt er, dass ich, auch wenn ich ein Dia in der Hand halte, nichts in der Hand halte.
Liebe Grüße
Silvan
1 Antwort
Weil bei einem ItemStack eben auch die Anzahl mit dabei ist.
Ein ItemStack besteht aus Material und Anzahl.
ItemStack diamond = new ItemStack(Material.DIAMOND);
Erstellt einen Diamant-Stack mit Anzahl 1. Der ist dann natürlich ungleich einem Diamantstack mit Anzahl 5, falls der Spieler beispielsweise 5 Diamanten in der Hand hat, deswegen funktioniert es dann nicht mehr.
Du musst das Material des ItemStacks vergleichen:
if (mainHandItem.getType() == Material.DIAMOND)
Eine Frage hätte ich noch kurz: wie kann ich bei der Bukkit default Config werte (in meinem Fall ein integer) zu dem gestehendem Wert (auch integer) hinzufügen?
if (mainHandItem.getType() == Material.DIAMOND) {
Main.getInstance().getConfig().// Hier weiß ich nicht, was ich einsetzen soll :(
mainHandItem.setAmount(amount - 1);
Main.getInstance().reloadConfig();
genau das habe ich schon probiert, aber da funktioniert es leider nicht. Hast du vielleicht eine andere Lösung?
Das ist die Fehlermeldung:
Operator '+' cannot be applied to 'java.lang.Object', 'int'
Ahh, Vielen Dank!