Solved EntityDamageByEntityEvent error when hitting animal

Discussion in 'Plugin Development' started by Abyssal, Nov 13, 2015.

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

    Abyssal

    When I hit a sheep I get this error: http://i.imgur.com/TSUti4k.png

    Code:
    Code:
        @EventHandler
        public void onHit(EntityDamageByEntityEvent e) {
            Player damager = (Player) e.getDamager();
            Player target = (Player) e.getEntity();
            if (target instanceof Player) {
                if (damager.getItemInHand().getType() == Material.BLAZE_ROD && damager.hasPermission("BanHammer.Execute")) {
                    if (ban.contains(damager.getName())) {
                        e.setCancelled(true);
                        target.kickPlayer("§cYou have been banned!");
                        target.setBanned(true);
                        Bukkit.getServer().broadcastMessage(
                                "§c" + damager.getName() + " §6banned §c" + target.getName() + " §6from the server!");
                        return;
                    }
                    if (kick.contains(damager.getName())) {
                        e.setCancelled(true);
                        target.kickPlayer("§cYou have been kicked!");
                        Bukkit.getServer().broadcastMessage(
                                "§c" + damager.getName() + " §6kicked §c" + target.getName() + " §6from the server");
                        return;
                    }
                    if (mute.contains(damager.getName())) {
                        e.setCancelled(true);
                        if (!muted.contains(target.getName())) {
                            muted.add(target.getName());
                            Bukkit.getServer()
                                    .broadcastMessage("§c" + damager.getName() + " §6muted §c" + target.getName() + "§6.");
                            this.getConfig().set("mutedplayers", muted);
                            saveConfig();
                            return;
                        } else {
                            e.setCancelled(true);
                            muted.remove(target.getName());
                            mutedplayer.remove(target.getName());
                            this.getConfig().set("mutedplayers", mutedplayer);
                            saveConfig();
                            Bukkit.getServer().broadcastMessage(
                                    "§c" + damager.getName() + " §aunmuted §c" + target.getName() + "§a.");
                        }
                    }
    
                }
            }
        }
     
    Last edited: Nov 13, 2015
  2. Offline

    Creeperzombi3

    [​IMG]
    What is on line 87?
    and
    You check for if the target is a player twice,
    Code:java
    1. if(target instanceof Player){ <----
    2. if (damager.getItemInHand().getType() == Material.BLAZE_ROD && damager.hasPermission("BanHammer.Execute")) {
    3. if (target instanceof Player) { <----
     
  3. Offline

    Abyssal

    @Creeperzombi3
    Thanks, I removed the double instanceof thing - same error though.

    Line 87 is Player target = (Player) e.getEntity();
     
  4. Offline

    Creeperzombi3

    Also, check if it is a player first, then cast to to a player.
    It should remove the error, and not run the event.
     
  5. Offline

    Abyssal

    Thank you! It works <3
     
Thread Status:
Not open for further replies.

Share This Page