Removed wilderness bucket ban for survival worlds.

It generates a lot of complaints.  /RestoreNature can be used manually
to quickly clean up any above-sea-level water or lava.
This commit is contained in:
ryanhamshire 2014-11-10 19:08:11 -08:00
parent 2c75e4258f
commit b80e1cc2cd
5 changed files with 12 additions and 29 deletions

View File

@ -691,9 +691,9 @@ public class BlockEventHandler implements Listener
Claim fromClaim = this.dataStore.getClaimAt(fromBlock.getLocation(), false, null);
Claim toClaim = this.dataStore.getClaimAt(toBlock.getLocation(), false, fromClaim);
//into wilderness is NOT OK when surface buckets are limited
//into wilderness is NOT OK in creative mode worlds
Material materialDispensed = dispenseEvent.getItem().getType();
if((materialDispensed == Material.WATER_BUCKET || materialDispensed == Material.LAVA_BUCKET) && GriefPrevention.instance.config_blockWildernessWaterBuckets && GriefPrevention.instance.claimsEnabledForWorld(fromBlock.getWorld()) && toClaim == null)
if((materialDispensed == Material.WATER_BUCKET || materialDispensed == Material.LAVA_BUCKET) && GriefPrevention.instance.creativeRulesApply(dispenseEvent.getBlock().getLocation()) && toClaim == null)
{
dispenseEvent.setCancelled(true);
return;

View File

@ -107,7 +107,7 @@ public class Claim
return true;
}
//removes any fluids above sea level in a claim
//removes any lava above sea level in a claim
//exclusionClaim is another claim indicating an sub-area to be excluded from this operation
//it may be null
public void removeSurfaceFluids(Claim exclusionClaim)
@ -118,8 +118,8 @@ public class Claim
//don't do it for very large claims
if(this.getArea() > 10000) return;
//don't do it when surface fluids are allowed to be dumped
if(!GriefPrevention.instance.config_blockWildernessWaterBuckets) return;
//only in creative mode worlds
if(!GriefPrevention.instance.creativeRulesApply(this.lesserBoundaryCorner)) return;
Location lesser = this.getLesserBoundaryCorner();
Location greater = this.getGreaterBoundaryCorner();
@ -141,7 +141,7 @@ public class Claim
Block block = lesser.getWorld().getBlockAt(x, y, z);
if(exclusionClaim != null && exclusionClaim.contains(block.getLocation(), true, false)) continue;
if(block.getType() == Material.STATIONARY_WATER || block.getType() == Material.STATIONARY_LAVA || block.getType() == Material.LAVA || block.getType() == Material.WATER)
if(block.getType() == Material.STATIONARY_LAVA || block.getType() == Material.LAVA)
{
block.setType(Material.AIR);
}
@ -150,7 +150,7 @@ public class Claim
}
}
//determines whether or not a claim has surface fluids (lots of water blocks, or any lava blocks)
//determines whether or not a claim has surface lava
//used to warn players when they abandon their claims about automatic fluid cleanup
boolean hasSurfaceFluids()
{
@ -165,7 +165,6 @@ public class Claim
//respect sea level in normal worlds
if(lesser.getWorld().getEnvironment() == Environment.NORMAL) seaLevel = GriefPrevention.instance.getSeaLevel(lesser.getWorld());
int waterCount = 0;
for(int x = lesser.getBlockX(); x <= greater.getBlockX(); x++)
{
for(int z = lesser.getBlockZ(); z <= greater.getBlockZ(); z++)
@ -175,13 +174,7 @@ public class Claim
//dodge the exclusion claim
Block block = lesser.getWorld().getBlockAt(x, y, z);
if(block.getType() == Material.STATIONARY_WATER || block.getType() == Material.WATER)
{
waterCount++;
if(waterCount > 10) return true;
}
else if(block.getType() == Material.STATIONARY_LAVA || block.getType() == Material.LAVA)
if(block.getType() == Material.STATIONARY_LAVA || block.getType() == Material.LAVA)
{
return true;
}

View File

@ -1148,7 +1148,7 @@ public abstract class DataStore
this.addDefault(defaults, Messages.ClaimTooSmallForEntities, "This claim isn't big enough for that. Try enlarging it.", null);
this.addDefault(defaults, Messages.TooManyEntitiesInClaim, "This claim has too many entities already. Try enlarging the claim or removing some animals, monsters, paintings, or minecarts.", null);
this.addDefault(defaults, Messages.YouHaveNoClaims, "You don't have any land claims.", null);
this.addDefault(defaults, Messages.ConfirmFluidRemoval, "Abandoning this claim will remove all your lava and water. If you're sure, use /AbandonClaim again.", null);
this.addDefault(defaults, Messages.ConfirmFluidRemoval, "Abandoning this claim will remove lava inside the claim. If you're sure, use /AbandonClaim again.", null);
this.addDefault(defaults, Messages.AutoBanNotify, "Auto-banned {0}({1}). See logs for details.", null);
this.addDefault(defaults, Messages.AdjustGroupBlocksSuccess, "Adjusted bonus claim blocks for players with the {0} permission by {1}. New total: {2}.", "0: permission; 1: adjustment amount; 2: new total bonus");
this.addDefault(defaults, Messages.InvalidPermissionID, "Please specify a player name, or a permission in [brackets].", null);

View File

@ -123,7 +123,6 @@ public class GriefPrevention extends JavaPlugin
public boolean config_blockSurfaceCreeperExplosions; //whether creeper explosions near or above the surface destroy blocks
public boolean config_blockSurfaceOtherExplosions; //whether non-creeper explosions near or above the surface destroy blocks
public boolean config_blockWildernessWaterBuckets; //whether players can dump water buckets outside their claims
public boolean config_blockSkyTrees; //whether players can build trees on platforms in the sky
public boolean config_fireSpreads; //whether fire spreads outside of claims
@ -496,7 +495,6 @@ public class GriefPrevention extends JavaPlugin
this.config_blockSurfaceCreeperExplosions = config.getBoolean("GriefPrevention.BlockSurfaceCreeperExplosions", true);
this.config_blockSurfaceOtherExplosions = config.getBoolean("GriefPrevention.BlockSurfaceOtherExplosions", true);
this.config_blockWildernessWaterBuckets = config.getBoolean("GriefPrevention.LimitSurfaceWaterBuckets", true);
this.config_blockSkyTrees = config.getBoolean("GriefPrevention.LimitSkyTrees", true);
this.config_limitTreeGrowth = config.getBoolean("GriefPrevention.LimitTreeGrowth", false);
this.config_pistonsInClaimsOnly = config.getBoolean("GriefPrevention.LimitPistonsToLandClaims", true);
@ -747,7 +745,6 @@ public class GriefPrevention extends JavaPlugin
outConfig.set("GriefPrevention.BlockSurfaceCreeperExplosions", this.config_blockSurfaceCreeperExplosions);
outConfig.set("GriefPrevention.BlockSurfaceOtherExplosions", this.config_blockSurfaceOtherExplosions);
outConfig.set("GriefPrevention.LimitSurfaceWaterBuckets", this.config_blockWildernessWaterBuckets);
outConfig.set("GriefPrevention.LimitSkyTrees", this.config_blockSkyTrees);
outConfig.set("GriefPrevention.LimitTreeGrowth", this.config_limitTreeGrowth);
outConfig.set("GriefPrevention.LimitPistonsToLandClaims", this.config_pistonsInClaimsOnly);
@ -2006,13 +2003,6 @@ public class GriefPrevention extends JavaPlugin
return true;
}
//if the claim has lots of surface water or some surface lava, warn the player it will be cleaned up
else if(!playerData.warnedAboutMajorDeletion && claim.hasSurfaceFluids())
{
GriefPrevention.sendMessage(player, TextMode.Warn, Messages.ConfirmFluidRemoval);
playerData.warnedAboutMajorDeletion = true;
}
else
{
//delete it

View File

@ -1026,12 +1026,12 @@ class PlayerEventHandler implements Listener
minLavaDistance = 3;
}
//otherwise no wilderness dumping (unless underground) in worlds where claims are enabled
else if(GriefPrevention.instance.claimsEnabledForWorld(block.getWorld()))
//otherwise no wilderness dumping in creative mode worlds
else if(GriefPrevention.instance.creativeRulesApply(block.getLocation()))
{
if(block.getY() >= GriefPrevention.instance.getSeaLevel(block.getWorld()) - 5 && !player.hasPermission("griefprevention.lava"))
{
if(bucketEvent.getBucket() == Material.LAVA_BUCKET || GriefPrevention.instance.config_blockWildernessWaterBuckets)
if(bucketEvent.getBucket() == Material.LAVA_BUCKET)
{
GriefPrevention.sendMessage(player, TextMode.Err, Messages.NoWildernessBuckets);
bucketEvent.setCancelled(true);