Solved Find who killed a player, and who they killed

Discussion in 'Plugin Development' started by FireBreath14, Feb 22, 2013.

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

    FireBreath14

    As the title says, I want to find who shot who with a snowball, and who they killed. Heres what i have so far. I have the killer, i just don't know how to find the victim

    Code:
    package *name censored lol*;
     
    import org.bukkit.entity.Player;
    import org.bukkit.event.Listener;
    import org.bukkit.event.EventHandler;
    import org.bukkit.ChatColor;
    import org.bukkit.event.block.Action;
    import org.bukkit.event.entity.ProjectileHitEvent;
    import org.bukkit.event.player.PlayerInteractEvent;
     
    public class OnHit implements Listener{
        public void onhit(ProjectileHitEvent event){
            Player killer = (Player)event.getEntity().getShooter(); //get who shot the snowball
            Player victim = //HELP HERE :)
        }
    }
    
    thanks!
     
  2. Offline

    david_rosales

    event.getEntity()
     
  3. Offline

    Deleted user

    Wrong event silly! :p

    If you want to know when the player is killed you use the EntityDeathEvent().


    Code:java
    1.  
    2. @EventHandler
    3. public void onHit(EntityDeathEvent event) {
    4. if (!(event.getEntity() instanceof Player)) {
    5. return;
    6. }
    7.  
    8. Player player = (Player) event.getEntity();
    9.  
    10. if (!(player.getKiller() instanceof Snowball)) {
    11. return;
    12. }
    13.  
    14. Snowball Snowball = (Snowball) player.getKiller();
    15.  
    16. if (!(Snowball.getShooter() instanceof Player)) {
    17. return;
    18. }
    19.  
    20. Player shooter = (Player) Snowball.getShooter();
    21.  
    22. }
    23.  



    Where player is your victim and shooter is your killer. Code is pretty self explanatory, if you're confused on anything let me know and I'll explain it to you the best I can!
     
    FireBreath14 likes this.
  4. Offline

    vemacs

    Why don't you have an @EventHandler?
     
  5. Offline

    david_rosales

    event.getEntity()

    So it would be
    Player victim = (Player) event.getEntity();

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 31, 2016
  6. Offline

    mastermustard

    Code:
        @EventHandler
        public void onAttackEvent(EntityDamageEvent event){
            Entity entity = event.getEntity();
       
          if(entity instanceof Player){
            if(event instanceof EntityDamageByEntityEvent){
            if(event instanceof ProjectileHitEvent){
              //damaged entity
                EntityDamageByEntityEvent cod = (EntityDamageByEntityEvent)event;
                if(cod.getDamager() instanceof Player){
                    Player damager = (Player)cod.getDamager();
                    //damager
     
  7. Offline

    Deleted user

    FireBreath14

    Updated my original post, it's the correct one haha. I'm a little high so sorry pasted the wrong one.


    Edit:

    Re-updated, didn't realize you said Snowballs, my code was for Arrows.
     
  8. Offline

    FireBreath14

    Eballer48 ok so ur code, its for a entitydeathevent? got it. and it looks helpful so thanks xD!

    yess all the required vars. thanks soooo much Eballer48!

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 31, 2016
  9. Offline

    Deleted user

    No problem haha! Ever need any help just tag me!
     
Thread Status:
Not open for further replies.

Share This Page