How to find out if a killer was a player + if they are a player, their name.

Discussion in 'Plugin Development' started by Relentless_x, Apr 9, 2011.

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

    Relentless_x

    I've tired many different things and all of them are 100% useless, how can i find out if the hting that killed a player is another player, and if they are a player how can you get their name? This was easy on hey0, on bukkit ... not so much...
    This is what i have atm in the class that extends EntitListener:

    Code:
        public void onEntityDamage(EntityDamageEvent event) {
            if (!(event.getEntity() instanceof Player)) {
                return;
            }
            if (!(event instanceof EntityDamageByEntityEvent)) {
                return;
            }
            if (!(((EntityDamageByEntityEvent)event).getDamager() instanceof Player)) {
                return;
            }
            Player atk = (Player)((EntityDamageByEntityEvent)event).getDamager();
            Player def = (Player)event.getEntity();
            String attacker = atk.getName();
            String defender = def.getName();
    
            if (def.getHealth() - event.getDamage() >= 0) {
                return;
            }
            if (playerListener.isTarget(def) && playerListener.isBHunter(attacker)) {
                inventHandler.getItems(def);
                inventHandler.giveItem(atk);
                playerListener.removeTarget(defender);
                Bukkit.getServer().broadcastMessage(Color.yellow + "The target " + defender + " has been killed by " + attacker + "!");
            }
        }
    Thanks in advance..
     
  2. Offline

    Carnes

    This looks like it should work for you. It isn't 100% complete for what you want, but it is a very good start. You just need to get the player's name and it's done.

     
  3. Offline

    Relentless_x

    ^ that right there is same as my code but with mine edited a bit, no help but thanks for trying :)
     
  4. Offline

    Carnes

    Can you post your onEntityDamage function? Maybe i can help with it. I can put it into an empty plugin and work on it a bit when i get stuck on my plugin (which happens a lot).
     
  5. Offline

    Relentless_x

    i already have, look at first post
     
  6. Offline

    Carnes

    Hah, i'm blind. I tried it out and with a few changes it worked. A Screen shot is attached.
    Code:
    public void onEntityDamage(EntityDamageEvent event) {
        if (!(event.getEntity() instanceof Player)) {
            return;
        }
        if (!(event instanceof EntityDamageByEntityEvent)) {
            //((Player) event.getEntity()).sendMessage("Not EntityDamageByEntityEvent");
            return;
        }
        if (!(((EntityDamageByEntityEvent)event).getDamager() instanceof Player)) {
            //((Player) event.getEntity()).sendMessage("Not EntityDamageByEntityEvent.getDamager = Player");
            return;
        }
        Player atk = (Player)((EntityDamageByEntityEvent)event).getDamager();
        Player def = (Player)event.getEntity();
        String attacker = atk.getName();
        String defender = def.getName();
    
        if (event.getDamage() - def.getHealth() < 0) {
            ((Player) event.getEntity()).sendMessage("Not enough to kill: "+(event.getDamage() - def.getHealth()));
            return;
        }
        //if (playerListener.isTarget(def) && playerListener.isBHunter(attacker)) {
            //inventHandler.getItems(def);
            //inventHandler.giveItem(atk);
            //playerListener.removeTarget(defender);
        atk.sendMessage("You killed "+defender);
        def.sendMessage("You were killed by"+attacker);
            Bukkit.getServer().broadcastMessage(attacker+" killed "+defender);
        }
    }
    I didn't clean up my code, but you can see the few changes i made pretty easily.
     

    Attached Files:

    homobobo likes this.
  7. Offline

    Relentless_x

    I'll try it out when i get home! thanks soo much :)
     
  8. Offline

    homobobo

    Thanks alot carnes, i was stuck on the same thing.
     
Thread Status:
Not open for further replies.

Share This Page