• 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!

String zu ItemStack konventieren

delta242

Kuhfänger
Registriert
28 Mai 2012
Beiträge
90
Diamanten
0
Hey,
grad so ein wenig mit Bukkit rumprogrammiert und hatte die Idee, dass ein Spieler so was wie /inv speichern eingeben kann, sich dann sein inventar löscht und sich player.getInventory().getContents() in die Config reinschreibt. Wenn der Spieler nun /inv laden eingibt, bekommt der Spieler die Items, die in der config gespeichert sind.

Die Contents in die Config reinspeichern funktioniert ja ganz einfach mit this.getConfig().set("inventar", p.getInventory().getContents().toString()); Allerdings das laden geht nicht, da inventar ja ein String und kein ItemStack[] ist. Somit kann man nicht die Methode p.getInventory().setContents(inventar) nicht aufrufen.

Dem String ItemStack casten geht auch nicht.

Weiss jemand, wie man aus einem String wieder ein ItemStack machen kann?

MfG,
delta242.
 

Benni1000

Ehemaliges Teammitglied
Ehem. Teammitglied
Registriert
4 Mai 2012
Beiträge
1.396
Diamanten
0
Ich würde das ganz anders machen.
Laufe mit einer Schleife das Inventar durch.
Jetzt Speicherst du die werte die du bekommst folgendermaßen ab:
ITEMID-DAMAGE-ANZAHL
z.b.
Dann hast du alle items in dem format abgespeichert.
Jetzt kannst du wenn du die Datei einliest alle Items wieder in einen Itemstack zurückverwandeln,
indem du an den - zeichen den string splittest und so die abgespeicherten Werte zurückerhälst.
Oder du machst das ganze mit einer Datenbank was sinnvoller wäre.
Um einen ItemStack zu erzeugen kannst du das hier machen:
Code:
[TABLE="class: memname"]
[TR]
[/TR]
[TR]
[TD]ItemStack[/TD]
[TD]([/TD]
[TD="class: paramtype"]final int[/TD]
[TD="class: paramname"][I]type[/I],[/TD]
[/TR]
[TR]
[TD="class: paramkey, align: right"][/TD]
[TD][/TD]
[TD="class: paramtype"]final int[/TD]
[TD="class: paramname"][I]amount[/I],[/TD]
[/TR]
[TR]
[TD="class: paramkey, align: right"][/TD]
[TD][/TD]
[TD="class: paramtype"]final short[/TD]
[TD="class: paramname"][I]damage[/I][/TD]
[/TR]
[TR]
[TD][/TD]
[TD])[/TD]
[/TR]
[/TABLE]

Jetzt kannst du die Itemstacks einzeln in das inventar zurücklegen.
 

Benni1000

Ehemaliges Teammitglied
Ehem. Teammitglied
Registriert
4 Mai 2012
Beiträge
1.396
Diamanten
0
Oben