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

HashMap mit Integer und ItemStack in eine Config abspeichern und wieder aufrufen.

gasjul

Minecrafter
Registriert
27 September 2012
Beiträge
21
Diamanten
0
Hallo,
ich habe gerade für ein noch geheimes Projekt einen /addkit Command gemacht. Jetzt sollen alle Inventory Contents in eine HashMap gespeichert werden. Diese sind mit dem Integer nummeriert.
So weit so gut. Das klappt auch alles. Nur beim abspeichern und laden der HashMap in die Config scheitere ich.

HashMap:
public HashMap<Integer, ItemStack[]> items = new HashMap<Integer, ItemStack[]>();


Kann mit jemand einen Code zum abspeichern und laden senden oder einen Ansatz geben ?

Danke im Vorraus

MFG
 

letsz0ck3r

Minecrafter
Registriert
14 Februar 2014
Beiträge
4
Alter
31
Diamanten
300
Minecraft
Heddo
Code:
  public HashMap<Integer, ItemStack[]> items = new HashMap<Integer, ItemStack[]>();

   private void loadHashMap() {
     getLogger().info("Start loading kits...");
     for (String id : getConfig().getConfigurationSection("kit").getKeys(false)) {
       List<ItemStack> itemStacks = new ArrayList<ItemStack>();
       for (String i : getConfig().getConfigurationSection("kit." + id).getKeys(false)) {

         itemStacks.add(getConfig().getItemStack("kit." + id + "." + i));
       }
       items.put(Integer.valueOf(id), itemStacks.toArray(new ItemStack[itemStacks.size()]));
     }
     getLogger().info("Kits loaded.");
   }

   private void saveHashMap() {
     getLogger().info("Start saving kits...");
     int i = 0;
     getConfig().set("kit", null);
     for (Entry<Integer, ItemStack[]> entry : items.entrySet()) {
       for (int j = 0; j < entry.getValue().length; j++) {
           getConfig().set("kit." + i + "." + j, entry.getValue()[j]);
       }
       i++;
     }
     saveConfig();
     getLogger().info("Kits saved.");
   }

So könnte dann die config.yml aus
Code:
kit:
  '0':
    '0':
      ==: org.bukkit.inventory.ItemStack
      type: ACACIA_DOOR
  '1':
    '0':
      ==: org.bukkit.inventory.ItemStack
      type: ANVIL
  '2':
    '0':
      ==: org.bukkit.inventory.ItemStack
      type: APPLE
      damage: 1
 
Zuletzt bearbeitet:
Oben