EntityDeathEvent and PlayerDeathEvent collision

Discussion in 'Plugin Development' started by inomushis, Dec 21, 2013.

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

    inomushis

    Hello everyone.
    I'm currently working on event messages in my plugin.
    There is a little problem with death message.

    In my opinion EntityDeath and PlayerDeath events are in collision.
    First one is using to broadcast message when player kills Giant - it works nice.
    Second one is using to setDeathMessage() - it return error.

    My code:
    Code:java
    1.  
    2. @EventHandler
    3. public void onEntityDeath(EntityDeathEvent event) {
    4. if (event.getEntity() instanceof Giant){
    5. if(event.getEntity().getKiller() instanceof Player){
    6. event.setDroppedExp(100);
    7. Player player = event.getEntity().getKiller();
    8. Bukkit.broadcastMessage(ChatColor.YELLOW + "Gracz " + player.getName() + " wlasnie pokonal(a) Kolosa !!!");
    9. }
    10. }
    11. }
    12.  
    13. @EventHandler
    14. public void onPlayerDeath(PlayerDeathEvent event) {
    15. event.setDeathMessage(event.getEntity().getName() + " is dead.");
    16. }
    17.  


    Result (when Player is death):
    Code:
    2013-12-21 21:54:42 [SEVERE] Could not pass event PlayerDeathEvent to Stats vjenkins-Stats-363
    org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:363)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
        at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:31)
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:479)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:464)
        at org.bukkit.craftbukkit.v1_5_R3.event.CraftEventFactory.callPlayerDeathEvent(CraftEventFactory.java:350)
        at net.minecraft.entity.player.EntityPlayerMP.func_70645_a(EntityPlayerMP.java:496)
        at org.bukkit.craftbukkit.v1_5_R3.entity.CraftLivingEntity.setHealth(CraftLivingEntity.java:62)
        at pl.kodlyoko.dii.IDFinderPluginListener.onHit(IDFinderPluginListener.java:116)
        at sun.reflect.GeneratedMethodAccessor28.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:361)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
        at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:31)
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:479)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:464)
        at org.bukkit.craftbukkit.v1_5_R3.event.CraftEventFactory.callEvent(CraftEventFactory.java:76)
        at org.bukkit.craftbukkit.v1_5_R3.event.CraftEventFactory.callEntityDamageEvent(CraftEventFactory.java:397)
        at org.bukkit.craftbukkit.v1_5_R3.event.CraftEventFactory.handleEntityDamageEvent(CraftEventFactory.java:426)
        at net.minecraft.entity.EntityLiving.func_70097_a(EntityLiving.java:1075)
        at net.minecraft.entity.player.EntityPlayer.func_70097_a(EntityPlayer.java:1118)
        at net.minecraft.entity.player.EntityPlayerMP.func_70097_a(EntityPlayerMP.java:591)
        at matt.lyoko.entities.projectile.EntityLaser.func_70071_h_(EntityLaser.java:319)
        at net.minecraft.world.World.func_72866_a(World.java:2522)
        at net.minecraft.world.WorldServer.func_72866_a(WorldServer.java:938)
        at net.minecraft.world.World.func_72870_g(World.java:2475)
        at net.minecraft.world.World.func_72939_s(World.java:2287)
        at net.minecraft.world.WorldServer.func_72939_s(WorldServer.java:803)
        at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:820)
        at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:320)
        at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:716)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:600)
        at net.minecraft.server.ThreadMinecraftServer.run(SourceFile:573)
    Caused by: java.lang.NullPointerException
        at nl.lolmewn.stats.EventListener.onPlayerDeath(EventListener.java:176)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:361)
        ... 33 more
    2013-12-21 21:54:42 [INFO] Bartek died
    Is possible to solve this problem?
    Thanks for any suggestions.
     
  2. Offline

    xTigerRebornx

    What is line 176 of the EventListener class?
     
  3. Offline

    bars96

    Code:java
    1. @EventHandler
    2. public void onPlayerDeath(PlayerDeathEvent event) {
    3. Player p = (Player) event.getEntity();
    4. event.setDeathMessage(player.getName() + " is dead.");
    5. }
     
  4. Offline

    xTigerRebornx

    Which one of those lines is 176?
     
  5. Offline

    DrJava

    ^^ Make that into the below.

     
    bars96 likes this.
Thread Status:
Not open for further replies.

Share This Page