[Vault/EssentialsEco] Getting paid by killing zombies error.

Discussion in 'Plugin Development' started by Moxley, Jul 22, 2015.

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

    Moxley

    So I want players to get cash by killing zombies. Here's my code:
    Code:
        @EventHandler
        public void onDeath(EntityDeathEvent e) {
            if (e.getEntity() instanceof Zombie) {
                Zombie z = (Zombie) e.getEntity();
                if(z.getKiller() != null) {
                    Player p = z.getKiller();
                    p.sendMessage(ChatColor.BLUE + "You killed a zombie, and you earned $30!");
                    EconomyResponse r = econ.depositPlayer(p, 30);
                    if(r.transactionSuccess()) {
                        p.sendMessage(String.format("You were given %s and now have %s", econ.format(r.amount), econ.format(r.balance)));
                    } else {
                        p.sendMessage(String.format("An error occured: %s", r.errorMessage));
                    }
                }
            }
        }
    And here's the error that I get when killing the zombies. I get the message, but I didn't get the cash:
    Code:
    [19:54:33 ERROR]: Could not pass event EntityDeathEvent to MyFirstPlugin v1.0
    org.bukkit.event.EventException
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) ~[craftbukkit.jar:git-Spigot-f928e7a-e91aed8]
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[craftbukkit.jar:git-Spigot-f928e7a-e91aed8]
            at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [craftbukkit.jar:git-Spigot-f928e7a-e91aed8]
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [craftbukkit.jar:git-Spigot-f928e7a-e91aed8]
            at org.bukkit.craftbukkit.v1_8_R3.event.CraftEventFactory.callEntityDeathEvent(CraftEventFactory.java:364) [craftbukkit.jar:git-Spigot-f928e7a-e91aed8]
            at net.minecraft.server.v1_8_R3.EntityLiving.die(EntityLiving.java:873) [craftbukkit.jar:git-Spigot-f928e7a-e91aed8]
            at net.minecraft.server.v1_8_R3.EntityZombie.die(EntityZombie.java:561) [craftbukkit.jar:git-Spigot-f928e7a-e91aed8]
            at net.minecraft.server.v1_8_R3.EntityLiving.damageEntity(EntityLiving.java:811) [craftbukkit.jar:git-Spigot-f928e7a-e91aed8]
            at net.minecraft.server.v1_8_R3.EntityMonster.damageEntity(EntityMonster.java:42) [craftbukkit.jar:git-Spigot-f928e7a-e91aed8]
            at net.minecraft.server.v1_8_R3.EntityZombie.damageEntity(EntityZombie.java:167) [craftbukkit.jar:git-Spigot-f928e7a-e91aed8]
            at net.minecraft.server.v1_8_R3.EntityHuman.attack(EntityHuman.java:1001) [craftbukkit.jar:git-Spigot-f928e7a-e91aed8]
            at net.minecraft.server.v1_8_R3.EntityPlayer.attack(EntityPlayer.java:1063) [craftbukkit.jar:git-Spigot-f928e7a-e91aed8]
            at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:1328) [craftbukkit.jar:git-Spigot-f928e7a-e91aed8]
            at net.minecraft.server.v1_8_R3.PacketPlayInUseEntity.a(SourceFile:52) [craftbukkit.jar:git-Spigot-f928e7a-e91aed8]
            at net.minecraft.server.v1_8_R3.PacketPlayInUseEntity.a(SourceFile:11) [craftbukkit.jar:git-Spigot-f928e7a-e91aed8]
            at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13) [craftbukkit.jar:git-Spigot-f928e7a-e91aed8]
            at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_51]
            at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_51]
            at net.minecraft.server.v1_8_R3.SystemUtils.a(SystemUtils.java:19) [craftbukkit.jar:git-Spigot-f928e7a-e91aed8]
            at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:718) [craftbukkit.jar:git-Spigot-f928e7a-e91aed8]
            at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:367) [craftbukkit.jar:git-Spigot-f928e7a-e91aed8]
            at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:657) [craftbukkit.jar:git-Spigot-f928e7a-e91aed8]
            at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:560) [craftbukkit.jar:git-Spigot-f928e7a-e91aed8]
            at java.lang.Thread.run(Unknown Source) [?:1.8.0_51]
    Caused by: java.lang.NullPointerException
            at me.Moxley.PlayerListener.onDeath(PlayerListener.java:65) ~[?:?]
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_51]
            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_51]
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_51]
            at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_51]
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[craftbukkit.jar:git-Spigot-f928e7a-e91aed8]
            ... 23 more
    >
     
  2. @Moxley
    Code:
    at me.Moxley.PlayerListener.onDeath(PlayerListener.java:65) ~[?:?]
    What is on line 65 in the PlayerListener class?
     
  3. Offline

    Moxley

    @Assist
    Code:
    Player p = z.getKiller();
     
  4. Offline

    Boomer

    when killing the zombies. I get the message, but I didn't get the cash <<Implies that line 65 is his EconomyResponse line

    econ is likely null at this point in execution
     
  5. Offline

    Moxley

    Kind of new to developing plugins so I can't really understand what you're saying. @Assist, help!
     
  6. Offline

    Asc_Nicholas

    Can you setup a PasteBin link with all of your code? That may help us solve the issue
     
  7. Offline

    Boomer

    You gave conflicting information - you said "I get the message" -- I assumed that meant the message about "you killed a zombie" which means that the plugin was able to execute that far, but with no money added, the error had to happen after that. A candidate would be that your econ object was not initialized, or not exposed to that part of the code.
    But then you declared that line 65 was the player p=z.getKiller(); line which is where the plugin is saying in the error is defintely the error is occuring, that something is null there - and the ONLY way you can get a null error on that line is if z is null itself, yet you explicitly already checked for that...Plus you would not get the message about killing a zombie that way

    Thus, your line numbering is not right or the error generated came from a different version of the code you were using.
     
  8. Offline

    Eos

    replace
    Code:
    Player p = z.getKiller();
    with
    Code:
    Player p = e.getEntity().getKiller();
    
     
  9. Offline

    Moxley

    @Eos Hey, I got another error, great!
    Code:
    [12:22:15 ERROR]: Could not pass event EntityDeathEvent to MyFirstPlugin v1.0
    org.bukkit.event.EventException
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) ~[craftbukkit.jar:git-Spigot-f928e7a-e91aed8]
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[craftbukkit.jar:git-Spigot-f928e7a-e91aed8]
            at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [craftbukkit.jar:git-Spigot-f928e7a-e91aed8]
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [craftbukkit.jar:git-Spigot-f928e7a-e91aed8]
            at org.bukkit.craftbukkit.v1_8_R3.event.CraftEventFactory.callEntityDeathEvent(CraftEventFactory.java:364) [craftbukkit.jar:git-Spigot-f928e7a-e91aed8]
            at net.minecraft.server.v1_8_R3.EntityLiving.die(EntityLiving.java:873) [craftbukkit.jar:git-Spigot-f928e7a-e91aed8]
            at net.minecraft.server.v1_8_R3.EntityZombie.die(EntityZombie.java:561) [craftbukkit.jar:git-Spigot-f928e7a-e91aed8]
            at net.minecraft.server.v1_8_R3.EntityLiving.damageEntity(EntityLiving.java:811) [craftbukkit.jar:git-Spigot-f928e7a-e91aed8]
            at net.minecraft.server.v1_8_R3.EntityMonster.damageEntity(EntityMonster.java:42) [craftbukkit.jar:git-Spigot-f928e7a-e91aed8]
            at net.minecraft.server.v1_8_R3.EntityZombie.damageEntity(EntityZombie.java:167) [craftbukkit.jar:git-Spigot-f928e7a-e91aed8]
            at net.minecraft.server.v1_8_R3.Entity.onLightningStrike(Entity.java:1742) [craftbukkit.jar:git-Spigot-f928e7a-e91aed8]
            at net.minecraft.server.v1_8_R3.EntityLightning.t_(EntityLightning.java:122) [craftbukkit.jar:git-Spigot-f928e7a-e91aed8]
            at net.minecraft.server.v1_8_R3.World.tickEntities(World.java:1360) [craftbukkit.jar:git-Spigot-f928e7a-e91aed8]
            at net.minecraft.server.v1_8_R3.WorldServer.tickEntities(WorldServer.java:597) [craftbukkit.jar:git-Spigot-f928e7a-e91aed8]
            at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:789) [craftbukkit.jar:git-Spigot-f928e7a-e91aed8]
            at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:367) [craftbukkit.jar:git-Spigot-f928e7a-e91aed8]
            at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:657) [craftbukkit.jar:git-Spigot-f928e7a-e91aed8]
            at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:560) [craftbukkit.jar:git-Spigot-f928e7a-e91aed8]
            at java.lang.Thread.run(Unknown Source) [?:1.8.0_51]
    Caused by: java.lang.NullPointerException
            at me.Moxley.PlayerListener.onDeath(PlayerListener.java:67) ~[?:?]
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_51]
            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_51]
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_51]
            at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_51]
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[craftbukkit.jar:git-Spigot-f928e7a-e91aed8]
            ... 18 more
    >
     
  10. @Moxley What's line 67 in PlayerListener
     
  11. @Moxley
     
    Boomer likes this.
Thread Status:
Not open for further replies.

Share This Page