Entity Death Event Help

Discussion in 'Plugin Development' started by paxi, Jun 18, 2014.

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

    paxi

    Hello everybody,

    i want to give a messsage out if an entity die by a player but my code didn't work. Maybe anyone of you can help me? :)
    Here my code:

    Code:java
    1. @EventHandler
    2. public void onKillEntity(EntityDeathEvent event){
    3. Entity killer = event.getEntity().getKiller();
    4. LivingEntity deathEntity= event.getEntity();
    5.  
    6. if(killer instanceof Player){
    7. Player killerp = (Player) killer;
    8. String playername = killerp.getName();
    9. System.out.print(playername);


    The Event is registered! I don't know why it doens't use the if clause....

    Hope someone can help me :)!
     
  2. Offline

    Konkz

    Why do you make the "killer" and "deathEntity" twice?


    PHP:
    public void onKill(EntityDeathEvent event) {
    if (
    event.getEntity().getKiller() instanceof Player && event.getEntity instanceof Entity) {
      
    Player killer = (Playerevent.getEntity().getKiller();
      
    Entity victim event.getEntity();
      
    bukkit.broadcastMessage(killer.getName() + " has killed " victim.getName());
    }
    }
     
    paxi likes this.
  3. Offline

    paxi

    When i write:
    Code:java
    1. if (event.getEntity().getKiller() instanceof Player && event.getEntity() instanceof Entity) {
    2. Player killer = (Player) event.getEntity().getKiller();
    3. Entity victim = event.getEntity();
    4.  
    5. double live= ((LivingEntity) victim).getMaxHealth();
    6. String playername = killer.getName();
    7. System.out.print(playername);
    8. ....

    it doens't go into the if clause

    when i write:
    Code:java
    1. Player killer = (Player) event.getEntity().getKiller();
    2. Entity victim = event.getEntity();
    3.  
    4. double live= ((LivingEntity) victim).getMaxHealth();
    5. String playername = killer.getName();
    6. System.out.print(playername);


    i go following error:
    Code:java
    1. Caused by: java.lang.NullPointerException
    2. at com.faldoria.rpg.listener.RPGListener.onKillEntity(RPGListener.java:142) ~[?:?]
    3. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_17]
    4. at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[?:1.7.0_17]
    5. at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.7.0_17]
    6. at java.lang.reflect.Method.invoke(Method.java:601) ~[?:1.7.0_17]
    7. at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:318) ~[spigot(1).jar:git-Spigot-1322]


    line 142 is:
    String playername = killer.getName();

    why? :O
     
  4. Offline

    fireblast709

    Rather use != null instead of instanceof Player. Also getEntity() will always return an Entity, so that instanceof check is kinda useless
     
    paxi likes this.
  5. Offline

    paxi

    When i write it like you say it doens't go into if clause...
    if (event.getEntity().getKiller() != null && event.getEntity() != null) {
    Player killer = (Player) event.getEntity().getKiller();
    Entity victim = event.getEntity();

    double live= ((LivingEntity) victim).getMaxHealth();
    String playername = killer.getName();
    System.out.print(playername);
     
  6. Offline

    Konkz

    Oops, was meant to be Mob not Entity. As it will also trigger when player kills player, as overall it's Entity death AFAIK.
     
  7. Offline

    paxi

    Konkz so how it has to be???? :eek:
     
  8. Offline

    fireblast709

    paxi Try fixing some code yourself instead of asking to be spoonfed.
     
Thread Status:
Not open for further replies.

Share This Page