Help with playerDeathEvent

Discussion in 'Plugin Development' started by pudd1nG, Jan 10, 2013.

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

    pudd1nG

    Hey guys, I'm building a kill streak counter and keep hitting an NPE on the bold line(s) I've marked out below. I'm a c# programmer who's playing in java, would appreciate any help :) Loving the bukkit API so far.

    Code:
    public class pvpDieEvent implements Listener{
     
        HashMap<String, Integer> killStreakMap = new HashMap<String, Integer>();
       
        @EventHandler
        public void PlayerDeathEvent(PlayerDeathEvent event){
           
                Player player = (Player)event.getEntity();
         
     
          if((event.getEntity().getKiller() instanceof Player) && (event.getEntity() instanceof Player)){
    //these lines!
                String killer = player.getKiller().getDisplayName();
                String vic = player.getDisplayName();
    //end           
                killStreakMap.remove(vic);
                int count = killStreakMap.get(killer);
                killStreakMap.remove(killer);
                killStreakMap.put(killer, count+1);
     
  2. Offline

    chasechocolate

    No need to cast Player to event.getEntity() because, despite the name, getEntity() will return a player. Also, that if-statement is useless because the event.getEntity().getKiller() will always return a player. I would do something along these lines:
    Code:java
    1. HashMap<String, Integer> killStreakMap = new HashMap<String, Integer
    2.  
    3. @EventHandler
    4. public void onPlayerDeath(PlayerDeathEvent event){
    5. Player player = event.getEntity();
    6. String playerName = player.getName();
    7. Player killer = player.getKiller();
    8. String killerName = killer.getName();
    9.  
    10. int count = killStreakMap.get(killerName);
    11. killStreakMap.remove(playerName);
    12. killStreakMap.remove(killerName);
    13. killStreakMap.put(killerName, count + 1);
    14. }
     
  3. Offline

    pudd1nG

    Thanks for the heads up on that. Appreciated :D

    Thanks for the quick reply, got it working
     
  4. Offline

    fireblast709

    You have earned yourself a NullPointerException at the line "killer.getName()"
     
  5. Offline

    pudd1nG

Thread Status:
Not open for further replies.

Share This Page