Solved filling chests with items

Discussion in 'Spigot Plugin Development' started by mmuziek, May 29, 2016.

  1. hi there im working on my plugin.
    but with the randomized loot something goes wrong. here is my code and config mabe someone can see what im doing wrong here:

    Code (Text):
    starlocation.getBlock().setType(Material.CHEST);
                    Block chest = starlocation.getBlock();
                    Chest ch = (Chest) chest.getState();
                    if (chance2 == 1) {
                        for (String item : plugin.getConfig().getStringList("RANDOMLOOT.1")) {
                            String[] itemdata = item.split(",", 2);
                            int id, amount;
                            try {
                                id = Integer.parseInt(itemdata[0]);
                                amount = Integer.parseInt(itemdata[1]);
                                ch.getInventory().addItem(new ItemStack(id, amount));

                            } catch (NumberFormatException e1) {
                                System.out.println(ChatColor.RED + " Invalid format, skipping item!");
                            }
                        }
                    } else if (chance2 == 2) {
                        for (String item : plugin.getConfig().getStringList("RANDOMLOOT.2")) {
                            String[] itemdata = item.split(",", 2);
                            int id, amount;
                            try {
                                id = Integer.parseInt(itemdata[0]);
                                amount = Integer.parseInt(itemdata[1]);
                                ch.getInventory().addItem(new ItemStack(id, amount));

                            } catch (NumberFormatException e1) {
                                System.out.println(ChatColor.RED + " Invalid format, skipping item!");
                            }
                        }
                    } else if (chance2 == 3) {
                        for (String item : plugin.getConfig().getStringList("RANDOMLOOT.3")) {
                            String[] itemdata = item.split(",", 2);
                            int id, amount;
                            try {
                                id = Integer.parseInt(itemdata[0]);
                                amount = Integer.parseInt(itemdata[1]);
                                ch.getInventory().addItem(new ItemStack(id, amount));

                            } catch (NumberFormatException e1) {
                                System.out.println(ChatColor.RED + " Invalid format, skipping item!");
                            }
                        }
                    } else if (chance2 == 4) {
                        for (String item : plugin.getConfig().getStringList("RANDOMLOOT.4")) {
                            String[] itemdata = item.split(",", 2);
                            int id, amount;
                            try {
                                id = Integer.parseInt(itemdata[0]);
                                amount = Integer.parseInt(itemdata[1]);
                                ch.getInventory().addItem(new ItemStack(id, amount));

                            } catch (NumberFormatException e1) {
                                System.out.println(ChatColor.RED + " Invalid format, skipping item!");
                            }
                        }
                    } else if (chance2 == 5) {
                        for (String item : plugin.getConfig().getStringList("RANDOMLOOT.5")) {
                            String[] itemdata = item.split(",", 2);
                            int id, amount;
                            try {
                                id = Integer.parseInt(itemdata[0]);
                                amount = Integer.parseInt(itemdata[1]);
                                ch.getInventory().addItem(new ItemStack(id, amount));

                            } catch (NumberFormatException e1) {
                                System.out.println(ChatColor.RED + " Invalid format, skipping item!");
                            }
                        }
                    } else if (chance2 == 6) {
                        for (String item : plugin.getConfig().getStringList("RANDOMLOOT.6")) {
                            String[] itemdata = item.split(",", 2);
                            int id, amount;
                            try {
                                id = Integer.parseInt(itemdata[0]);
                                amount = Integer.parseInt(itemdata[1]);
                                ch.getInventory().addItem(new ItemStack(id, amount));

                            } catch (NumberFormatException e1) {
                                System.out.println(ChatColor.RED + " Invalid format, skipping item!");
                            }
                        }
                    } else if (chance2 == 7) {
                        for (String item : plugin.getConfig().getStringList("RANDOMLOOT.7")) {
                            String[] itemdata = item.split(",", 2);
                            int id, amount;
                            try {
                                id = Integer.parseInt(itemdata[0]);
                                amount = Integer.parseInt(itemdata[1]);
                                ch.getInventory().addItem(new ItemStack(id, amount));

                            } catch (NumberFormatException e1) {
                                System.out.println(ChatColor.RED + " Invalid format, skipping item!");
                            }
                        }
                    } else if (chance2 == 8) {
                        for (String item : plugin.getConfig().getStringList("RANDOMLOOT.8")) {
                            String[] itemdata = item.split(",", 2);
                            int id, amount;
                            try {
                                id = Integer.parseInt(itemdata[0]);
                                amount = Integer.parseInt(itemdata[1]);
                                ch.getInventory().addItem(new ItemStack(id, amount));

                            } catch (NumberFormatException e1) {
                                System.out.println(ChatColor.RED + " Invalid format, skipping item!");
                            }
                        }
                    } else if (chance2 == 9) {
                        for (String item : plugin.getConfig().getStringList("RANDOMLOOT.9")) {
                            String[] itemdata = item.split(",", 2);
                            int id, amount;
                            try {
                                id = Integer.parseInt(itemdata[0]);
                                amount = Integer.parseInt(itemdata[1]);
                                ch.getInventory().addItem(new ItemStack(id, amount));

                            } catch (NumberFormatException e1) {
                                System.out.println(ChatColor.RED + " Invalid format, skipping item!");
                            }
                        }
                    } else if (chance2 == 10) {
                        for (String item : plugin.getConfig().getStringList("RANDOMLOOT.10")) {
                            String[] itemdata = item.split(",", 2);
                            int id, amount;
                            try {
                                id = Integer.parseInt(itemdata[0]);
                                amount = Integer.parseInt(itemdata[1]);
                                ch.getInventory().addItem(new ItemStack(id, amount));

                            } catch (NumberFormatException e1) {
                                System.out.println(ChatColor.RED + " Invalid format, skipping item!");
                            }
                        }
                    }
    Code (Text):
    RANDOMLOOT:
      '1':
      - 6,5
      - 2,5
      '2':
      - 5,10
      - 17,20
      '3':
      - 400,5
      - 391,5
      '4':
      - 272,1
      - 273,1
      '5':
      - 276,1
      - 277,1
      '6':
      - 283,1
      - 284,1
      '7':
      - 268,1
      - 269,1
      '8':
      - 264,1
      - 265,5
      '9':
      - 263,32
      - 266,5
      '10':
      - 260,5
      - 432,5
     
  2. Elaborate. Are there any errors thrown? What's wrong? What's not working?
     
  3. the chests do generate but with nothing in it?
     
  4. Bumb need any more information? im really stuck with this?
     
  5. Btw, this could be massively simplified:

    Code (Text):
    starlocation.getBlock().setType(Material.CHEST);
                    Block chest = starlocation.getBlock();
                    Chest ch = (Chest) chest.getState();
                        for (String item : plugin.getConfig().getStringList("RANDOMLOOT." + chance2)) {
                            String[] itemdata = item.split(",", 2);
                            int id, amount;
                            try {
                                id = Integer.parseInt(itemdata[0]);
                                amount = Integer.parseInt(itemdata[1]);
                                ch.getInventory().addItem(new ItemStack(id, amount));

                            } catch (NumberFormatException e1) {
                                System.out.println(ChatColor.RED + " Invalid format, skipping item!");
                            }
                        }
     
  6. Suggestion , this is a basic java use for loop int so you can't be tired copy pasting or rewriting codes and / or use switch case method.

    about adding item the int id , amount has no value.
     
  7. thanks for the help will look into it again right now
     
  8. fixed it thanks for the help.

    i saw in my code that the randomizer was at 100 instead of 10 my bad well either way thanks for the help guys i really appreciate it!