Solved Save/Load Inventory to/from Config

Discussion in 'Plugin Development' started by lR3fleXi0n, Jun 15, 2014.

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

    lR3fleXi0n

    Hey, currently I'm coding a "Kit"-command.
    Here's my code:
    Code:java
    1.  
    2. public void createKit(String name, Player p) {
    3. getConfig().set("Kit." + name + ".armor", p.getInventory().getArmorContents());
    4. getConfig().set("Kit." + name + ".items", p.getInventory().getContents());
    5. saveConfig();
    6. p.sendMessage(Main.prefix + "Du hast das Kit §6" + name + "§7 erfolgreich erstellt.");
    7. }
    8.  
    9. public void removeKit(String name, Player p) {
    10. if(getConfig().contains("Kit." + name)) {
    11. getConfig().set("Kit." + name, null);
    12. saveConfig();
    13. p.sendMessage(Main.prefix + "Du hast das Kit §6" + name + "§7 erfolgreich gelöscht.");
    14. } else {
    15. p.sendMessage(Main.prefix + "Das Kit §6" + name + "§7 existiert nicht.");
    16. }
    17. }
    18.  
    19. public void getKit(String name, Player p) {
    20. if(getConfig().contains("Kit." + name)) {
    21. ItemStack[] armor = (ItemStack[]) (getConfig().get("Kit." + name + ".armor"));
    22. ItemStack[] items = (ItemStack[]) (getConfig().get("Kit." + name + ".items"));
    23. p.getInventory().setArmorContents((ItemStack[]) armor);
    24. p.getInventory().setContents((ItemStack[]) items);
    25. p.sendMessage(Main.prefix + "Du hast das Kit §6" + name + "§7 beansprucht.");
    26. } else {
    27. p.sendMessage(Main.prefix + "Das Kit §6" + name + "§7 existiert nicht.");
    28. }
    29. }
    30.  


    But when im using the getKit Method, I receive this Error:
    I don't know how I could fix this, so I hope that someone can help me.
    Thanks.
     
  2. Offline

    Konkz

    Code:
    Caused by: java.lang.ClassCastException: java.util.ArrayList cannot be cast to [Lorg.bukkit.inventory.ItemStack;
    You are trying to say that ItemStack is an ArrayList, when it's not. Your error is on line
    KitCommand: 87
    KitCommand : 55
     
  3. Offline

    xize

    lR3fleXi0n

    do:
    Code:
    ItemStack[] items = ((List<ItemStack>)con.get("orginalinv.armor")).toArray(new ItemStack[0]);
    
    the get gives a List<ItemStack> so you need to change the List back to a Array.
     
    lR3fleXi0n likes this.
  4. Offline

    lR3fleXi0n

Thread Status:
Not open for further replies.

Share This Page