NullPointerException

Discussion in 'Plugin Development' started by WattMann, Feb 19, 2018.

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

    WattMann

    Code:
    
    // imports are cuted of
    public class TargetDeath implements Listener {
       
        UUID uID = Main.plugin.uniqueID; // imports uniqueID of target
        public static TargetDeath api;
    
        boolean died = false; //just little boolean
    
        ItemStack[] tItems;   <<- here's the problem
    
       
        public TargetDeath() {
    
        if(tItems == null) {
            return;
        }
        }
    
        @EventHandler
        public void onEntityDeath(EntityDeathEvent e) {
            api = this;
           
            if((e.getEntity() instanceof Player)) {
               
                UUID eU = e.getEntity().getUniqueId();
                if((eU == uID)) {
                   
                    Player target = (Player) e.getEntity();
                    Inventory tInv = target.getInventory();
                    this.tItems = tInv.getContents();
                    this.died = true;
                }
            }
        }
    
    }
    
    }
    
    So as you can see there is ItemStack[] wich is getting items from target what died but when i turn it on in console will be : "NullPointerException" caused by this code, is possible to avoid it ? or i have to do it another way ?

    btw sorry for broken english
     
  2. Online

    timtower Administrator Administrator Moderator

    @WattMann Please provide your full stack trace, that line can't throw errors.
     
  3. Offline

    WattMann

    like Main class ?

    Code:
    package me.Watt.IT;
    
    import java.lang.annotation.Target;
    import java.util.UUID;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.Material;
    import org.bukkit.block.Block;
    import org.bukkit.block.Chest;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.EntityType;
    import org.bukkit.entity.Player;
    import org.bukkit.entity.Zombie;
    import org.bukkit.inventory.Inventory;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class Main extends JavaPlugin {
       
        public static Main plugin;
        public UUID uniqueID;
        ItemStack[] tItems = TargetDeath.api.tItems;
        boolean died = TargetDeath.api.died;
       
       
        public void onEnable() {
            plugin = this;
            getConfig().options().copyDefaults(true);
            saveDefaultConfig();
        }
       
       
       
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
           
            Player player = (Player) sender;
            Zombie zs[];
            zs = new Zombie[7];   
    
           
           
            if(cmd.getName().equalsIgnoreCase("IT")) {
               
                if(args.length < 0) {sender.sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("args-help")));
               
                }
               
                if(args.length > 0) {
                   
                    Player t = Bukkit.getPlayer(args[0]);   
                    Inventory tcInv = Bukkit.createInventory(player, 36, t.getName() + "'s inventory");
                    UUID uID = t.getUniqueId();
                    uID = this.uniqueID;
                    zs[0] = (Zombie) t.getLocation().getWorld().spawnEntity(t.getLocation(), EntityType.ZOMBIE);
                    zs[1] = (Zombie) t.getLocation().getWorld().spawnEntity(t.getLocation(), EntityType.ZOMBIE);
                    zs[2] = (Zombie) t.getLocation().getWorld().spawnEntity(t.getLocation(), EntityType.ZOMBIE);
                    zs[3] =    (Zombie) t.getLocation().getWorld().spawnEntity(t.getLocation(), EntityType.ZOMBIE);
                   
                    if(died == true) {
                       
                        tcInv.addItem(tItems);
                    for(Zombie zombie : zs) {
                        zombie.setHealth(0);
                        player.openInventory(tcInv);
                       
                        }
                    }
                   
                }
            }
            return true;
        }
    }
    
    and console:
    Code:
     Could not load 'plugins\testIT.jar' in folder 'plugins'
    org.bukkit.plugin.InvalidPluginException: java.lang.NullPointerException
            at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:133) ~[spigot-1.12.2.jar:git-Spigot-7754231-362ed32]
            at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:326) ~[spigot-1.12.2.jar:git-Spigot-7754231-362ed32]
            at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:248) [spigot-1.12.2.jar:git-Spigot-7754231-362ed32]
            at org.bukkit.craftbukkit.v1_12_R1.CraftServer.loadPlugins(CraftServer.java:308) [spigot-1.12.2.jar:git-Spigot-7754231-362ed32]
            at org.bukkit.craftbukkit.v1_12_R1.CraftServer.reload(CraftServer.java:753) [spigot-1.12.2.jar:git-Spigot-7754231-362ed32]
            at org.bukkit.Bukkit.reload(Bukkit.java:525) [spigot-1.12.2.jar:git-Spigot-7754231-362ed32]
            at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:25) [spigot-1.12.2.jar:git-Spigot-7754231-362ed32]
            at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) [spigot-1.12.2.jar:git-Spigot-7754231-362ed32]
            at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchCommand(CraftServer.java:651) [spigot-1.12.2.jar:git-Spigot-7754231-362ed32]
            at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchServerCommand(CraftServer.java:637) [spigot-1.12.2.jar:git-Spigot-7754231-362ed32]
            at net.minecraft.server.v1_12_R1.DedicatedServer.aP(DedicatedServer.java:444) [spigot-1.12.2.jar:git-Spigot-7754231-362ed32]
            at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:407) [spigot-1.12.2.jar:git-Spigot-7754231-362ed32]
            at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:679) [spigot-1.12.2.jar:git-Spigot-7754231-362ed32]
            at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:577) [spigot-1.12.2.jar:git-Spigot-7754231-362ed32]
            at java.lang.Thread.run(Unknown Source) [?:1.8.0_161]
    Caused by: java.lang.NullPointerException
            at me.Watt.IT.Main.<init>(Main.java:24) ~[?:?]
            at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_161]
            at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.8.0_161]
            at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.8.0_161]
            at java.lang.reflect.Constructor.newInstance(Unknown Source) ~[?:1.8.0_161]
            at java.lang.Class.newInstance(Unknown Source) ~[?:1.8.0_161]
            at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:76) ~[spigot-1.12.2.jar:git-Spigot-7754231-362ed32]
            at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:129) ~[spigot-1.12.2.jar:git-Spigot-7754231-362ed32]
            ... 14 more
    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Feb 19, 2018
  4. Online

    timtower Administrator Administrator Moderator

  5. Offline

    WattMann

    wich api ?
     
  6. Online

    timtower Administrator Administrator Moderator

    @WattMann This one:
     
  7. Offline

    WattMann

    nah i just called it api idk why

    ah, ikr thx

    thx it got to be in onCommand method

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Feb 19, 2018
  8. Online

    timtower Administrator Administrator Moderator

    @WattMann Entire TargetDeath does nothing by the way. Probably want to look into that or rethink the structure of the code.
     
Thread Status:
Not open for further replies.

Share This Page