Solved Need Help

Discussion in 'Plugin Development' started by Lukas12137, Jun 13, 2015.

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

    Lukas12137

    Code:
    package me.lukas.customebosses;
    
    import org.bukkit.Bukkit;
    import org.bukkit.Material;
    [code][19:05:54] [Server thread/ERROR]: Could not pass event PlayerInteractEvent to customebosses v1.2
    org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:305) ~[spigot_1.8.3_26dfd01-ad2f806.jar:git-Spigot-26dfd01-ad2f806]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot_1.8.3_26dfd01-ad2f806.jar:git-Spigot-26dfd01-ad2f806]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot_1.8.3_26dfd01-ad2f806.jar:git-Spigot-26dfd01-ad2f806]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [spigot_1.8.3_26dfd01-ad2f806.jar:git-Spigot-26dfd01-ad2f806]
        at org.bukkit.craftbukkit.v1_8_R2.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:226) [spigot_1.8.3_26dfd01-ad2f806.jar:git-Spigot-26dfd01-ad2f806]
        at org.bukkit.craftbukkit.v1_8_R2.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:193) [spigot_1.8.3_26dfd01-ad2f806.jar:git-Spigot-26dfd01-ad2f806]
        at org.bukkit.craftbukkit.v1_8_R2.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:189) [spigot_1.8.3_26dfd01-ad2f806.jar:git-Spigot-26dfd01-ad2f806]
        at net.minecraft.server.v1_8_R2.PlayerConnection.a(PlayerConnection.java:1171) [spigot_1.8.3_26dfd01-ad2f806.jar:git-Spigot-26dfd01-ad2f806]
        at net.minecraft.server.v1_8_R2.PacketPlayInArmAnimation.a(SourceFile:22) [spigot_1.8.3_26dfd01-ad2f806.jar:git-Spigot-26dfd01-ad2f806]
        at net.minecraft.server.v1_8_R2.PacketPlayInArmAnimation.a(SourceFile:8) [spigot_1.8.3_26dfd01-ad2f806.jar:git-Spigot-26dfd01-ad2f806]
        at net.minecraft.server.v1_8_R2.PlayerConnectionUtils$1.run(SourceFile:13) [spigot_1.8.3_26dfd01-ad2f806.jar:git-Spigot-26dfd01-ad2f806]
        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) [spigot_1.8.3_26dfd01-ad2f806.jar:git-Spigot-26dfd01-ad2f806]
        at net.minecraft.server.v1_8_R2.MinecraftServer.A(MinecraftServer.java:710) [spigot_1.8.3_26dfd01-ad2f806.jar:git-Spigot-26dfd01-ad2f806]
        at net.minecraft.server.v1_8_R2.DedicatedServer.A(DedicatedServer.java:368) [spigot_1.8.3_26dfd01-ad2f806.jar:git-Spigot-26dfd01-ad2f806]
        at net.minecraft.server.v1_8_R2.MinecraftServer.z(MinecraftServer.java:651) [spigot_1.8.3_26dfd01-ad2f806.jar:git-Spigot-26dfd01-ad2f806]
        at net.minecraft.server.v1_8_R2.MinecraftServer.run(MinecraftServer.java:554) [spigot_1.8.3_26dfd01-ad2f806.jar:git-Spigot-26dfd01-ad2f806]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_31]
    Caused by: java.lang.NullPointerException
        at me.lukas.customebosses.Tickets.SpawnBosses(Tickets.java:23) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_31]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_31]
        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.java:301) ~[spigot_1.8.3_26dfd01-ad2f806.jar:git-Spigot-26dfd01-ad2f806]
        ... 18 more
    
    Code:
    import org.bukkit.entity.Entity;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.Action;
    import org.bukkit.event.entity.EntityDeathEvent;
    import org.bukkit.event.player.PlayerInteractEvent;
    import org.bukkit.inventory.ItemStack;
    
    public class Tickets implements Listener{
      
        @EventHandler
        public void SpawnBosses(PlayerInteractEvent e) {
            Player p = e.getPlayer();
            ItemStack is = e.getPlayer().getItemInHand();
            if(p.getItemInHand()==null || p.getItemInHand()==new ItemStack(Material.AIR)) {
                e.setCancelled(true);
            }
            else if (p.getItemInHand().getItemMeta().getDisplayName().contains("§c§lThe Zombie God! §6§l(Click To Spawn)") && is.getType()==Material.PAPER) {
                if(e.getAction() == Action.RIGHT_CLICK_BLOCK || e.getAction().equals(Action.RIGHT_CLICK_AIR)) {
                    Bukkit.getServer().dispatchCommand(e.getPlayer(), "Gz");
                    p.getInventory().setItemInHand(new ItemStack(Material.AIR, 1));
                    return;
          
                }
            }
          
            else  if (p.getItemInHand().getItemMeta().getDisplayName().contains("§e§lThe Headless King! §6§l(Click To Spawn)") && is.getType()==Material.PAPER) {
                if(e.getAction() == Action.RIGHT_CLICK_BLOCK || e.getAction().equals(Action.RIGHT_CLICK_AIR)) {
                    Bukkit.getServer().dispatchCommand(e.getPlayer(), "Hk");
                    p.getInventory().setItemInHand(new ItemStack(Material.AIR, 1));
                    return;
          
                }
            }
          
            else  if (p.getItemInHand().getItemMeta().getDisplayName().contains("§7§lThe Death Shooter! §6§l(Click To Spawn)") && is.getType()==Material.PAPER) {
                if(e.getAction() == Action.RIGHT_CLICK_BLOCK || e.getAction().equals(Action.RIGHT_CLICK_AIR)) {
                    Bukkit.getServer().dispatchCommand(e.getPlayer(), "Ds");
                    p.getInventory().setItemInHand(new ItemStack(Material.AIR, 1));
                    return;
          
                }
            }
          
            else  if (p.getItemInHand().getItemMeta().getDisplayName().contains("§3§lIron Lady! §6§l(Click To Spawn)") && is.getType()==Material.PAPER) {
                if(e.getAction() == Action.RIGHT_CLICK_BLOCK || e.getAction().equals(Action.RIGHT_CLICK_AIR)) {
                    Bukkit.getServer().dispatchCommand(e.getPlayer(), "Il");
                    p.getInventory().setItemInHand(new ItemStack(Material.AIR, 1));
                    return;
          
                }
            }
          
        }
        @EventHandler
        public void Death(EntityDeathEvent e) {
            Entity en = e.getEntity();
            if(en.getCustomName()==null || !en.hasMetadata(null)) {
                return;
            }
            if(en.getCustomName().contains("§c§lZombie God")) {
                Bukkit.broadcastMessage("§6§lThe §c§lZombie God §6§lhas just been slain to his death!");
                en.getWorld().dropItemNaturally(en.getLocation(), new ItemStack(Material.TNT, 9));
                en.getWorld().dropItemNaturally(en.getLocation(), new ItemStack(Material.OBSIDIAN, 16));
                return;
            }
            else if(en.getCustomName().contains("§e§lHeadless King")) {
                Bukkit.broadcastMessage("§6§lThe §e§lHeadless King §6§lhas just been slain to his death!");
                en.getWorld().dropItemNaturally(en.getLocation(), new ItemStack(Material.TNT, 9));
                en.getWorld().dropItemNaturally(en.getLocation(), new ItemStack(Material.OBSIDIAN, 16));
                return;
            }
            else if(en.getCustomName().contains("§7§lDeath Shooter")) {
                Bukkit.broadcastMessage("§6§lThe §7§lDeath Shooter §6§lhas just been slain to his death!");
                en.getWorld().dropItemNaturally(en.getLocation(), new ItemStack(Material.TNT, 9));
                en.getWorld().dropItemNaturally(en.getLocation(), new ItemStack(Material.OBSIDIAN, 16));
                return;
            }
            else if(en.getCustomName().contains("§3§lIron Lady")) {
                Bukkit.broadcastMessage("§6§lThe §3§lIron Lady §6§lhas just been slain to her death!");
                en.getWorld().dropItemNaturally(en.getLocation(), new ItemStack(Material.TNT, 9));
                en.getWorld().dropItemNaturally(en.getLocation(), new ItemStack(Material.OBSIDIAN, 16));
                return;
            }
        }
      
    }
    
    Here is my code and the Error im getting can any one help me please on fixing it
     
    Last edited: Jun 13, 2015
  2. Offline

    567legodude

    @Lukas12137 Well, I can tell you that you are getting a NullPointerException in your SpawnBosses (PlayerInteractEvent) method.

    Its a bit hard to read. Would you mind using code blocks for the code.
     
  3. Offline

    Lukas12137

    Well the plugin works but it throws this error when ever i break something or click on any block
     
  4. Offline

    567legodude

    @Lukas12137 I don't think this will fix it, but I rewrote your spawnbosses event. With that you shouldn't get any more NPE's. I think it was because you didn't have the right checks.
    Code:
    @EventHandler
    public void spawnBosses(PlayerInteractEvent e) {
        Player p = e.getPlayer();
        ItemStack is = p.getItemInHand();
     
        if (is == null || is.getType() == Material.AIR) {
            e.setCancelled(true);
            return;
        }
     
        if (e.getAction() == Action.RIGHT_CLICK_AIR || e.getAction() == Action.RIGHT_CLICK_BLOCK) {
            if (is.getItemMeta().hasDisplayName()) {
                if (is.getItemMeta().getDisplayName().contains("§c§lThe Zombie God! §6§l(Click To Spawn)") && is.getType() == Material.PAPER) {
                    Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "gz");
                    p.getInventory().setItemInHand(new ItemStack(Material.AIR));
                }
                else if (is.getItemMeta().getDisplayName().contains("§e§lThe Headless King! §6§l(Click To Spawn)") && is.getType() == Material.PAPER) {
                    Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "hk");
                    p.getInventory().setItemInHand(new ItemStack(Material.AIR));
                }
            }
        }
    }
     
  5. Offline

    Lukas12137

    Still throws out the same Error when i have an item in hand and i place it or click it/breake.

    Fixed it i added a thing to if the player is not holding paper just return it and that seems to fix it.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 12, 2016
Thread Status:
Not open for further replies.

Share This Page