Java Code Examples for org.bukkit.event.block.BlockPhysicsEvent#setCancelled()

The following examples show how to use org.bukkit.event.block.BlockPhysicsEvent#setCancelled() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: SignsFeature.java    From AreaShop with GNU General Public License v3.0 6 votes vote down vote up
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onIndirectSignBreak(BlockPhysicsEvent event) {
	// Check if the block is a sign
	if(!Materials.isSign(event.getBlock().getType())) {
		return;
	}

	// Check if still attached to a block
	Block attachedBlock = plugin.getBukkitHandler().getSignAttachedTo(event.getBlock());
	// TODO: signs cannot be placed on all blocks, improve this check to isSolid()?
	if (attachedBlock.getType() != Material.AIR) {
		return;
	}

	// Check if the sign is really the same as a saved rent
	RegionSign regionSign = SignsFeature.getSignByLocation(event.getBlock().getLocation());
	if(regionSign == null) {
		return;
	}

	// Remove the sign so that it does not fall on the floor as an item (next region update will place it back when possible)
	AreaShop.debug("onIndirectSignBreak: Removed block of sign for", regionSign.getRegion().getName(), "at", regionSign.getStringLocation());
	event.getBlock().setType(Material.AIR);
	event.setCancelled(true);
}
 
Example 2
Source File: SignShopListener.java    From Shopkeepers with GNU General Public License v3.0 5 votes vote down vote up
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
void onBlockPhysics(BlockPhysicsEvent event) {
	Block block = event.getBlock();
	if (cancelNextBlockPhysicsLoc != null && cancelNextBlockPhysicsLoc.equals(block.getLocation())) {
		event.setCancelled(true);
	} else {
		if (Utils.isSign(block.getType()) && plugin.getShopkeeperByBlock(block) != null) {
			event.setCancelled(true);
		}
	}
}
 
Example 3
Source File: BlockEventHandler.java    From GriefDefender with MIT License 4 votes vote down vote up
@EventHandler(priority = EventPriority.HIGHEST)
public void onBlockNotify(BlockPhysicsEvent event) {
    final Block source = NMSUtil.getInstance().getSourceBlock(event);
    if (source == null) {
        return;
    }

    final Location sourceLocation = source.getLocation();
    if (sourceLocation != null && sourceLocation.equals(event.getBlock().getLocation())) {
        return;
    }

    final GDPermissionUser user = CauseContextHelper.getEventUser(sourceLocation);
    final Location location = event.getBlock().getLocation();
    if (user == null) {
        return;
    }

    final World world = event.getBlock().getWorld();
    if (!GriefDefenderPlugin.getInstance().claimsEnabledForWorld(world.getUID())) {
        return;
    }

    final GDPlayerData playerData =  GriefDefenderPlugin.getInstance().dataStore.getOrCreatePlayerData(world, user.getUniqueId());
    final GDClaim sourceClaim = this.storage.getClaimAt(sourceLocation);
    final Vector3i pos = VecHelper.toVector3i(location);
    final GDClaim targetClaim = this.storage.getClaimAt(location);
    if (sourceClaim.isWilderness() && targetClaim.isWilderness()) {
        if (playerData != null) {
            playerData.eventResultCache = new EventResultCache(targetClaim, "block-notify", Tristate.TRUE);
        }

        return;
    } else if (!sourceClaim.isWilderness() && targetClaim.isWilderness()) {
        if (playerData != null) {
            playerData.eventResultCache = new EventResultCache(targetClaim, "block-notify", Tristate.TRUE);
        }

        return;
    } // Redstone sources can end up in target
    else if (sourceClaim.getUniqueId().equals(targetClaim.getUniqueId())) {
        if (playerData != null) {
            playerData.eventResultCache = new EventResultCache(targetClaim, "block-notify", Tristate.TRUE);
        }

        return;
    } else {
        if (playerData.eventResultCache != null && playerData.eventResultCache.checkEventResultCache(targetClaim) == Tristate.TRUE) {
            return;
        }
        // Needed to handle levers notifying doors to open etc.
        if (targetClaim.isUserTrusted(user, TrustTypes.ACCESSOR)) {
            if (playerData != null) {
                playerData.eventResultCache = new EventResultCache(targetClaim, "block-notify", Tristate.TRUE);
            }
            return;
        }
    }

    event.setCancelled(true);
}
 
Example 4
Source File: BlockPhysicsListener.java    From ProjectAres with GNU Affero General Public License v3.0 4 votes vote down vote up
@EventHandler
public void onBlockPhysics(BlockPhysicsEvent event) {
    if(!allowPhysics()) {
        event.setCancelled(true);
    }
}
 
Example 5
Source File: EnvironmentControlListener.java    From ProjectAres with GNU Affero General Public License v3.0 4 votes vote down vote up
@EventHandler(priority = EventPriority.HIGH)
public void physics(final BlockPhysicsEvent event) {
    event.setCancelled(true);
}
 
Example 6
Source File: GlobalProtectionListener.java    From DungeonsXL with GNU General Public License v3.0 4 votes vote down vote up
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST)
public void onBlockPhysics(BlockPhysicsEvent event) {
    if (DPortal.getByBlock(plugin, event.getBlock()) != null) {
        event.setCancelled(true);
    }
}
 
Example 7
Source File: BlockPhysics.java    From FunnyGuilds with Apache License 2.0 4 votes vote down vote up
@EventHandler
public void onPhysics(BlockPhysicsEvent event) {
    if (GuildHeartProtectionHandler.isGuildHeart(event.getBlock())) {
        event.setCancelled(true);
    }
}
 
Example 8
Source File: WorldFreeze.java    From CardinalPGM with MIT License 4 votes vote down vote up
@EventHandler
public void onBlockPysics(BlockPhysicsEvent event) {
    if (!match.isRunning()) {
        event.setCancelled(true);
    }
}
 
Example 9
Source File: BlockEventRegion.java    From CardinalPGM with MIT License 4 votes vote down vote up
@EventHandler
public void onBlockPhysics(BlockPhysicsEvent event) {
    if (region.contains(new BlockRegion(null, event.getBlock().getLocation().toVector())) && filter.evaluate(event.getBlock(), event).equals(FilterState.DENY)) {
        event.setCancelled(true);
    }
}