Wie kann man den Inhalt eines erstellen Inventares speichern?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Vermutlich erstellst du bei jedem Öffnen ein neues Inventar, logisch dass das nicht funktioniert. Am einfachsten ist es die Inventare in einer assoziativen Datenstruktur zu speichern. Java hat dafür das Interface Map, die sinnvollste Implementierung ist hier eine HashMap. Eine HashMap speichert die Werte in einer Hashtabelle, wodurch die Komplexität eines Zugriffes bei einer Veränderung der Größe mehr oder weniger konstant bleibt.

Erstellung:

Map<Player, Inventory> secondaryInventories = new HashMap<>();

Verwendung beim Öffnen:

Inventory secondaryInventory = secondaryInventories.get(player);
if (secondaryInventory == null) {
    // Neues Inventar erstellen
    secondaryInventories.put(player, secondaryInventory);
}
// Inventar öffnen

Damit bleiben die Inventare jedoch nur während der Laufzeit erhalten, willst du dass sie auch bei einem Neustart erhalten bleiben, musst du die Hashtabelle auf dem Datenträger speichern. Das geht zum Beispiel mit Minecrafts eigenem Format NBT.


Doffbatz 
Fragesteller
 07.02.2018, 14:06

Vielen Dank für die Hilfe!

0
Woher ich das weiß:eigene Erfahrung – Hosting diverse Spigot/Bukkit Server sowie Forge

FireEraser  06.02.2018, 20:01

Wenn du hier schon auf ein Video verlinkst, dann sollte das wenigstens gut sein, aber das ist es definitiv nicht.

0
TopicsLP  06.02.2018, 20:06
@FireEraser

Viele wege führen nach Rom auch wenn Sie alt sind sowie nicht schön. (Video ist auch schon etwas älter)

0
FireEraser  06.02.2018, 20:14
@TopicsLP

Ist trotzdem blöd, wenn der eine Weg doppelt so lang ist. Genau daher gibt es auch Begriffe wie Scripkiddie, denn wenn man so lernt, versteht man eigentlich gar nicht, was man macht.

0