onDeath getPlayer?

Discussion in 'Plugin Development' started by lx3krypticx, May 3, 2012.

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

    lx3krypticx

    Hey I'm making a ondeath plugin and apparently there is no getPlayer() any event that contains getPlayer on death type thing?

    Code:
    package ondeath;
     
    import org.bukkit.ChatColor;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.BlockBreakEvent;
     
    public class onDeathListener implements Listener {
     
        @EventHandler
        public void restrictBlockBreaks(onDeath event){
            event.getPlayer().sendMessage
        }
    }
     
  2. Offline

    d33k40

    PlayerDeathEvent
    Code:
    package ondeath;
     
    import org.bukkit.ChatColor;
    import org.bukkit.event.Listener;
    import org.bukkit.event.entity.PlayerDeathEvent;
     
    public class onDeathListener implements Listener {
     
        @EventHandler
        public void restrictBlockBreaks(PlayerDeathEvent event){
            Player player = event.getPlayer();
            player.sendMessage(ChatColor.DARK_GREEN + "message");
            //code ...
        }
    }
     
  3. Offline

    lx3krypticx

    getPlayer has red under it and says add cast to 'event'
     
  4. Offline

    d33k40

    ok is entity.
     
  5. Offline

    lx3krypticx

  6. Offline

    Craftiii4

    If you want to know when a player has died, use a player listener and this
    Code:java
    1.  
    2. @EventHandler
    3. public void onPlayerDeath(PlayerDeathEvent event) {
    4. Player player = event.getEntity();
    5. }
    6.  
     
  7. Offline

    lx3krypticx

    Alright that's what he meant :p
     
  8. Offline

    d33k40

    exactly that
     
  9. Offline

    Craftiii4

    examples:
    Code:java
    1.  
    2. @EventHandler
    3. public void onPlayerDeath(PlayerDeathEvent event) {
    4. Player player = event.getEntity();
    5. if (event.getEntity().getLastDamageCause() instanceof EntityDamageByEntityEvent) {
    6. EntityDamageByEntityEvent nEvent = (EntityDamageByEntityEvent) event
    7. .getEntity().getLastDamageCause();
    8.  
    9. if ((nEvent.getDamager() instanceof Creeper)) {
    10.  
    11. //then a creeper killed the player :P
    12.  
    13. }
    14.  
    15. if ((nEvent.getDamager() instanceof Arrow)) {
    16.  
    17. Arrow arrow = (Arrow) nEvent.getDamager();
    18.  
    19. if (arrow.getShooter() instanceof Skeleton) {
    20. //shot by an arrow by a skeletpn
    21. }
    22. if (arrow.getShooter() instanceof Player) {
    23. //shot by an arrow by a player
    24. }
    25.  
    26. }
    27.  
    28. } else {
    29.  
    30. DamageCause cause = event.getEntity().getLastDamageCause()
    31. .getCause();
    32.  
    33. if (cause.toString().equals("LAVA")) {
    34.  
    35. //lava killed him
    36.  
    37. }
    38.  
    39. if (cause.toString().equals("DROWNING")) {
    40.  
    41. //he drowned
    42.  
    43. }
    44.  
    45. }
    46. }
    47.  


    Hope this helped? XD
     
    r0306 likes this.
  10. Offline

    lx3krypticx

    Yes thanks ;P
     
  11. Offline

    Craftiii4

    Ok, a few things to look out for then ^^, Spider will take into account both cave spider and spider (so check thats it not a cavespider when using instantof spider) and same goes for zombie and pigzombie ^^.

    Happy i could help :D

    EDIT: list of all possible none-entity deaths that i know of XD

    MAGIC - (potions etc)
    SUICIDE
    CONTACT - (cactus etc)
    VOID
    DROWNING
    FIRE
    FALL
    LAVA
     
Thread Status:
Not open for further replies.

Share This Page