ResExtras/src/main/java/cn/citycraft/ResExtras/flags/animalkilling.java

52 lines
1.7 KiB
Java

package cn.citycraft.ResExtras.flags;
import org.bukkit.ChatColor;
import org.bukkit.entity.Animals;
import org.bukkit.entity.Arrow;
import org.bukkit.entity.Entity;
import org.bukkit.entity.IronGolem;
import org.bukkit.entity.Player;
import org.bukkit.entity.Snowman;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import com.bekvon.bukkit.residence.Residence;
import com.bekvon.bukkit.residence.protection.ClaimedResidence;
public class animalkilling implements Listener {
public Player cause;
@EventHandler(priority = EventPriority.NORMAL)
public void AnimalKilling(final EntityDamageByEntityEvent event) {
if (event.isCancelled()) {
return;
}
final Entity damager = event.getDamager();
if ((!(damager instanceof Arrow)) && (!(damager instanceof Player))) {
return;
}
if ((damager instanceof Arrow) && (!(((Arrow) damager).getShooter() instanceof Player))) {
return;
} else if (damager instanceof Player) {
cause = (Player) damager;
} else {
cause = (Player) ((Arrow) damager).getShooter();
}
final boolean resadmin = Residence.isResAdminOn(cause);
if (resadmin) {
return;
}
final Entity entity = event.getEntity();
final ClaimedResidence res = Residence.getResidenceManager().getByLoc(entity.getLocation());
if (res != null && !res.getPermissions().playerHas(cause.getName().toString(), "animalkilling", true)) {
if ((entity instanceof Animals) || (entity instanceof IronGolem) || (entity instanceof Snowman)) {
cause.sendMessage(ChatColor.RED + "You cannot kill animals here!");
event.setCancelled(true);
}
}
}
}