Inventory click and List<Integer> error

Discussion in 'Plugin Development' started by dominikremes, Mar 18, 2017.

Thread Status:
Not open for further replies.
  1. Hello.
    Please look just on BedWars part of the plugin, there is a big part of the plugin with something else (in InventoryListener class).
    If a player click in his own inventory it shows this error:
    Code:
    [17:16:36 ERROR]: Could not pass event InventoryClickEvent to MC_Craft_Menu v10.0
    org.bukkit.event.EventException
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) ~[spigot.jar:git-Spigot-c3e4052-1953f52]
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot.jar:git-Spigot-c3e4052-1953f52]
            at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot.jar:git-Spigot-c3e4052-1953f52]
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [spigot.jar:git-Spigot-c3e4052-1953f52]
            at net.minecraft.server.v1_10_R1.PlayerConnection.a(PlayerConnection.java:1853) [spigot.jar:git-Spigot-c3e4052-1953f52]
            at net.minecraft.server.v1_10_R1.PacketPlayInWindowClick.a(SourceFile:33) [spigot.jar:git-Spigot-c3e4052-1953f52]
            at net.minecraft.server.v1_10_R1.PacketPlayInWindowClick.a(SourceFile:10) [spigot.jar:git-Spigot-c3e4052-1953f52]
            at net.minecraft.server.v1_10_R1.PlayerConnectionUtils$1.run(SourceFile:13) [spigot.jar:git-Spigot-c3e4052-1953f52]
            at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_121]
            at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_121]
            at net.minecraft.server.v1_10_R1.SystemUtils.a(SourceFile:45) [spigot.jar:git-Spigot-c3e4052-1953f52]
            at net.minecraft.server.v1_10_R1.MinecraftServer.D(MinecraftServer.java:733) [spigot.jar:git-Spigot-c3e4052-1953f52]
            at net.minecraft.server.v1_10_R1.DedicatedServer.D(DedicatedServer.java:399) [spigot.jar:git-Spigot-c3e4052-1953f52]
            at net.minecraft.server.v1_10_R1.MinecraftServer.C(MinecraftServer.java:672) [spigot.jar:git-Spigot-c3e4052-1953f52]
            at net.minecraft.server.v1_10_R1.MinecraftServer.run(MinecraftServer.java:571) [spigot.jar:git-Spigot-c3e4052-1953f52]
            at java.lang.Thread.run(Unknown Source) [?:1.8.0_121]
    Caused by: java.lang.IllegalArgumentException: Title cannot be null
            at org.apache.commons.lang.Validate.notNull(Validate.java:192) ~[spigot.jar:git-Spigot-c3e4052-1953f52]
            at org.bukkit.craftbukkit.v1_10_R1.inventory.CraftInventoryCustom$MinecraftInventory.<init>(CraftInventoryCustom.java:59) ~[spigot.jar:git-Spigot-c3e4052-1953f52]
            at org.bukkit.craftbukkit.v1_10_R1.inventory.CraftInventoryCustom.<init>(CraftInventoryCustom.java:33) ~[spigot.jar:git-Spigot-c3e4052-1953f52]
            at org.bukkit.craftbukkit.v1_10_R1.CraftServer.createInventory(CraftServer.java:1536) ~[spigot.jar:git-Spigot-c3e4052-1953f52]
            at server.mccraft.Inventorys.bedwars.BedwarManagerInventorys.<init>(BedwarManagerInventorys.java:20) ~[?:?]
            at server.mccraft.listeners.InventoryListeners.onInventoryClick(InventoryListeners.java:125) ~[?:?]
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_121]
            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_121]
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_121]
            at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_121]
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot.jar:git-Spigot-c3e4052-1953f52]
    Here is the code:
    Code:
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.DyeColor;
    import org.bukkit.Material;
    import org.bukkit.inventory.Inventory;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.meta.ItemMeta;
    
    import server.mccraft.Main;
    
    public class BedwarManagerInventorys {
    
        public Inventory bwInv;
        private ItemStack teams, amount, addAmount, removeAmount;
       
        public BedwarManagerInventorys(int i) {
            String name = Main.getInstance().settings.getBedwarsConfig().getString("Arenas." + i + ".name");
    LINE 20:        bwInv = Bukkit.getServer().createInventory(null, 9, name);
           
            teams = createMat(Material.WOOL, ChatColor.GREEN + "Teams", 1);
            int players = Main.getInstance().settings.getBedwarsConfig().getInt("Arenas." + i + ".playersInTeams");
            amount = createMat(Material.EXP_BOTTLE, "PlayersInTeams", players);
            addAmount = createWool(DyeColor.GREEN, ChatColor.GREEN + "Add Amount");
            removeAmount = createWool(DyeColor.RED, ChatColor.RED + "Remove Amount");
           
            bwInv.setItem(0, teams);
            bwInv.setItem(3, removeAmount);
            bwInv.setItem(4, amount);
            bwInv.setItem(5, addAmount);
           
        }
       
        private ItemStack createMat(Material mat, String name, int amount) {
            ItemStack i = new ItemStack(mat);
            i.setAmount(amount);
            ItemMeta im = i.getItemMeta();
            im.setDisplayName(name);
            im.setLore(null);
            i.setItemMeta(im);
            return i;
        }
       
        @SuppressWarnings("deprecation")
        private ItemStack createWool(DyeColor color, String name) {
            ItemStack i = new ItemStack(Material.WOOL, 1, color.getData());
            ItemMeta im = i.getItemMeta();
            im.setDisplayName(name);
            im.setLore(null);
            i.setItemMeta(im);
            return i;
        }
       
    }
    Code:
    import java.util.Random;
    
    import org.bukkit.ChatColor;
    import org.bukkit.Location;
    import org.bukkit.Material;
    import org.bukkit.block.Block;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.inventory.InventoryClickEvent;
    import org.bukkit.inventory.ItemStack;
    
    import server.mccraft.Main;
    import server.mccraft.Inventorys.ExtrasInventory;
    import server.mccraft.Inventorys.FaqInventory;
    import server.mccraft.Inventorys.MenuInventory;
    import server.mccraft.Inventorys.RangInventory;
    import server.mccraft.Inventorys.SurvivalInventory;
    import server.mccraft.Inventorys.bedwars.BedwarManagerInventorys;
    import server.mccraft.Inventorys.bedwars.BedwarsMainAdminInventory;
    import server.mccraft.Inventorys.bedwars.BedwarsTeamsInventory;
    import server.mccraft.bedwars.BedwarsManager;
    import server.mccraft.coins.Coin;
    
    public class InventoryListeners implements Listener {
       
       
        private BedwarsManager bedwarsManager = new BedwarsManager();
       
        @EventHandler
        public void onInventoryClick(InventoryClickEvent e) {
            Player p = (Player) e.getWhoClicked();
            if (e.getInventory().getName().equals(new MenuInventory().menuinv.getName())) {
                if (e.getCurrentItem().getItemMeta() == null) return;
                if (e.getCurrentItem().getItemMeta().getDisplayName().contains(ChatColor.GOLD + "Extras")) {
                e.setCancelled(true);
                e.getWhoClicked().closeInventory();
               
                new ExtrasInventory().extraInvOpen(p);
               
            } else if (e.getCurrentItem().getItemMeta().getDisplayName().contains(ChatColor.YELLOW + "Daily Reward")) {
               
            e.setCancelled(true);
            e.getWhoClicked().closeInventory();
           
            if (!Main.getInstance().rmanager.getAllowReward(p)) {
                long current = System.currentTimeMillis();
                long release = Main.getInstance().rmanager.getTime(p);
                long millis = release - current;
                p.sendMessage(Main.getInstance().prefix + ChatColor.RED + "Ma már megkaptad a jutalmadat!");
                p.sendMessage(Main.getInstance().prefix + Main.getInstance().rmanager.getRemainingTime(millis));
                return;
            } else {
    
            String[] randomreward1 = new String[] { "coin54", "coin2" , "coin50" , "coin4" , "coin10", "coin100",  "coin30", "coin24", "coin8", "diamond"};
            Random r = new Random();
           
                String material = null;
               
                    material = randomreward1[r.nextInt(randomreward1.length)];
               
                if (material == "diamond") {
                    p.sendMessage(Main.getInstance().prefix + ChatColor.GREEN + "" + ChatColor.BOLD + "1 gyémántot nyertél!");
                    ItemStack diamond = new ItemStack(Material.DIAMOND, 1);
                    p.getInventory().addItem(diamond);
                } else if (material == "coin54") {
                    new Coin().addCoin(p, 54, true);
                } else if (material == "coin2") {
                    new Coin().addCoin(p, 2, true);
                } else if (material == "coin50") {
                    new Coin().addCoin(p, 50, true);
                } else if (material == "coin4") {
                    new Coin().addCoin(p, 4, true);
                } else if (material == "coin10") {
                    new Coin().addCoin(p, 10, true);
                } else if (material == "coin100") {
                    new Coin().addCoin(p, 100, true);
                } else if (material == "coin30") {
                    new Coin().addCoin(p, 30, true);
                } else if (material == "coin24") {
                    new Coin().addCoin(p, 24,true);
                } else if (material == "coin8") {
                    new Coin().addCoin(p, 8, true);
                }
                Main.getInstance().rmanager.setReward(p);
                }
           
            }  else if (e.getCurrentItem().getItemMeta().getDisplayName().contains(ChatColor.GREEN + "Survival")) {
                    e.setCancelled(true);
                    p.closeInventory();
                    new SurvivalInventory().openSurvInv(p);
            }   else if (e.getCurrentItem().getItemMeta().getDisplayName().contains(ChatColor.GOLD + "Shop")) {
                    e.setCancelled(true);
                    p.closeInventory();
                    p.sendMessage(ChatColor.RED + "Készül!");
                } else if (e.getCurrentItem().getItemMeta().getDisplayName().contains(ChatColor.RED + "Pets")) {
                    e.setCancelled(true);
                    p.closeInventory();
                    p.sendMessage(ChatColor.RED + "Készül!");
                }  else if (e.getCurrentItem().getItemMeta().getDisplayName().contains(ChatColor.RED + "KillStreak")) {
                    e.setCancelled(true);
                    p.closeInventory();
                    p.sendMessage(ChatColor.RED + "Készül!");
                } else if (e.getCurrentItem().getItemMeta().getDisplayName().contains(ChatColor.RED + "FAQ")) {
                    e.setCancelled(true);
                    p.closeInventory();
                    new FaqInventory().openInv(p);
                }
            } else if (e.getInventory().getName().equals(new FaqInventory().faqInv.getName())) {
                if (e.getCurrentItem().getItemMeta() == null) return;
                if (e.getCurrentItem().getItemMeta().getDisplayName().contains(ChatColor.RED + "Rang")) {
                e.setCancelled(true);
                e.getWhoClicked().closeInventory();       
                new RangInventory(p);
                }   
            } else if (e.getInventory().getName().equals(new BedwarsMainAdminInventory().bwInv.getName())) {
                if (e.getCurrentItem().getItemMeta() == null) return;
                    e.setCancelled(true);
                    e.getWhoClicked().closeInventory();
                    int i = Main.getInstance().settings.getBedwarsConfig().getInt("Arenanames." + e.getCurrentItem().getItemMeta().getDisplayName());
                p.openInventory(new BedwarManagerInventorys(i).bwInv);
            }
    LINE 125:         if (e.getInventory().getName().contains(new BedwarManagerInventorys(Main.getInstance().settings.getBedwarsConfig().getInt("Arenanames." + e.getClickedInventory().getName())).bwInv.getName())) {
                if (e.getCurrentItem().getItemMeta() == null) return;
                int i = Main.getInstance().settings.getBedwarsConfig().getInt("Arenanames." + e.getClickedInventory().getName());
                e.setCancelled(true);
                if (e.getCurrentItem().getItemMeta().getDisplayName().contains(ChatColor.GREEN + "Teams")) {
                    p.closeInventory();
                    p.openInventory(new BedwarsTeamsInventory(i).bwInv);
                } else if (e.getCurrentItem().getItemMeta().getDisplayName().contains(ChatColor.GREEN + "Add Amount")) {
                    bedwarsManager.addPlayerAmount(i);
                    p.closeInventory();
                    p.openInventory(new BedwarManagerInventorys(i).bwInv);
                }  else if (e.getCurrentItem().getItemMeta().getDisplayName().contains(ChatColor.RED + "Remove Amount")) {
                    bedwarsManager.removePlayerAmount(i);
                    p.closeInventory();
                    p.openInventory(new BedwarManagerInventorys(i).bwInv);
                }  else if (e.getCurrentItem().getItemMeta().getDisplayName().contains(ChatColor.BLUE + "Blue")) {
                    if (bedwarsManager.getBlueTeam(i) == true) {
                        bedwarsManager.removeBlueTeam(i);
                        bedwarsManager.removeTeam(i);
                        p.closeInventory();
                        p.openInventory(new BedwarsTeamsInventory(i).bwInv);
                    } else {
                        bedwarsManager.addBlueTeam(i);
    LINE 170:                    bedwarsManager.addTeam(i);
                        p.closeInventory();
                        p.openInventory(new BedwarsTeamsInventory(i).bwInv);
                    }
                }  else if (e.getCurrentItem().getItemMeta().getDisplayName().contains(ChatColor.BLUE + "Set Bed")) {
                    p.closeInventory();
                    Location l = new Location(p.getLocation().getWorld(),p.getLocation().getX(), p.getLocation().getY(), p.getLocation().getZ());
                    Block b = l.getBlock();
                    if (b.getType() == Material.BED_BLOCK) {
                        bedwarsManager.setBlueBed(l, i);
                        p.sendMessage(Main.getInstance().prefix + ChatColor.GREEN + "Az ágy sikeresen beálítva");
                    } else {
                        p.sendMessage(Main.getInstance().prefix + ChatColor.RED + "Ahhoz hogy beálítsd az ágyat rajta kell álnod");
                    }
                } else if (e.getCurrentItem().getItemMeta().getDisplayName().contains(ChatColor.RED + "Red")) {
                    if (bedwarsManager.getRedTeam(i) == true) {
                        bedwarsManager.removeRedTeam(i);
                        bedwarsManager.removeTeam(i);
                        p.closeInventory();
                        p.openInventory(new BedwarsTeamsInventory(i).bwInv);
                    } else {
                        bedwarsManager.addRedTeam(i);
                        bedwarsManager.addTeam(i);
                        p.closeInventory();
                        p.openInventory(new BedwarsTeamsInventory(i).bwInv);
                    }
                }
            }
        }
    }
    And I think you will need this too:
    Code:
    import java.util.List;
    
    import org.bukkit.Location;
    import org.bukkit.entity.Player;
    
    import server.mccraft.Main;
    import server.mccraft.Inventorys.bedwars.BedwarsMainAdminInventory;
    
    public class BedwarsManager {
    
        private List<Integer> setTeams;
        private List<Integer> setBeds;
        private List<Integer> setSpawns;
       
        public BedwarsManager() {
            setTeams = Main.getInstance().settings.getBedwarsConfig().getIntegerList("errors.setTeams");
            setBeds = Main.getInstance().settings.getBedwarsConfig().getIntegerList("errors.setBeds");
            setSpawns = Main.getInstance().settings.getBedwarsConfig().getIntegerList("errors.setSpawns");
        }
       
        public void createArena(String name) {
            Main.getInstance().settings.getBedwarsConfig().set("ArenaAmount", Main.getInstance().settings.getBedwarsConfig().getInt("ArenaAmount") + 1);
            Main.getInstance().settings.saveBedwarsConfig();
            int i = Main.getInstance().settings.getBedwarsConfig().getInt("ArenaAmount");
            Main.getInstance().settings.getBedwarsConfig().set("Arenas." + i + ".name", name);
            Main.getInstance().settings.getBedwarsConfig().set("Arenas." + i + ".boolean", false);
            Main.getInstance().settings.getBedwarsConfig().set("Arenas." + i + ".playersInTeams", 1);
            Main.getInstance().settings.getBedwarsConfig().set("Arenas." + i + ".teams.blue.bool", false);
            Main.getInstance().settings.getBedwarsConfig().set("Arenas." + i + ".teams.green.bool", false);
            Main.getInstance().settings.getBedwarsConfig().set("Arenas." + i + ".teams.red.bool", false);
            Main.getInstance().settings.getBedwarsConfig().set("Arenas." + i + ".teams.yellow.bool", false);
            Main.getInstance().settings.getBedwarsConfig().set("Arenas." + i + ".teams.orange.bool", false);
            Main.getInstance().settings.getBedwarsConfig().set("Arenas." + i + ".teams.white.bool", false);
            Main.getInstance().settings.getBedwarsConfig().set("Arenas." + i + ".teams.amount", 0);
            setTeams.add(i);
            setBeds.add(i);
            setSpawns.add(i);
            Main.getInstance().settings.getBedwarsConfig().set("errors.setTeams", setTeams);
            Main.getInstance().settings.getBedwarsConfig().set("errors.setBeds", setBeds);
            Main.getInstance().settings.getBedwarsConfig().set("errors.setSpawns", setSpawns);
            Main.getInstance().settings.getBedwarsConfig().set("Arenanames." + name, i);
            Main.getInstance().settings.saveBedwarsConfig();
            if (!setTeams.contains(0)) {
                setTeams.add(0);
            }
        }
    
        public void openArenaManager(Player p) {
            p.openInventory(new BedwarsMainAdminInventory().bwInv);
        }
       
        public void addTeam(int i) {
            Main.getInstance().settings.getBedwarsConfig().set("Arenas." + i + ".teams.amount", Main.getInstance().settings.getBedwarsConfig().getInt("Arenas." + i + ".teams.amount") + 1);
            Main.getInstance().settings.saveBedwarsConfig();
           
            if (getTeamAmount(i) > 1) {
    LINE 59:            removeSetTeams(i);
            }
        }
       
        public void removeTeam(int i) {
            Main.getInstance().settings.getBedwarsConfig().set("Arenas." + i + ".teams.amount", Main.getInstance().settings.getBedwarsConfig().getInt("Arenas." + i + ".teams.amount") - 1);
            Main.getInstance().settings.saveBedwarsConfig();
           
            if (getTeamAmount(i) < 2) {
                addSetTeams(i);
            }
        }
       
        public int getTeamAmount(int i) {
            return Main.getInstance().settings.getBedwarsConfig().getInt("Arenas." + i + ".teams.amount");
        }
       
        public void removeSetTeams(int i) {
    LINE 77:        setTeams.remove(i);
            Main.getInstance().settings.getBedwarsConfig().getIntegerList("errors.setTeams").remove(i);
            Main.getInstance().settings.saveBedwarsConfig();
        }
       
        public void addSetTeams(int i) {
            setTeams.add(i);
            Main.getInstance().settings.getBedwarsConfig().getIntegerList("errors.setTeams").add(i);
            Main.getInstance().settings.saveBedwarsConfig();
        }
       
        public void removeSetBeds(int i) {
            setBeds.remove(i);
            Main.getInstance().settings.getBedwarsConfig().getIntegerList("errors.setBeds").remove(i);
            Main.getInstance().settings.saveBedwarsConfig();
        }
       
        public void addSetBeds(int i) {
            setBeds.add(i);
            Main.getInstance().settings.getBedwarsConfig().getIntegerList("errors.setBeds").add(i);
            Main.getInstance().settings.saveBedwarsConfig();
        }
       
        public void removeSetSpawn(int i) {
            setSpawns.remove(i);
            Main.getInstance().settings.getBedwarsConfig().getIntegerList("errors.setSpawns").remove(i);
            Main.getInstance().settings.saveBedwarsConfig();
        }
       
        public void addSetSpawn(int i) {
            setSpawns.add(i);
            Main.getInstance().settings.getBedwarsConfig().getIntegerList("errors.setSpawns").add(i);
            Main.getInstance().settings.saveBedwarsConfig();
        }
       
        public void addPlayerAmount(int i) {
            Main.getInstance().settings.getBedwarsConfig().set("Arenas." + i + ".playersInTeams", Main.getInstance().settings.getBedwarsConfig().getInt("Arenas." + i + ".playersInTeams", 0) + 1);
            Main.getInstance().settings.saveBedwarsConfig();
        }
       
        public void removePlayerAmount(int i) {
            Main.getInstance().settings.getBedwarsConfig().set("Arenas." + i + ".playersInTeams", Main.getInstance().settings.getBedwarsConfig().getInt("Arenas." + i + ".playersInTeams", 0) - 1);
            Main.getInstance().settings.saveBedwarsConfig();
        }
        public String getInvName(Player p) {
            String s = p.getInventory().getName();
            return s;
        }
       
        public void addBlueTeam(int i) {
            Main.getInstance().settings.getBedwarsConfig().set("Arenas." + i + ".teams.blue.bool", true);
            Main.getInstance().settings.saveBedwarsConfig();
        }
       
        public void removeBlueTeam(int i) {
            Main.getInstance().settings.getBedwarsConfig().set("Arenas." + i + ".teams.blue.bool", false);
            Main.getInstance().settings.saveBedwarsConfig();
        }
    
        public void addGreenTeam(int i) {
            Main.getInstance().settings.getBedwarsConfig().set("Arenas." + i + ".teams.green.bool", true);
            Main.getInstance().settings.saveBedwarsConfig();
        }
    
        public void removeGreenTeam(int i) {
            Main.getInstance().settings.getBedwarsConfig().set("Arenas." + i + ".teams.green.bool", false);
            Main.getInstance().settings.saveBedwarsConfig();
        }
    
        public void addRedTeam(int i) {
            Main.getInstance().settings.getBedwarsConfig().set("Arenas." + i + ".teams.red.bool", true);
            Main.getInstance().settings.saveBedwarsConfig();
        }
       
        public void removeRedTeam(int i) {
            Main.getInstance().settings.getBedwarsConfig().set("Arenas." + i + ".teams.white.bool", false);
            Main.getInstance().settings.saveBedwarsConfig();
        }
       
        public void addOrangeTeam(int i) {
            Main.getInstance().settings.getBedwarsConfig().set("Arenas." + i + ".teams.orange.bool", true);
            Main.getInstance().settings.saveBedwarsConfig();
        }
       
        public void removeOrangeTeam(int i) {
            Main.getInstance().settings.getBedwarsConfig().set("Arenas." + i + ".teams.white.bool", false);
            Main.getInstance().settings.saveBedwarsConfig();
        }
       
        public void addWhiteTeam(int i) {
            Main.getInstance().settings.getBedwarsConfig().set("Arenas." + i + ".teams.white.bool", true);
            Main.getInstance().settings.saveBedwarsConfig();
        }
       
        public void removeWhiteTeam(int i) {
            Main.getInstance().settings.getBedwarsConfig().set("Arenas." + i + ".teams.white.bool", false);
            Main.getInstance().settings.saveBedwarsConfig();
        }
       
        public boolean getBlueTeam(int i) {
            return Main.getInstance().settings.getBedwarsConfig().getBoolean("Arenas." + i + ".teams.blue.bool");
        }
       
        public boolean getGreenTeam(int i) {
            return Main.getInstance().settings.getBedwarsConfig().getBoolean("Arenas." + i + ".teams.green.bool");
        }
       
        public boolean getRedTeam(int i) {
            return Main.getInstance().settings.getBedwarsConfig().getBoolean("Arenas." + i + ".teams.red.bool");
        }
       
        public boolean getYellowTeam(int i) {
            return Main.getInstance().settings.getBedwarsConfig().getBoolean("Arenas." + i + ".teams.yellow.bool");
        }
       
        public boolean getWhiteTeam(int i) {
            return Main.getInstance().settings.getBedwarsConfig().getBoolean("Arenas." + i + ".teams.blue.bool");
        }
       
        public boolean getOrangeTeam(int i) {
            return Main.getInstance().settings.getBedwarsConfig().getBoolean("Arenas." + i + ".teams.orange.bool");
        }
       
        public void saveMap(Location l1, Location l2, int i) {
           
        }
       
        public void loadMap(int i) {
           
        }
       
        public void setBlueBed(Location l, int i) {
            Main.getInstance().settings.getBedwarsConfig().set("Arenas." + i + ".teams.blue.bed", l);
            Main.getInstance().settings.saveBedwarsConfig();
        }
    }
    And 1 more error when removeTeam(int i) is called:
    Code:
    [17:45:11 ERROR]: Could not pass event InventoryClickEvent to MC_Craft_Menu v10.0
    org.bukkit.event.EventException
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) ~[spigot.jar:git-Spigot-c3e4052-1953f52]
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot.jar:git-Spigot-c3e4052-1953f52]
            at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot.jar:git-Spigot-c3e4052-1953f52]
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [spigot.jar:git-Spigot-c3e4052-1953f52]
            at net.minecraft.server.v1_10_R1.PlayerConnection.a(PlayerConnection.java:1853) [spigot.jar:git-Spigot-c3e4052-1953f52]
            at net.minecraft.server.v1_10_R1.PacketPlayInWindowClick.a(SourceFile:33) [spigot.jar:git-Spigot-c3e4052-1953f52]
            at net.minecraft.server.v1_10_R1.PacketPlayInWindowClick.a(SourceFile:10) [spigot.jar:git-Spigot-c3e4052-1953f52]
            at net.minecraft.server.v1_10_R1.PlayerConnectionUtils$1.run(SourceFile:13) [spigot.jar:git-Spigot-c3e4052-1953f52]
            at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_121]
            at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_121]
            at net.minecraft.server.v1_10_R1.SystemUtils.a(SourceFile:45) [spigot.jar:git-Spigot-c3e4052-1953f52]
            at net.minecraft.server.v1_10_R1.MinecraftServer.D(MinecraftServer.java:733) [spigot.jar:git-Spigot-c3e4052-1953f52]
            at net.minecraft.server.v1_10_R1.DedicatedServer.D(DedicatedServer.java:399) [spigot.jar:git-Spigot-c3e4052-1953f52]
            at net.minecraft.server.v1_10_R1.MinecraftServer.C(MinecraftServer.java:672) [spigot.jar:git-Spigot-c3e4052-1953f52]
            at net.minecraft.server.v1_10_R1.MinecraftServer.run(MinecraftServer.java:571) [spigot.jar:git-Spigot-c3e4052-1953f52]
            at java.lang.Thread.run(Unknown Source) [?:1.8.0_121]
    Caused by: java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
            at java.util.ArrayList.rangeCheck(Unknown Source) ~[?:1.8.0_121]
            at java.util.ArrayList.remove(Unknown Source) ~[?:1.8.0_121]
            at server.mccraft.bedwars.BedwarsManager.removeSetTeams(BedwarsManager.java:77) ~[?:?]
            at server.mccraft.bedwars.BedwarsManager.addTeam(BedwarsManager.java:59) ~[?:?]
            at server.mccraft.listeners.InventoryListeners.onInventoryClick(InventoryListeners.java:170) ~[?:?]
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_121]
            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_121]
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_121]
            at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_121]
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot.jar:git-Spigot-c3e4052-1953f52]
            ... 15 more
     
  2. Offline

    Irantwomiles

    Some how the name you are giving your inventory is null. Can you show me where you are setting the names cause that is a lot to read.
     
  3. bwInv = Bukkit.getServer().createInventory(null, 9, name);
    name is null.
     
  4. @Irantwomiles @bwfcwalshy
    Ok but why? The name is in the config where it reads from
    Here is what is saved in the config:
    Code:
    ArenaAmount: 1
    Arenas:
      '1':
        name: testing
        boolean: false
        playersInTeams: 1
        teams:
          blue:
            bool: true
            bed:
              ==: org.bukkit.Location
              world: Annihilation
              x: 272.2047734755306
              y: 4.5625
              z: -1432.6592661090176
              pitch: 0.0
              yaw: 0.0
          green:
            bool: false
          red:
            bool: true
          yellow:
            bool: false
          orange:
            bool: false
          white:
            bool: false
          amount: 1
    errors:
      setTeams:
      - 1
      setBeds:
      - 1
      setSpawns:
      - 1
    Arenanames:
      testing: 1
    
     
  5. Offline

    Caderape2

    @dominikremes

    Theres a lot of code, but i guess the error come from here
    Try to debug your code and see the value of i
     
  6. @Caderape2
    it is allways the number of the arena. but I found something interesting in BedwarsManager class when I debuged it:
    Code:
        public void removeSetTeams(int i) {
            setTeams = Main.getInstance().settings.getBedwarsConfig().getIntegerList("errors.setTeams");
            Bukkit.getServer().broadcastMessage(setTeams.toString());
            Bukkit.getServer().broadcastMessage("" + i);
            setTeams.remove(i);
            Bukkit.getServer().broadcastMessage("" + i);
            Main.getInstance().settings.getBedwarsConfig().set("errors.setTeams", setTeams);
            Main.getInstance().settings.saveBedwarsConfig();
        }
    I tryed it with arena number 1. First time it sent [1] (Bukkit.getServer().broadcastMessage(setTeams.toString()); ), then 1 (Bukkit.getServer().broadcastMessage("" + i); ) and then the error so it can not remove number 1 from the list. If there were 2 arenas, I tried with arena number [1, 2],2, 2, error and when with 1 then [1, 2], 1, 1 but it removed from the config nummber 2 not number 1.
    I try to change it from IntegerList to StringList maby it will help

    Ok. It worked, now we must to fix only the error on inventory click when it isnt any of the inventorys registred in inventoryListener class

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Mar 18, 2017
  7. Offline

    Irantwomiles

    You need to do a lot of nullpointer checks to make sure it won't throw a error.
     
  8. Offline

    Irantwomiles

    Inside your event. Just check if title/item clicked/ etc is null
     
  9. @Irantwomiles
    That is the next line and it is not working
    Code:
    if (e.getCurrentItem().getItemMeta() == null) return;
    I tryed it without .getItemMeta() and it is still error.
     
Thread Status:
Not open for further replies.

Share This Page