@EventHandler(priority = EventPriority.NORMAL) public void onEntityTarget(EntityTargetEvent event) { // TODO: Don't use metadata! if (event.isCancelled() || !event.getEntity().hasMetadata("docile")) { return; } if (event.getReason() == EntityTargetEvent.TargetReason.CLOSEST_PLAYER) { event.setCancelled(true); } }
public void onEntityTarget(EntityTargetEvent event) { if (!arena.isRunning() || event.isCancelled()) return; if (arena.hasPet(event.getEntity())) { // Pets should never attack players if (event.getTarget() instanceof Player) { event.setCancelled(true); } } else if (monsters.getMonsters().contains(event.getEntity())) { // If the target is null, we probably forgot or the target died if (event.getTarget() == null) { event.setTarget(MAUtils.getClosestPlayer(plugin, event.getEntity(), arena)); } // Pets are untargetable else if (arena.hasPet(event.getTarget())) { event.setCancelled(true); } // So are non-arena players else if (event.getTarget() instanceof Player && !arena.inArena((Player) event.getTarget())) { event.setCancelled(true); } // And other mobs unless infighting is enabled else if (monsters.getMonsters().contains(event.getTarget()) && !monsterInfight) { event.setCancelled(true); } } }
if (event.isCancelled()) { return;