60 lines
2.2 KiB
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;
|
|
}
|
|
}
|
|
}
|
|
} |