How to save ItemStack[]

Discussion in 'Plugin Development' started by Crosant, Dec 11, 2011.

Thread Status:
Not open for further replies.
  1. Offline

    Crosant

    I have tried to save inventorys into a file and Serialize them but it dont works.
    i become that error :
    http://pastebin.com/BTnMhCt2
    If anybody have an Idear thank you :)
     
  2. Offline

    Kierrow

    Ich schätze mal ich sollte dir das auf Deutsch sagen:

    Das Problem ist, dass du eine Klasse zwar als "serialized" deklarieren kannst,
    aber diese Klasse beinhaltet meist Variablen die nicht "serialized" sind, sodass ein
    Objekt der Klasse trotzdem nicht gespeichert werden kann.

    Du musst versuchen aus einem ItemStack-Objekt alle nötigen Informationen (Material, Menge, data)
    herauszuholen und diese abzuspeichern. Aus diesen Informationen kannst du dann später wieder
    einen ItemStack rekonstruieren. Ist umständlich, aber besser geht es nicht.
    Versuch aus einer solchen Klasse wie ItemStack immer genau solche Typen herauszuarbeiten,
    die entweder Grundtypen (int, byte, long, double, float, ...) sind, oder selbst Serializables (String, ArrayList, ...).
    Um eine Übersicht aller Klassen, die es in Java standardmäßig gibt zu bekommen, siehe hier:
    http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html unter "All known subclasses".

    Hoffe ich konnte helfen.
    -Kierrow
     
  3. Offline

    Crosant

    @Kierrow mir wurde gesagt das es einfacher ist einfach den itemstack in eine config datei zu speichern kanst du mir sagen wie?
     
  4. Offline

    Kierrow

    Also, die beiden Objekte "plugin" und "items" nehmen wir einfach mal als gegeben:

    Code:
    JavaPlugin plugin;
    ItemStack items;
    public void save() {
        plugin.getConfig().set("items", items);
        plugin.saveConfig();
    }
    public ItemStack load() {
        return plugin.getConfig.getItemStack("items");
    }
    Das geht zwar, ist aber unübersichtlich, unprofessionell und für solche Dinge nicht zu empfehlen.
    Lies dich in die HashMaps ein, das ist eine bessere Variante:

    http://wiki.bukkit.org/Plugin_Tutorial#HashMaps_and_How_to_Use_Them
     
  5. Offline

    Crosant

    ok werde ich amchen danke
     
Thread Status:
Not open for further replies.

Share This Page