• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Spigot Bestehendes Inventar umbenennen

D

deleted206139

Guest
Heyy,
ich bin gerade dabei einen Invsee Befehl für mein Plugin zu schreiben, jedoch möchte ich, dass das Inventar was dann aufgerufen wird einen bestimmten Namen hat. Da man ja den Namen oder Titel nicht setzen kann, habe ich folgendes probiert:

Java:
Inventory invsee = Bukkit.createInventory(null, 9*4, "§aInvsee");
invsee.setContents(target.getInventory().getContents());

Leider erhalte ich dabei eine Fehlermeldung, aus der ich mal dir wichtigste Zeile rauskopiert habe:

Java:
Caused by: java.lang.IllegalArgumentException: Invalid inventory size; expected 36 or less

Ich habe absichtlich eine Größe von 45 für das Inventar gewählt, da das ja auch die tatsächliche Größe eines Spieler-Inventares ist.
Ich habe auch einmal versucht, das Inventar mit einer Größe von 36 zu erstellen, dabei erhalte ich genau denselben Fehler.

Wäre cool wenn mir da einer helfen könnte.


Mit freundlichen Grüßen
Jannick (L1nd)
 

BlackHole

Workaholic
Registriert
1 Juli 2012
Beiträge
752
Diamanten
0
Minecraft
BlackHole
Diese Fehlermeldung erscheint, wenn das an setContents() übergebene Array länger ist als die Größe der Inventar-Instanz für die du setContents() aufrufst. Hier ist 36 also zu wenig, um das Inventar darzustellen. Aber auch 45 ist zu wenig, weil das Spielerinventar noch zusätzliche Slots für die Rüstung und die Zweithand hat. Erstelle dein Inventar also einfach als 6 * 9, dann passt alles rein.

Beachte aber, dass dein Befehl nur den Zustand des Inventars beim Aufruf darstellt, Änderungen werden nicht weitergereicht.
 
Oben