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

60 lines
2.2 KiB
Java

package cn.citycraft.ResExtras.flags;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.entity.Boat;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Minecart;
import org.bukkit.entity.Monster;
import org.bukkit.entity.Player;
import org.bukkit.entity.Vehicle;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.vehicle.VehicleDestroyEvent;
import com.bekvon.bukkit.residence.Residence;
import com.bekvon.bukkit.residence.protection.ClaimedResidence;
import cn.citycraft.ResExtras.ResExtras;
public class VehicleProtect implements Listener {
ChatColor derpa = ChatColor.RED;
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
public void onVehicleDestroy(final VehicleDestroyEvent event) {
try {
final Location loc = event.getVehicle().getLocation();
final Entity attacker = event.getAttacker();
final Vehicle vehicle = event.getVehicle();
final Player player = (Player) attacker;
final ClaimedResidence res = Residence.getResidenceManager().getByLoc(loc);
final boolean resadmin = Residence.isResAdminOn(player);
final String playername = player.getName();
if (res != null) {
if (res.getPermissions().playerHas(playername, "vehicleprotect", false) && !resadmin && (vehicle instanceof Minecart || vehicle instanceof Boat)
&& (attacker instanceof Player || attacker instanceof Monster)) {
ResExtras.sendMessage(player, "VehicleDestroy");
event.setCancelled(true);
return;
}
}
} catch (final Exception ex) {
}
}
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
public void onVehicleDestroyEntity(final VehicleDestroyEvent event) {
final Location loc = event.getVehicle().getLocation();
final Entity attacker = event.getAttacker();
final Vehicle vehicle = event.getVehicle();
final ClaimedResidence res = Residence.getResidenceManager().getByLoc(loc);
if (res != null) {
if (res.getPermissions().has("vehicleprotect", false) && (vehicle instanceof Minecart || vehicle instanceof Boat) && attacker instanceof Monster) {
event.setCancelled(true);
return;
}
}
}
}