2016-05-24 13 views
0

Ich habe einige Probleme mit meinem Kit-Plugin für Bukkit und Spigot. Wenn ich den Befehl/Kits verwende, öffnet sich nur ein leeres Inventar. Hier ist mein Code:Artikel kann nicht zum Inventar hinzugefügt werden (Bukkit/Spigot)

 for (int i = 0; i<main.cfg.getConfigurationSection("kits").getKeys(false).size();i++) { 
      String s = (String) main.cfg.getConfigurationSection("kits").getKeys(false).toArray()[i]; 
      ItemStack is = new ItemStack(Material.valueOf(main.cfg.getString("kits." + s + ".mat"))); 
      ItemMeta im = is.getItemMeta(); 
      im.setDisplayName(s); 
      is.setItemMeta(im); 
      cont.add(is); 
     } 

das Element Stapel gültig ist, aber wenn ich kits.add tun (ist) das Element nicht zum Inventar hinzugefügt bekommt.

  • Ich habe die Inventar-Kits mit Bukkit.createInventory(null,size,"Kits"); erstellt und es zeigt sich richtig
  • Nachdem ich alle Elemente hinzugefügt haben, öffnen ich das Inventar mit ((Player)sender).openInventory(kits);

Sie cont.add(is) im Code zu sehen, weil Ich habe versucht, eine Liste von ItemStack (cont) zu erstellen und dann in einer anderen for-Schleife alle Elemente zum Inventar hinzuzufügen, aber das sollte keinen Unterschied machen.

Antwort

1

fand ich eine Lösung für dieses Problem. Das lag daran, dass ich die Größe des Inventars abhängig davon berechnet habe, wie viele Kits es gibt. Heute habe ich mich gewundert, warum ich 3 Zeilen im Inventar und nur 1 Kit hatte. das sollte nur 1 Zeile machen. dann habe ich es auf 54 Artikel gesetzt, also 6 Zeilen als Inventargröße und es hat funktioniert! Lösung: stellen Sie sicher, dass Sie mindestens 3 Zeilen in Ihrem Inventar erstellen, dann sollte es funktionieren.

0

Der einzige Gedanke ist vielleicht "main.cfg.getConfigurationSection (" kits "). GetKeys (false) .size()" gibt 0 zurück, was dazu führt, dass der Code in der for-Schleife nie ausgeführt wird. Vielleicht könnten Sie "sender.sendMessage (" Die for-Schleife läuft ");" innerhalb der for-Schleife, nur um zu überprüfen, dass es tatsächlich läuft.

+0

Ich bin mir sicher, es läuft, weil ich eine SYSOUT in die Schleife, um die Daten des itemStack zu drucken. und es hat die Daten ausgegeben. – TimoHo

+0

Hm, das ist ein kniffliges ... –

+0

"Hm, das ist ein kniffliges ... - Bill Ray vor 13 Stunden" Ja, das stimmt, mit all meinen anderen Plugins funktioniert die GUI über Inventare perfekt, aber ich habe alles genau gemacht wie in diesem. – TimoHo

-1

Es ist nicht hinzufügen, es ist addItem :)

cont.addItem(is); 
+0

cont ist kein Inventar Es ist eine Liste (lies meine Bearbeitung) – TimoHo

+0

Oh, mein Schlechter. Das ist wirklich seltsam. – Ark9026

Verwandte Themen