mirror of
https://github.com/EngineHub/WorldGuard.git
synced 2025-02-25 16:51:51 +01:00
Make liquid flow checking for regions optional.
This commit is contained in:
parent
ef56a32f00
commit
24f72cb07f
@ -130,6 +130,7 @@ public class WorldConfiguration {
|
|||||||
public boolean disableMobDamage;
|
public boolean disableMobDamage;
|
||||||
public boolean useRegions;
|
public boolean useRegions;
|
||||||
public boolean highFreqFlags;
|
public boolean highFreqFlags;
|
||||||
|
public boolean checkLiquidFlow;
|
||||||
public int regionWand;
|
public int regionWand;
|
||||||
public Set<EntityType> blockCreatureSpawn;
|
public Set<EntityType> blockCreatureSpawn;
|
||||||
public boolean allowTamedSpawns;
|
public boolean allowTamedSpawns;
|
||||||
@ -415,6 +416,7 @@ private void loadConfiguration() {
|
|||||||
regionInvinciblityRemovesMobs = getBoolean("regions.invincibility-removes-mobs", false);
|
regionInvinciblityRemovesMobs = getBoolean("regions.invincibility-removes-mobs", false);
|
||||||
explosionFlagCancellation = getBoolean("regions.explosion-flags-block-entity-damage", true);
|
explosionFlagCancellation = getBoolean("regions.explosion-flags-block-entity-damage", true);
|
||||||
highFreqFlags = getBoolean("regions.high-frequency-flags", false);
|
highFreqFlags = getBoolean("regions.high-frequency-flags", false);
|
||||||
|
checkLiquidFlow = getBoolean("regions.protect-against-liquid-flow", false);
|
||||||
regionWand = getInt("regions.wand", 334);
|
regionWand = getInt("regions.wand", 334);
|
||||||
maxClaimVolume = getInt("regions.max-claim-volume", 30000);
|
maxClaimVolume = getInt("regions.max-claim-volume", 30000);
|
||||||
claimOnlyInsideExistingRegions = getBoolean("regions.claim-only-inside-existing-regions", false);
|
claimOnlyInsideExistingRegions = getBoolean("regions.claim-only-inside-existing-regions", false);
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
package com.sk89q.worldguard.bukkit.listener;
|
package com.sk89q.worldguard.bukkit.listener;
|
||||||
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
|
import com.sk89q.worldguard.bukkit.WorldConfiguration;
|
||||||
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
|
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
|
||||||
import com.sk89q.worldguard.bukkit.cause.Cause;
|
import com.sk89q.worldguard.bukkit.cause.Cause;
|
||||||
import com.sk89q.worldguard.bukkit.event.block.BreakBlockEvent;
|
import com.sk89q.worldguard.bukkit.event.block.BreakBlockEvent;
|
||||||
@ -51,7 +52,6 @@
|
|||||||
import org.bukkit.event.Event;
|
import org.bukkit.event.Event;
|
||||||
import org.bukkit.event.Event.Result;
|
import org.bukkit.event.Event.Result;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
|
||||||
import org.bukkit.event.block.Action;
|
import org.bukkit.event.block.Action;
|
||||||
import org.bukkit.event.block.BlockBreakEvent;
|
import org.bukkit.event.block.BlockBreakEvent;
|
||||||
import org.bukkit.event.block.BlockBurnEvent;
|
import org.bukkit.event.block.BlockBurnEvent;
|
||||||
@ -108,7 +108,7 @@
|
|||||||
import static com.sk89q.worldguard.bukkit.util.Materials.isBlockModifiedOnClick;
|
import static com.sk89q.worldguard.bukkit.util.Materials.isBlockModifiedOnClick;
|
||||||
import static com.sk89q.worldguard.bukkit.util.Materials.isItemAppliedToBlock;
|
import static com.sk89q.worldguard.bukkit.util.Materials.isItemAppliedToBlock;
|
||||||
|
|
||||||
public class EventAbstractionListener implements Listener {
|
public class EventAbstractionListener extends AbstractListener {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Abstract {@link BlockFromToEvent}s into break and place events.
|
* Abstract {@link BlockFromToEvent}s into break and place events.
|
||||||
@ -116,14 +116,17 @@ public class EventAbstractionListener implements Listener {
|
|||||||
*/
|
*/
|
||||||
public static final boolean ABSTRACT_FROM_TO_EVENTS = false;
|
public static final boolean ABSTRACT_FROM_TO_EVENTS = false;
|
||||||
|
|
||||||
private final WorldGuardPlugin plugin;
|
/**
|
||||||
|
* Construct the listener.
|
||||||
|
*
|
||||||
|
* @param plugin an instance of WorldGuardPlugin
|
||||||
|
*/
|
||||||
public EventAbstractionListener(WorldGuardPlugin plugin) {
|
public EventAbstractionListener(WorldGuardPlugin plugin) {
|
||||||
this.plugin = plugin;
|
super(plugin);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void registerEvents() {
|
public void registerEvents() {
|
||||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
getPlugin().getServer().getPluginManager().registerEvents(this, getPlugin());
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
@ -382,6 +385,14 @@ public void onPlayerBucketFill(PlayerBucketFillEvent event) {
|
|||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onBlockFromTo(BlockFromToEvent event) {
|
public void onBlockFromTo(BlockFromToEvent event) {
|
||||||
|
WorldConfiguration config = getWorldConfig(event.getBlock().getWorld());
|
||||||
|
|
||||||
|
// This only applies to regions but nothing else cares about high
|
||||||
|
// frequency events at the moment
|
||||||
|
if (!config.useRegions || (!config.highFreqFlags && !config.checkLiquidFlow)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
Block from = event.getBlock();
|
Block from = event.getBlock();
|
||||||
Block to = event.getToBlock();
|
Block to = event.getToBlock();
|
||||||
Material fromType = from.getType();
|
Material fromType = from.getType();
|
||||||
|
@ -113,6 +113,11 @@ public void onPlaceBlock(final PlaceBlockEvent event) {
|
|||||||
final RegionQuery query = getPlugin().getRegionContainer().createQuery();
|
final RegionQuery query = getPlugin().getRegionContainer().createQuery();
|
||||||
final RegionAssociable associable = createRegionAssociable(event.getCause());
|
final RegionAssociable associable = createRegionAssociable(event.getCause());
|
||||||
|
|
||||||
|
// Don't check liquid flow unless it's enabled
|
||||||
|
if (Materials.isLiquid(type) && !getWorldConfig(event.getWorld()).checkLiquidFlow) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
event.filter(new Predicate<Location>() {
|
event.filter(new Predicate<Location>() {
|
||||||
@Override
|
@Override
|
||||||
public boolean apply(Location target) {
|
public boolean apply(Location target) {
|
||||||
|
Loading…
Reference in New Issue
Block a user