Java 类org.bukkit.event.hanging.HangingBreakEvent.RemoveCause 实例源码
项目:Breakpoint
文件:PlayerInteractListener.java
@EventHandler
public void onHangingBreak(HangingBreakEvent event)
{
if(event.isCancelled())
return;
if(event.getCause() == RemoveCause.ENTITY)
event.setCancelled(true);
}
项目:BedwarsRel
文件:HangingListener.java
@EventHandler(priority = EventPriority.HIGHEST)
public void onHangingBreak(HangingBreakEvent event) {
Hanging hanging = event.getEntity();
if (event.getCause().equals(RemoveCause.OBSTRUCTION)) {
hanging.getLocation().getBlock().breakNaturally();
event.setCancelled(true);
} else if (event.getCause().equals(RemoveCause.EXPLOSION)) {
event.setCancelled(true);
}
}
项目:Breakpoint
文件:PlayerInteractListener.java
@EventHandler
public void onHangingBreak(HangingBreakEvent event)
{
if(event.isCancelled())
return;
if(event.getCause() == RemoveCause.ENTITY)
event.setCancelled(true);
}
项目:MiniMiniGames
文件:WorldListener.java
@EventHandler
public void onHangingBreak(HangingBreakEvent event) {
if (event.getCause() == RemoveCause.ENTITY) {
HangingBreakByEntityEvent entityEvent = (HangingBreakByEntityEvent) event;
if (entityEvent.getRemover() instanceof Player) {
Player remover = (Player) entityEvent.getRemover();
if (remover.isOp() && remover.getGameMode() == GameMode.CREATIVE) {
return;
}
}
}
event.setCancelled(true);
}
项目:Factoid
文件:WorldListener.java
/**
* On hanging break.
*
* @param event the event
*/
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
public void onHangingBreak(HangingBreakEvent event) {
if (conf.isOverrideExplosions()) {
// Check for painting
if (event.getCause() == RemoveCause.EXPLOSION) {
Factoid.getThisPlugin().iLog().write("Cancel HangingBreak : " + event.getEntity() + ", Cause: " + event.getCause());
event.setCancelled(true);
}
}
}
项目:ZentrelaRPG
文件:EnvironmentManager.java
@EventHandler
public void onHangingBreak(HangingBreakEvent event) {
if (event.getCause() == RemoveCause.DEFAULT || event.getCause() == RemoveCause.EXPLOSION)
event.setCancelled(true);
}
项目:GriefPreventionPlus
文件:EntityEventHandler.java
@EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST)
public void onHangingBreak(HangingBreakEvent event)
{
//don't track in worlds where claims are not enabled
if(!GriefPrevention.instance.claimsEnabledForWorld(event.getEntity().getWorld())) return;
//FEATURE: claimed paintings are protected from breakage
//explosions don't destroy hangings
if(event.getCause() == RemoveCause.EXPLOSION)
{
event.setCancelled(true);
return;
}
//only allow players to break paintings, not anything else (like water and explosions)
if(!(event instanceof HangingBreakByEntityEvent))
{
event.setCancelled(true);
return;
}
HangingBreakByEntityEvent entityEvent = (HangingBreakByEntityEvent)event;
//who is removing it?
Entity remover = entityEvent.getRemover();
//again, making sure the breaker is a player
if(!(remover instanceof Player))
{
event.setCancelled(true);
return;
}
//if the player doesn't have build permission, don't allow the breakage
Player playerRemover = (Player)entityEvent.getRemover();
String noBuildReason = GriefPrevention.instance.allowBuild(playerRemover, event.getEntity().getLocation(), Material.AIR);
if(noBuildReason != null)
{
event.setCancelled(true);
GriefPrevention.sendMessage(playerRemover, TextMode.Err, noBuildReason);
}
}
项目:CraftoPlugin
文件:EntityProtectionBreakListener.java
@EventHandler
public void onHangingBreak(final HangingBreakEvent event) {
if (!this.module.canBeProtected(event.getEntity().getType(), event.getEntity().getLocation())) { return; }
Optional<EntityProtection> prot = this.module.cache.getByUniqueId(event.getEntity().getUniqueId());
if (!prot.isPresent()) { return; }
if (event.getCause().equals(RemoveCause.EXPLOSION) || event.getCause().equals(RemoveCause.OBSTRUCTION)
|| event.getCause().equals(RemoveCause.OBSTRUCTION) || event.getCause().equals(RemoveCause.DEFAULT)) { event.setCancelled(true); return; }
if (event instanceof HangingBreakByEntityEvent) {
Entity breaker = ((HangingBreakByEntityEvent)event).getRemover();
breaker = Utility.getRealDamager(breaker);
if (!(breaker instanceof Player)) { event.setCancelled(true); return; }
if (this.canInteract(event.getEntity(), (Player) breaker)) {
this.module.unprotect(prot.get());
}
else { debug(event.getEntity().getName() + " tried to break hanging!"); event.setCancelled(true); }
}
else {
// Check if leash ib roken
if (!event.getEntity().getType().equals(EntityType.LEASH_HITCH) || !event.getCause().equals(RemoveCause.ENTITY)) { return; }
debug("hangingBreak() called!");
// Leash broken so check if an protected entity was attached to it
final LeashHitch leash = (LeashHitch) event.getEntity();
Entity leashedEntity = null;
final HashSet<Integer> nearbyPlayers = new HashSet<>();
// Find owner & leashholder
for (final Entity entity : leash.getNearbyEntities(16, 16, 16)) {
if (entity instanceof LivingEntity && !(entity instanceof Player)) {
final LivingEntity living = (LivingEntity) entity;
if (living.isLeashed() && living.getLeashHolder().getUniqueId().equals(leash.getUniqueId())) {
debug("Leashholder of " + living.getType() + " is: " + living.getLeashHolder().getType());
leashedEntity = living;
}
}
else if (entity instanceof Player) {
final Optional<CraftoPlayer> player = CraftoPlayer.getPlayer(entity.getUniqueId());
if (!player.isPresent()) { warn("Player " + entity.getName() + " is missing a craftoplayer instance!"); continue; }
nearbyPlayers.add(player.get().getId());
debug("Found a player nearby with id: " + player.get().getId());
}
}
// If leashed was found check protectionse etc
if (leashedEntity != null) {
prot = this.module.cache.getByUniqueId(leashedEntity.getUniqueId());
if (!prot.isPresent()) { debug("failed to find protection for " + leashedEntity.getType()); return; }
debug("Found entityprotection with id: " + prot.get().getId());
if (nearbyPlayers.contains(prot.get().getOwnerId())) { debug("Owner is nearby! Returning..."); return; }
for (final int playerId : nearbyPlayers) {
final Optional<CraftoPlayer> otherPlayer = CraftoPlayer.getPlayer(playerId);
if (!otherPlayer.isPresent()) { continue; }
if (this.module.isAllowedToInteract(prot.get(), otherPlayer.get())) { debug("WhitelistedPlayer nearby! Returning..."); return; }
}
event.setCancelled(true);
}
}
}
项目:BedrockAPI
文件:HangingBreakByEntityEvent.java
public HangingBreakByEntityEvent(Hanging hanging, Entity remover) {
super(hanging, RemoveCause.ENTITY);
}
项目:BedrockAPI
文件:HangingBreakEvent.java
public HangingBreakEvent(Hanging hanging, HangingBreakEvent.RemoveCause cause) {
super(hanging);
}
项目:BedrockAPI
文件:HangingBreakEvent.java
public HangingBreakEvent.RemoveCause getCause() {
return null;
}