Null pointer exception inventory click event?

Discussion in 'Plugin Help/Development/Requests' started by ESSHD, Apr 28, 2015.

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

    ESSHD

    Hi, I'm getting a null pointer error in my plugin and I have no idea what is wrong.
    Code:
    Code:
    package com.shockmc.kitpvp.listeners;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.GameMode;
    import org.bukkit.Location;
    import org.bukkit.Material;
    import org.bukkit.World;
    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 org.bukkit.inventory.PlayerInventory;
    
    import com.connorlinfoot.titleapi.TitleAPI;
    import com.shockmc.kitpvp.Kitpvp;
    import com.shockmc.kitpvp.MessageManager;
    
    public class InventoryInteract implements Listener {
       
        private Kitpvp main;
       
        @EventHandler
        public void onPlayerInteract(InventoryClickEvent e) {
            if (e.getInventory().getName().equalsIgnoreCase("Free kits")) {
                if (!(e.getWhoClicked() instanceof Player)) {
                    return;
                }
                if (e.getCurrentItem() == null) {
                    return;
                }
                if (e.getCurrentItem().getItemMeta() == null) {
                    return;
                }
                Player p = (Player) e.getWhoClicked();
                e.setCancelled(true);
                if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Archer")) {
                    p.getInventory().clear();
                    this.giveArcherKit(p);
                    TitleAPI.sendTitle(p,10,50,10,ChatColor.GREEN + "Archer",ChatColor.RED + "Archer kit selected");
                    p.closeInventory();
                }
                if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Pyro")) {
                    p.getInventory().clear();
                    this.givePyroKit(p);
                    TitleAPI.sendTitle(p,10,50,10,ChatColor.GREEN + "Pyro",ChatColor.RED + "Pyro kit selected");
                    p.closeInventory();
                }
                if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Snitch")) {
                    p.getInventory().clear();
                    this.giveSnitchKit(p);
                    TitleAPI.sendTitle(p,10,50,10,ChatColor.GREEN + "Snitch",ChatColor.RED + "Snitch kit selected");
                    p.closeInventory();
                }
                if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Snowman")) {
                    p.getInventory().clear();
                    this.giveSnowmanKit(p);
                    TitleAPI.sendTitle(p,10,50,10,ChatColor.GREEN + "Snowman",ChatColor.RED + "Snowman kit selected");
                    p.closeInventory();
                }
                if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Swordsman")) {
                    p.getInventory().clear();
                    this.giveSwordsmanKit(p);
                    TitleAPI.sendTitle(p,10,50,10,ChatColor.GREEN + "Swordsman",ChatColor.RED + "Swordsman kit selected");
                    p.closeInventory();
                }
            }else{
                if (e.getInventory().getName().equalsIgnoreCase("Spectate")) {
                    if (!(e.getWhoClicked() instanceof Player)) {
                        return;
                    }
                    if (e.getCurrentItem() == null) {
                        return;
                    }
                    if (e.getCurrentItem().getItemMeta() == null) {
                        return;
                    }
                    Player p = (Player) e.getWhoClicked();
                    e.setCancelled(true);
                    Player target = Bukkit.getPlayer(e.getCurrentItem().getItemMeta().getDisplayName());
                    if (target == null) {
                        MessageManager.sendBad(p, "Internal error: Unable to find player, error report sent.");
                        Bukkit.getLogger().severe("Internal error: Could not find player in 'SpectateGUI'");
                        return;
                    }
                    p.teleport(target);
                    p.setGameMode(GameMode.SPECTATOR);
                }else{
                    if (e.getInventory().getName().equalsIgnoreCase("Arenas")) {
                        if (!(e.getWhoClicked() instanceof Player)) {
                            return;
                        }
                        if (e.getCurrentItem() == null) {
                            return;
                        }
                        if (e.getCurrentItem().getItemMeta() == null) {
                            return;
                        }
                        Player p = (Player) e.getWhoClicked();
                        e.setCancelled(true);
                        if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Coal")) {
                            if (main.getConfig().getConfigurationSection("coal") == null) {
                                MessageManager.sendBad(p, "Coal arena not set yet.");
                                return;
                            }
                            World w = Bukkit.getServer().getWorld(main.getConfig().getString("coal.world"));
                            double x = main.getConfig().getDouble("coal.x");
                            double y = main.getConfig().getDouble("coal.y");
                            double z = main.getConfig().getDouble("coal.z");
                            p.teleport(new Location(w, x, y, z));
                            TitleAPI.sendTitle(p,10,50,10,ChatColor.GREEN + "Coal arena",ChatColor.RED + "Now in coal arena.");
                            p.closeInventory();
                        }
                        if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Iron")) {
                            if (main.getConfig().getConfigurationSection("iron") == null) {
                                MessageManager.sendBad(p, "Iron arena not set yet.");
                                return;
                            }
                            World w = Bukkit.getServer().getWorld(main.getConfig().getString("iron.world"));
                            double x = main.getConfig().getDouble("iron.x");
                            double y = main.getConfig().getDouble("iron.y");
                            double z = main.getConfig().getDouble("iron.z");
                            p.teleport(new Location(w, x, y, z));
                            TitleAPI.sendTitle(p,10,50,10,ChatColor.GREEN + "Iron arena",ChatColor.RED + "Now in iron arena.");
                            p.closeInventory();
                        }
                        if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Diamond")) {
                            if (main.getConfig().getConfigurationSection("diamond") == null) {
                                MessageManager.sendBad(p, "Diamond arena not set yet.");
                                return;
                            }
                            World w = Bukkit.getServer().getWorld(main.getConfig().getString("diamond.world"));
                            double x = main.getConfig().getDouble("diamond.x");
                            double y = main.getConfig().getDouble("diamond.y");
                            double z = main.getConfig().getDouble("diamond.z");
                            p.teleport(new Location(w, x, y, z));
                            TitleAPI.sendTitle(p,10,50,10,ChatColor.GREEN + "Diamond arena",ChatColor.RED + "Now in diamond arena.");
                            p.closeInventory();
                        }
                        if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Emerald")) {
                            if (main.getConfig().getConfigurationSection("emerald") == null) {
                                MessageManager.sendBad(p, "Emerald arena not set yet.");
                                return;
                            }
                            World w = Bukkit.getServer().getWorld(main.getConfig().getString("emerald.world"));
                            double x = main.getConfig().getDouble("emerald.x");
                            double y = main.getConfig().getDouble("emerald.y");
                            double z = main.getConfig().getDouble("emerald.z");
                            p.teleport(new Location(w, x, y, z));
                            TitleAPI.sendTitle(p,10,50,10,ChatColor.GREEN + "Emerald arena",ChatColor.RED + "Now in emerald arena.");
                            p.closeInventory();
                        }
                        if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Pro")) {
                            if (main.getConfig().getConfigurationSection("pro") == null) {
                                MessageManager.sendBad(p, "Pro arena not set yet.");
                                return;
                            }
                            World w = Bukkit.getServer().getWorld(main.getConfig().getString("pro.world"));
                            double x = main.getConfig().getDouble("pro.x");
                            double y = main.getConfig().getDouble("pro.y");
                            double z = main.getConfig().getDouble("pro.z");
                            p.teleport(new Location(w, x, y, z));
                            TitleAPI.sendTitle(p,10,50,10,ChatColor.GREEN + "Pro arena",ChatColor.RED + "Now in pro arena.");
                            p.closeInventory();
                        }
                    }
                }
            }
           
        }
       
        public void giveArcherKit(Player p) {
            PlayerInventory pi = p.getInventory();
            pi.setBoots(new ItemStack(Material.LEATHER_BOOTS));
            pi.setLeggings(new ItemStack(Material.LEATHER_LEGGINGS));
            pi.setChestplate(new ItemStack(Material.LEATHER_CHESTPLATE));
            pi.setHelmet(new ItemStack(Material.LEATHER_HELMET));
            pi.addItem(new ItemStack(Material.BOW));
            pi.addItem(new ItemStack(Material.ARROW, 64));
            for (int i = 0; i < p.getInventory().getSize(); i++) {
                if (p.getInventory().getItem(i) == null) {
                    p.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP));
                }
            }
        }
       
        public void givePyroKit(Player p) {
            PlayerInventory pi = p.getInventory();
            pi.setBoots(new ItemStack(Material.LEATHER_BOOTS));
            pi.setLeggings(new ItemStack(Material.LEATHER_LEGGINGS));
            pi.setChestplate(new ItemStack(Material.LEATHER_CHESTPLATE));
            pi.setHelmet(new ItemStack(Material.LEATHER_HELMET));
            pi.addItem(new ItemStack(Material.WOOD_SWORD));
            pi.addItem(new ItemStack(Material.FLINT_AND_STEEL));
            pi.addItem(new ItemStack(Material.FIREBALL));
            for (int i = 0; i < p.getInventory().getSize(); i++) {
                if (p.getInventory().getItem(i) == null) {
                    p.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP));
                }
            }
        }
       
        public void giveSnitchKit(Player p) {
            PlayerInventory pi = p.getInventory();
            pi.setBoots(new ItemStack(Material.GOLD_BOOTS));
            pi.setLeggings(new ItemStack(Material.GOLD_LEGGINGS));
            pi.setChestplate(new ItemStack(Material.GOLD_CHESTPLATE));
            pi.setHelmet(new ItemStack(Material.GOLD_HELMET));
            pi.addItem(new ItemStack(Material.GOLD_SWORD));
            pi.addItem(new ItemStack(Material.TNT, 5));
            for (int i = 0; i < p.getInventory().getSize(); i++) {
                if (p.getInventory().getItem(i) == null) {
                    p.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP));
                }
            }
        }
       
        public void giveSnowmanKit(Player p) {
            PlayerInventory pi = p.getInventory();
            pi.setBoots(new ItemStack(Material.CHAINMAIL_BOOTS));
            pi.setLeggings(new ItemStack(Material.CHAINMAIL_LEGGINGS));
            pi.setChestplate(new ItemStack(Material.CHAINMAIL_CHESTPLATE));
            pi.setHelmet(new ItemStack(Material.CHAINMAIL_HELMET));
            pi.addItem(new ItemStack(Material.WOOD_SWORD));
            pi.addItem(new ItemStack(Material.SNOW_BALL, 10));
            pi.addItem(new ItemStack(Material.FISHING_ROD, 1));
            for (int i = 0; i < p.getInventory().getSize(); i++) {
                if (p.getInventory().getItem(i) == null) {
                    p.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP));
                }
            }
        }
       
        public void giveSwordsmanKit(Player p) {
            PlayerInventory pi = p.getInventory();
            pi.setBoots(new ItemStack(Material.DIAMOND_BOOTS));
            pi.setLeggings(new ItemStack(Material.DIAMOND_LEGGINGS));
            pi.setChestplate(new ItemStack(Material.DIAMOND_CHESTPLATE));
            pi.setHelmet(new ItemStack(Material.DIAMOND_HELMET));
            pi.addItem(new ItemStack(Material.IRON_SWORD));
            pi.addItem(new ItemStack(Material.GOLDEN_APPLE, 2));
            for (int i = 0; i < p.getInventory().getSize(); i++) {
                if (p.getInventory().getItem(i) == null) {
                    p.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP));
                }
            }
        }
    }
    
    Arena GUI class:
    Code:
    package com.shockmc.kitpvp.gui;
    
    import java.util.Arrays;
    import java.util.List;
    
    import net.md_5.bungee.api.ChatColor;
    
    import org.bukkit.Bukkit;
    import org.bukkit.Material;
    import org.bukkit.entity.Player;
    import org.bukkit.event.Listener;
    import org.bukkit.inventory.Inventory;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.meta.ItemMeta;
    import org.bukkit.plugin.Plugin;
    
    public class ArenaGUI implements Listener {
       
        private static Inventory inv;
       
        private ItemStack arena1,arena2,arena3,arena4,arena5;
       
        public ArenaGUI(Plugin p) {
            inv = Bukkit.getServer().createInventory(null, 36, "Arenas");
           
            arena1 = this.addItem(new ItemStack(Material.COAL), ChatColor.GOLD + "Coal", Arrays.asList(ChatColor.YELLOW + "Click me to join"));
            arena2 = this.addItem(new ItemStack(Material.IRON_INGOT), ChatColor.GOLD + "Iron", Arrays.asList(ChatColor.YELLOW + "Click me to join"));
            arena3 = this.addItem(new ItemStack(Material.DIAMOND), ChatColor.GOLD + "Diamond", Arrays.asList(ChatColor.YELLOW + "Click me to join"));
            arena4 = this.addItem(new ItemStack(Material.EMERALD), ChatColor.GOLD + "Emerald", Arrays.asList(ChatColor.YELLOW + "Click me to join"));
            arena5 = this.addItem(new ItemStack(Material.BEDROCK), ChatColor.GOLD + "Pro", Arrays.asList(ChatColor.YELLOW + "Click me to join"));
           
            //[][1][][1][][1][][1][]
            //[][1][][1][][1][][1][]
           
            inv.setItem(10, arena1);
            inv.setItem(12, arena2);
            inv.setItem(14, arena3);
            inv.setItem(16, arena4);
            inv.setItem(22, arena5);
           
            ItemStack filler = new ItemStack(Material.STAINED_GLASS_PANE,1,(short)11);
            ItemMeta fmeta = filler.getItemMeta();
            fmeta.setDisplayName("");
            filler.setItemMeta(fmeta);
            for (int i = 0; i < inv.getSize(); i++) {
                if (inv.getItem(i) == null) {
                    inv.setItem(i, filler);
                }
            }
           
            Bukkit.getServer().getPluginManager().registerEvents(this, p);
        }
       
        public ItemStack addItem(ItemStack item, String name, List<String> lore) {
            ItemStack i = item;
            ItemMeta im = i.getItemMeta();
            im.setDisplayName(name);
            im.setLore(lore);
            i.setItemMeta(im);
            return i;
        }
       
        public static void openArenaGUI(Player p) {
            p.openInventory(inv);
        }
    
    }
    
    Main class:
    Code:
    package com.shockmc.kitpvp;
    
    import net.md_5.bungee.api.ChatColor;
    
    import org.bukkit.Bukkit;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.event.Listener;
    import org.bukkit.plugin.java.JavaPlugin;
    
    import com.shockmc.kitpvp.currency.MySQL;
    import com.shockmc.kitpvp.gui.ArenaGUI;
    import com.shockmc.kitpvp.gui.FreeKitGUI;
    import com.shockmc.kitpvp.listeners.DeathEvent;
    import com.shockmc.kitpvp.listeners.InteractEvent;
    import com.shockmc.kitpvp.listeners.InventoryInteract;
    import com.shockmc.kitpvp.listeners.PlayerJoin;
    import com.shockmc.kitpvp.listeners.RespawnEvent;
    import com.shockmc.kitpvp.listeners.SaturationEvent;
    
    public class Kitpvp extends JavaPlugin implements Listener {
       
        private static MySQL mysql;
        private FreeKitGUI freekits;
        private ArenaGUI arenas;
       
        public void onEnable() {
            setMysql(new MySQL("localhost", "root", "", "razedhub"));
           
            getConfig().options().copyDefaults(true);
            saveConfig();
           
            freekits = new FreeKitGUI(this);
            arenas = new ArenaGUI(this);
           
            Bukkit.getServer().getPluginManager().registerEvents(new DeathEvent(), this);
            Bukkit.getServer().getPluginManager().registerEvents(new InventoryInteract(), this);
            Bukkit.getServer().getPluginManager().registerEvents(new InteractEvent(), this);
            Bukkit.getServer().getPluginManager().registerEvents(new PlayerJoin(), this);
            Bukkit.getServer().getPluginManager().registerEvents(new RespawnEvent(), this);
            Bukkit.getServer().getPluginManager().registerEvents(new SaturationEvent(), this);
        }
       
        public static MySQL getMysql() {
            return mysql;
        }
       
        public FreeKitGUI getFreeKitGUI() {
            return freekits;
        }
       
        public ArenaGUI getArenaGUI() {
            return arenas;
        }
    
        public void setMysql(MySQL mysql) {
            Kitpvp.mysql = mysql;
        }
       
        public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
            if (cmd.getName().equalsIgnoreCase("freekits")) {
                if (!(sender instanceof Player)) {
                    sender.sendMessage(ChatColor.RED + "You can't do this command.");
                    return true;
                }
                Player p = (Player) sender;
                FreeKitGUI.openFreeKitGUI(p);
                MessageManager.sendGood(p, "Opening free kits");
            }
            if (cmd.getName().equalsIgnoreCase("addtokens")) {
                if (!(sender instanceof Player)) {
                    Player sender1 = (Player) sender;
                    MessageManager.sendTokens(sender1, "You can't run commands as the console");
                    return true;
                }
                Player p = (Player) sender;
                if (!p.hasPermission("shockmc.tokens.add")) {
                    MessageManager.sendTokens(p, "You can buy tokens from the store! Go to http://buycraft.com/ourwebsite");
                    return true;
                }
                if (args.length == 0) {
                    MessageManager.sendTokens(p, "Please specify a player. /addtokens <player> <amount>");
                    return true;
                }
                Player player = Bukkit.getServer().getPlayer(args[0]);
                if (player == null) {
                    MessageManager.sendTokens(p, "That player is not online, you can do this in the database or on the admin panel.");
                    return true;
                }
                try{
                    Integer.parseInt(args[1]);
                }
                catch(Exception ex){
                    MessageManager.sendTokens(p, "The amount has to be a number. /addtokens <player> <amount>");
                    return true;
                }
                mysql.addTokens(p, Integer.parseInt(args[1]));
                MessageManager.sendTokens(p, "Successfully added " + ChatColor.AQUA + args[1]  + " tokens"+ ChatColor.GRAY + " to " + ChatColor.YELLOW + args[0] + ChatColor.GRAY + ".");
            }
           
            if (cmd.getName().equalsIgnoreCase("removetokens")) {
                if (!(sender instanceof Player)) {
                    Player sender1 = (Player) sender;
                    MessageManager.sendTokens(sender1, "You can't run commands as the console");
                    return true;
                }
                Player p = (Player) sender;
                if (!p.hasPermission("shockmc.tokens.remove")) {
                    MessageManager.sendTokens(p, "You don't have enough permissions to " + ChatColor.YELLOW + "Remove tokens" + ChatColor.GRAY + ".");
                    return true;
                }
                if (args.length == 0) {
                    MessageManager.sendTokens(p, "You must specify a player. /removetokens <player> <amount>");
                    return true;
                }
                Player player = Bukkit.getServer().getPlayer(args[0]);
                if (player == null) {
                    MessageManager.sendTokens(p, "That player is not online, please do this in the database or on the admin panel.");
                    return true;
                }
                try{
                    Integer.parseInt(args[1]);
                }
                catch(Exception ex){
                    MessageManager.sendTokens(p, "The amount has to be a number.");
                    return true;
                }
                mysql.removeTokens(player, Integer.parseInt(args[1]));
                MessageManager.sendTokens(p, "Successfully removed " + ChatColor.AQUA + args[1] + " tokens" + ChatColor.GRAY + " from " + ChatColor.YELLOW + player.getName() + ChatColor.GRAY + ".");
                MessageManager.sendTokens(player, ChatColor.AQUA + args[1] + " tokens" + ChatColor.GRAY + " were removed from your account. Your balance is now " + mysql.getPlayerTokens(player) + " tokens.");
            }
           
            if (cmd.getName().equalsIgnoreCase("tokens")) {
                if (!(sender instanceof Player)) {
                    Player sender1 = (Player) sender;
                    MessageManager.sendTokens(sender1, "You can't run commands as the console");
                    return true;
                }
                Player p = (Player) sender;
                if (args.length == 0) {
                    MessageManager.sendTokens(p, "Your current token balance: " + ChatColor.YELLOW + mysql.getPlayerTokens(p));
                    return true;
                }
                Player player = Bukkit.getServer().getPlayer(args[0]);
                if (player == null) {
                    MessageManager.sendTokens(p, "That player isn't on the server.");
                    return true;
                }
                MessageManager.sendTokens(p, ChatColor.YELLOW + player.getName() + ChatColor.GRAY + "'s token balance is " + ChatColor.AQUA + mysql.getPlayerTokens(player) + ChatColor.GRAY);
                return true;
            }
           
            if (cmd.getName().equalsIgnoreCase("removebounty")) {
                Player p = (Player) sender;
                MessageManager.sendBounty(p, "Feature coming soon.");
            }
            if (cmd.getName().equalsIgnoreCase("setbounty")) {
                Player p = (Player) sender;
                MessageManager.sendBounty(p, "Feature coming soon.");
            }
            if (cmd.getName().equalsIgnoreCase("checkbounty")) {
                Player p = (Player) sender;
                MessageManager.sendBounty(p, "Feature coming soon.");
            }
           
            if (cmd.getName().equalsIgnoreCase("setcoalarena")) {
                Player p = (Player) sender;
                getConfig().set("coal.world", p.getLocation().getWorld().getName());
                getConfig().set("coal.x", p.getLocation().getX());
                getConfig().set("coal.y", p.getLocation().getY());
                getConfig().set("coal.z", p.getLocation().getZ());
                saveConfig();
                MessageManager.sendGood(p, "Coal arena spawn set.");
            }
            if (cmd.getName().equalsIgnoreCase("setironarena")) {
                Player p = (Player) sender;
                getConfig().set("iron.world", p.getLocation().getWorld().getName());
                getConfig().set("iron.x", p.getLocation().getX());
                getConfig().set("iron.y", p.getLocation().getY());
                getConfig().set("iron.z", p.getLocation().getZ());
                saveConfig();
                MessageManager.sendGood(p, "Iron arena spawn set.");
            }
            if (cmd.getName().equalsIgnoreCase("setdiamondarena")) {
                Player p = (Player) sender;
                getConfig().set("diamond.world", p.getLocation().getWorld().getName());
                getConfig().set("diamond.x", p.getLocation().getX());
                getConfig().set("diamond.y", p.getLocation().getY());
                getConfig().set("diamond.z", p.getLocation().getZ());
                saveConfig();
                MessageManager.sendGood(p, "Diamond arena spawn set.");
            }
            if (cmd.getName().equalsIgnoreCase("setemeraldarena")) {
                Player p = (Player) sender;
                getConfig().set("emerald.world", p.getLocation().getWorld().getName());
                getConfig().set("emerald.x", p.getLocation().getX());
                getConfig().set("emerald.y", p.getLocation().getY());
                getConfig().set("emerald.z", p.getLocation().getZ());
                saveConfig();
                MessageManager.sendGood(p, "Emerald arena spawn set.");
            }
            if (cmd.getName().equalsIgnoreCase("setproarena")) {
                Player p = (Player) sender;
                getConfig().set("pro.world", p.getLocation().getWorld().getName());
                getConfig().set("pro.x", p.getLocation().getX());
                getConfig().set("pro.y", p.getLocation().getY());
                getConfig().set("pro.z", p.getLocation().getZ());
                saveConfig();
                MessageManager.sendGood(p, "Pro arena spawn set.");
            }
            return true;
        }
    
    }
    
     
  2. Offline

    ark9026

    @ESSHD
    Can we see a stack trace when you run the plugin?
     
  3. Offline

    ESSHD

    @ark9026
    Code:
    [19:38:21 ERROR]: Could not pass event InventoryClickEvent to Kits v1.0
    org.bukkit.event.EventException
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    va:305) ~[custom.jar:git-Spigot-dbe012b-61ef214]
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:62) ~[custom.jar:git-Spigot-dbe012b-61ef214]
            at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
    ava:502) [custom.jar:git-Spigot-dbe012b-61ef214]
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:487) [custom.jar:git-Spigot-dbe012b-61ef214]
            at net.minecraft.server.v1_8_R2.PlayerConnection.a(PlayerConnection.java
    :1618) [custom.jar:git-Spigot-dbe012b-61ef214]
            at net.minecraft.server.v1_8_R2.PacketPlayInWindowClick.a(SourceFile:31)
    [custom.jar:git-Spigot-dbe012b-61ef214]
            at net.minecraft.server.v1_8_R2.PacketPlayInWindowClick.a(SourceFile:9)
    [custom.jar:git-Spigot-dbe012b-61ef214]
            at net.minecraft.server.v1_8_R2.PlayerConnectionUtils$1.run(SourceFile:1
    3) [custom.jar:git-Spigot-dbe012b-61ef214]
            at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [
    ?:1.8.0_31]
            at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_31]
            at net.minecraft.server.v1_8_R2.SystemUtils.a(SourceFile:60) [custom.jar
    :git-Spigot-dbe012b-61ef214]
            at net.minecraft.server.v1_8_R2.MinecraftServer.A(MinecraftServer.java:7
    10) [custom.jar:git-Spigot-dbe012b-61ef214]
            at net.minecraft.server.v1_8_R2.DedicatedServer.A(DedicatedServer.java:3
    68) [custom.jar:git-Spigot-dbe012b-61ef214]
            at net.minecraft.server.v1_8_R2.MinecraftServer.z(MinecraftServer.java:6
    51) [custom.jar:git-Spigot-dbe012b-61ef214]
            at net.minecraft.server.v1_8_R2.MinecraftServer.run(MinecraftServer.java
    :554) [custom.jar:git-Spigot-dbe012b-61ef214]
            at java.lang.Thread.run(Unknown Source) [?:1.8.0_31]
    Caused by: java.lang.NullPointerException
            at com.shockmc.kitpvp.listeners.InventoryInteract.onPlayerInteract(Inven
    toryInteract.java:129) ~[?:?]
            at sun.reflect.GeneratedMethodAccessor65.invoke(Unknown Source) ~[?:?]
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1
    .8.0_31]
            at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_31]
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    va:301) ~[custom.jar:git-Spigot-dbe012b-61ef214]
            ... 15 more
    >
     
  4. if (main.getConfig().getConfigurationSection("diamond") == null) {
    this line is throwing the error
     
  5. Offline

    teej107

  6. Offline

    ark9026

    @ESSHD
    As @Neonix just said above, "if (main.getConfig().getConfigurationSection("diamond") == null) {"
    is throwing a NullPointerException.
     
  7. Offline

    ESSHD

  8. Offline

    teej107

    Let's look at your suspects
    • main could be null
    • getConfig() could return null
    I bet you anything its the first one.
     
  9. Offline

    ESSHD

    @teej107 It is, what could I do to fix this? I've tested it.

    @teej107 Fixed it, thanks for your help.

    EDIT by Timtower: merged posts
     
    Last edited by a moderator: Apr 28, 2015
  10. Offline

    ark9026

    @ESSHD
    Can you put the [Solved] tag at the top if it's fixed?
     
Thread Status:
Not open for further replies.

Share This Page