Error in my repeat task

Discussion in 'Plugin Development' started by MrFrozen, Jul 15, 2015.

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

    MrFrozen

    I got this error in my repeating task but I cannot find out what this NullPointerException is for...

    Error:

    Code:
    [14:53:56] [Server thread/INFO]: [0;32;1mMedusaXYZ reloaded successfully.[m
    [14:54:01] [Server thread/WARN]: [MedusaXYZ] Task #57 for MedusaXYZ v0.1 generated an exception
    java.lang.NullPointerException
        at xyz.medusa.Core$1.run(Core.java:39) ~[?:?]
        at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftTask.run(CraftTask.java:71) ~[spigot.jar:git-Spigot-6d16e64-b105298]
        at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:350) [spigot.jar:git-Spigot-6d16e64-b105298]
        at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:722) [spigot.jar:git-Spigot-6d16e64-b105298]
        at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374) [spigot.jar:git-Spigot-6d16e64-b105298]
        at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:653) [spigot.jar:git-Spigot-6d16e64-b105298]
        at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:556) [spigot.jar:git-Spigot-6d16e64-b105298]
        at java.lang.Thread.run(Unknown 
    Code:
    Code:
    for(Player op : Bukkit.getOnlinePlayers()) {
                        for(ItemStack is : op.getInventory()) {
                            if(is.getType() == Material.NAME_TAG) {
                                if(is.hasItemMeta()) {
                                    ItemMeta im = is.getItemMeta();
                                    if(im.getDisplayName().equals("Name Tag")) {
                                        int amount = is.getAmount();
                                        op.getInventory().remove(is);
                                       
                                        ItemStack tag = new ItemStack(Material.NAME_TAG, amount);
                                        ItemMeta meta = tag.getItemMeta();
                                        meta.setDisplayName(ChatColor.AQUA + "Name Tag");
                                        tag.setItemMeta(meta);
                                       
                                        op.getInventory().addItem(tag);
                                    }
                                }
                            }
                        }
                    }

    The error is on this line:
    Code:
    if(is.getType() == Material.NAME_TAG) {
     
  2. Offline

    schwabfl

    if the player has empty slots in their inventory, "is" will be null
    insert a != null check
     
  3. Offline

    MrFrozen

    Code:
    for(ItemStack is : op.getInventory()) {
                            if(is.getType() != null) {
                                if(is.getType() == Material.NAME_TAG) {
                                    if(is.hasItemMeta()) {
                                        ItemMeta im = is.getItemMeta();
                                        if(im.getDisplayName().equals("Name Tag")) {
                                            int amount = is.getAmount();
                                            op.getInventory().remove(is);
                                           
                                            ItemStack tag = new ItemStack(Material.NAME_TAG, amount);
                                            ItemMeta meta = tag.getItemMeta();
                                            meta.setDisplayName(ChatColor.AQUA + "Name Tag");
                                            tag.setItemMeta(meta);
                                           
                                            op.getInventory().addItem(tag);
                                        }
                                    }
                                }
                                // ==============
                            }
                        }
    NullPointerExecption at
    Code:
    if(is.getType() != null) {
     
  4. Offline

    schwabfl

    check if the itemstack itself is null,
    not is.getType() .-.
     
Thread Status:
Not open for further replies.

Share This Page