Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8192a1962a | ||
|
|
80df9c6aa4 | ||
|
|
8073089da4 | ||
|
|
23e7d4a8bb | ||
|
|
0e1e92df13 | ||
|
|
d13f0b9191 | ||
|
|
aa2bffbd00 | ||
|
|
a456d67528 | ||
|
|
95f074342c | ||
|
|
74016bf93e | ||
|
|
3f8bac582c | ||
|
|
6b57e58d63 | ||
|
|
19aa20537d | ||
|
|
cf31df35ec | ||
|
|
6d39ce7240 | ||
|
|
0f3c1b94d7 | ||
|
|
13cc6736e2 |
No files matched your search
@@ -1,3 +1,19 @@
|
||||
1.7
|
||||
- Updated for v0.2.6_02 and hMod b129.
|
||||
- Added option to prevent water from damaging particular blocks
|
||||
(Redstone wire, Minecart tracks, etc.). See disable-water-damage-blocks.
|
||||
- /reload WorldGuard should now reload WorldGuard's configuration.
|
||||
- Added wg-invincible and wg-amphibious groups that let you give certain
|
||||
players invincibility or underwater breathing.
|
||||
- Added the ability to disable fall, water, lava, and/or fire damage.
|
||||
- Water/lava bucket blocking should now be more reliable.
|
||||
- Added /stack (alias /;) commands to stack items in your inventory into
|
||||
piles up to 64 items in size. Even unstackable items like signs can be
|
||||
stacked.
|
||||
- /god mode should now let you gain health.
|
||||
- /god mode should now work more reliably.
|
||||
- Caught an error message for when the configuration file does not exist.
|
||||
|
||||
1.6
|
||||
- Added spawn protection that prevents damage when a player spawns.
|
||||
- Added login protection that prevents damage when a player joins.
|
||||
|
||||
+24
-3
@@ -13,20 +13,20 @@ use or not:
|
||||
- Block TNT explosions.
|
||||
- Block lighters from setting fires.
|
||||
- Block all fires.
|
||||
- Disable fall damage, lava damage, fire damage, and/or water damage.
|
||||
- Allow fire but prevent it from burning certain blocks.
|
||||
- Prevent lava from starting fires.
|
||||
- Restrict lava spreading to only some block types.
|
||||
- Simulate classic-esque water by letting water infinitely expand in
|
||||
area (only if there is a block underneath).
|
||||
- Prevent water from destroying blocks like Redstone wire and flowers.
|
||||
- Simulate the function of the sponge from Minecraft Classic.
|
||||
- Notify admins, block, log, kick or ban for the use of certain block types
|
||||
or items.
|
||||
- Temporarily stop fire globally with some commands.
|
||||
- Destroy tools on drop to alleviate the durability cheat.
|
||||
- OR just fix the durability bug. *Requires special version of hMod
|
||||
- Prevent gravel and sand from falling. *Requires special version of hMod
|
||||
- Prevent gravel and sand from falling.
|
||||
- Allow portal blocks to be placed anywhere.
|
||||
*Requires special version of hMod
|
||||
|
||||
hMod is required as WorldGuard is a plugin for hMod.
|
||||
|
||||
@@ -112,6 +112,10 @@ unsupported by your version of hMod.
|
||||
to disable this feature. Enabling disable-all-fire-spread will
|
||||
override this function.
|
||||
|
||||
- disable-water-damage-blocks (no default)
|
||||
List of blocks that should not be destroyed by water (Redstone wire,
|
||||
minecart tracks, flowers, etc.).
|
||||
|
||||
- item-drop-blacklist (no default)
|
||||
List of block names/IDs to destroy on drop. This can alleviate the
|
||||
durability cheat that allows you to drop your tools to fix their
|
||||
@@ -130,6 +134,12 @@ unsupported by your version of hMod.
|
||||
Kick players when they die (and respawn). This is to work around the
|
||||
issues of invisible players when players die.
|
||||
|
||||
- disable-fall-damage (def. false)
|
||||
- disable-lava-damage (def. false)
|
||||
- disable-fire-damage (def. false)
|
||||
- disable-water-damage (def. false)
|
||||
Disable various types of damage.
|
||||
|
||||
- log-console (def. true)
|
||||
For blacklist log actions, print to console.
|
||||
|
||||
@@ -217,6 +227,17 @@ certain rules apply to only some groups.
|
||||
Edit the included worldguard-blacklist.txt file and follow the
|
||||
instructions inside. The file comes with the download for WorldGuard.
|
||||
|
||||
Other Features
|
||||
--------------
|
||||
|
||||
To give someone invincibility every time s/he joins the server, create
|
||||
a wg-invincible group and add the group to the user or have the user's
|
||||
group inherit this group.
|
||||
|
||||
To give someone the ability to breathe under water, create
|
||||
a wg-amphibious group and add the group to the user or have the user's
|
||||
group inherit this group.
|
||||
|
||||
Thanks
|
||||
------
|
||||
|
||||
|
||||
+1
-1
@@ -1,2 +1,2 @@
|
||||
Manifest-Version: 1.0
|
||||
WorldGuard-Version: 1.6
|
||||
WorldGuard-Version: 1.7
|
||||
@@ -0,0 +1,64 @@
|
||||
// $Id$
|
||||
/*
|
||||
* WorldGuard
|
||||
* Copyright (C) 2010 sk89q <http://www.sk89q.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import java.util.logging.Logger;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Handler;
|
||||
import java.util.logging.LogRecord;
|
||||
|
||||
/**
|
||||
* Sends all logger messages to a player.
|
||||
*
|
||||
* @author sk89q
|
||||
*/
|
||||
public class LoggerToChatHandler extends Handler {
|
||||
/**
|
||||
* Player.
|
||||
*/
|
||||
private Player player;
|
||||
|
||||
/**
|
||||
* Construct the object.
|
||||
*
|
||||
* @param player
|
||||
*/
|
||||
public LoggerToChatHandler(Player player) {
|
||||
this.player = player;
|
||||
}
|
||||
|
||||
/**
|
||||
* Close the handler.
|
||||
*/
|
||||
public void close() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Flush the output.
|
||||
*/
|
||||
public void flush() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Publish a log record.
|
||||
*/
|
||||
public void publish(LogRecord record) {
|
||||
player.sendMessage(Colors.LightGray + record.getLevel().getName() + ": "
|
||||
+ Colors.White + record.getMessage());
|
||||
}
|
||||
}
|
||||
@@ -75,8 +75,12 @@ public class WorldGuard extends Plugin {
|
||||
registerHook("BLOCK_CREATED", PluginListener.Priority.HIGH);
|
||||
registerHook("BLOCK_DESTROYED", PluginListener.Priority.CRITICAL);
|
||||
registerHook("BLOCK_BROKEN", PluginListener.Priority.HIGH);
|
||||
registerHook("BLOCK_PLACE", PluginListener.Priority.HIGH);
|
||||
registerHook("DISCONNECT", PluginListener.Priority.HIGH);
|
||||
registerHook("ITEM_DROP", PluginListener.Priority.HIGH);
|
||||
if (!registerHook("ITEM_USE", PluginListener.Priority.HIGH)) {
|
||||
missingFeatures.add("denying use of the lava or water buckets");
|
||||
}
|
||||
if (!registerHook("ITEM_PICK_UP", PluginListener.Priority.HIGH)) {
|
||||
missingFeatures.add("denying item pickups");
|
||||
missingFeatures.add("the item durability fix");
|
||||
@@ -100,6 +104,12 @@ public class WorldGuard extends Plugin {
|
||||
if (!registerHook("HEALTH_CHANGE", PluginListener.Priority.MEDIUM)) {
|
||||
missingFeatures.add("god mode");
|
||||
}
|
||||
if (!registerHook("DAMAGE", PluginListener.Priority.MEDIUM)) {
|
||||
missingFeatures.add("disabling fall, water, lava, and fire damage");
|
||||
}
|
||||
if (!registerHook("LIQUID_DESTROY", PluginListener.Priority.MEDIUM)) {
|
||||
missingFeatures.add("disabling water damage");
|
||||
}
|
||||
|
||||
if (missingFeatures.size() > 0) {
|
||||
logger.log(Level.WARNING, "WorldGuard: Your version of hMod does not support "
|
||||
|
||||
+238
-27
@@ -59,6 +59,10 @@ public class WorldGuardListener extends PluginListener {
|
||||
* List of players with god mode on.
|
||||
*/
|
||||
private Set<String> invinciblePlayers = new HashSet<String>();
|
||||
/**
|
||||
* List of amphibious players.
|
||||
*/
|
||||
private Set<String> amphibiousPlayers = new HashSet<String>();
|
||||
/**
|
||||
* Used to keep recent join times.
|
||||
*/
|
||||
@@ -81,10 +85,15 @@ public class WorldGuardListener extends PluginListener {
|
||||
private Set<Integer> fireNoSpreadBlocks;
|
||||
private Set<Integer> allowedLavaSpreadOver;
|
||||
private Set<Integer> itemDropBlacklist;
|
||||
private Set<Integer> preventWaterDamage;
|
||||
private boolean classicWater;
|
||||
private boolean noPhysicsGravel;
|
||||
private boolean noPhysicsSand;
|
||||
private boolean allowPortalAnywhere;
|
||||
private boolean disableFallDamage;
|
||||
private boolean disableLavaDamage;
|
||||
private boolean disableFireDamage;
|
||||
private boolean disableWaterDamage;
|
||||
private int loginProtection;
|
||||
private int spawnProtection;
|
||||
private boolean kickOnDeath;
|
||||
@@ -97,6 +106,7 @@ public class WorldGuardListener extends PluginListener {
|
||||
*/
|
||||
public WorldGuardListener(WorldGuard plugin) {
|
||||
this.plugin = plugin;
|
||||
postReload();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -130,11 +140,34 @@ public class WorldGuardListener extends PluginListener {
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Populates various lists.
|
||||
*/
|
||||
public void postReload() {
|
||||
invinciblePlayers.clear();
|
||||
amphibiousPlayers.clear();
|
||||
|
||||
for (Player player : etc.getServer().getPlayerList()) {
|
||||
if (player.isInGroup("wg-invincible")) {
|
||||
invinciblePlayers.add(player.getName());
|
||||
}
|
||||
|
||||
if (player.isInGroup("wg-amphibious")) {
|
||||
amphibiousPlayers.add(player.getName());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Load the configuration
|
||||
*/
|
||||
public void loadConfiguration() {
|
||||
properties.load();
|
||||
try {
|
||||
properties.load();
|
||||
} catch (IOException e) {
|
||||
logger.log(Level.WARNING, "WorldGuard: Failed to load configuration: "
|
||||
+ e.getMessage());
|
||||
}
|
||||
|
||||
recentLogins.clear();
|
||||
|
||||
@@ -145,6 +178,7 @@ public class WorldGuardListener extends PluginListener {
|
||||
blockLighter = properties.getBoolean("block-lighter", false);
|
||||
preventLavaFire = properties.getBoolean("disable-lava-fire", true);
|
||||
disableAllFire = properties.getBoolean("disable-all-fire-spread", false);
|
||||
preventWaterDamage = toBlockIDSet(properties.getString("disable-water-damage-blocks", ""));
|
||||
itemDropBlacklist = toBlockIDSet(properties.getString("item-drop-blacklist", ""));
|
||||
fireNoSpreadBlocks = toBlockIDSet(properties.getString("disallowed-fire-spread-blocks", ""));
|
||||
allowedLavaSpreadOver = toBlockIDSet(properties.getString("allowed-lava-spread-blocks", ""));
|
||||
@@ -155,6 +189,10 @@ public class WorldGuardListener extends PluginListener {
|
||||
noPhysicsGravel = properties.getBoolean("no-physics-gravel", false);
|
||||
noPhysicsSand = properties.getBoolean("no-physics-sand", false);
|
||||
allowPortalAnywhere = properties.getBoolean("allow-portal-anywhere", false);
|
||||
disableFallDamage = properties.getBoolean("disable-fall-damage", false);
|
||||
disableLavaDamage = properties.getBoolean("disable-lava-damage", false);
|
||||
disableFireDamage = properties.getBoolean("disable-fire-damage", false);
|
||||
disableWaterDamage = properties.getBoolean("disable-water-damage", false);
|
||||
loginProtection = properties.getInt("login-protection", 3);
|
||||
spawnProtection = properties.getInt("spawn-protection", 0);
|
||||
kickOnDeath = properties.getBoolean("kick-on-death", false);
|
||||
@@ -273,6 +311,14 @@ public class WorldGuardListener extends PluginListener {
|
||||
if (loginProtection > 0 || spawnProtection > 0 || kickOnDeath) {
|
||||
recentLogins.put(player.getName(), System.currentTimeMillis());
|
||||
}
|
||||
|
||||
if (player.isInGroup("wg-invincible")) {
|
||||
invinciblePlayers.add(player.getName());
|
||||
}
|
||||
|
||||
if (player.isInGroup("wg-amphibious")) {
|
||||
amphibiousPlayers.add(player.getName());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -339,6 +385,88 @@ public class WorldGuardListener extends PluginListener {
|
||||
}
|
||||
}
|
||||
return true;
|
||||
} else if ((split[0].equalsIgnoreCase("/stack")
|
||||
|| split[0].equalsIgnoreCase("/;"))
|
||||
&& player.canUseCommand("/stack")) {
|
||||
hm[] items = player.getInventory().getArray();
|
||||
int len = items.length;
|
||||
|
||||
int affected = 0;
|
||||
|
||||
for (int i = 0; i < len; i++) {
|
||||
hm item = items[i];
|
||||
|
||||
// Avoid infinite stacks and stacks with durability
|
||||
if (item == null || item.a <= 0 || item.d > 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// Ignore buckets
|
||||
if (item.c >= 325 && item.c <= 327) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (item.a < 64) {
|
||||
int needed = 64 - item.a; // Number of needed items until 64
|
||||
|
||||
// Find another stack of the same type
|
||||
for (int j = i + 1; j < len; j++) {
|
||||
hm item2 = items[j];
|
||||
|
||||
// Avoid infinite stacks and stacks with durability
|
||||
if (item2 == null || item2.a <= 0 || item2.d > 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// Same type?
|
||||
if (item2.c == item.c) {
|
||||
// This stack won't fit in the parent stack
|
||||
if (item2.a > needed) {
|
||||
item.a = 64;
|
||||
item2.a -= needed;
|
||||
break;
|
||||
// This stack will
|
||||
} else {
|
||||
items[j] = null;
|
||||
item.a += item2.a;
|
||||
needed = 64 - item.a;
|
||||
}
|
||||
|
||||
affected++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (affected > 0) {
|
||||
player.getInventory().updateInventory();
|
||||
}
|
||||
|
||||
player.sendMessage(Colors.Yellow + "Items compacted into stacks!");
|
||||
|
||||
return true;
|
||||
} else if (split[0].equalsIgnoreCase("/reload")
|
||||
&& player.canUseCommand("/reload")
|
||||
&& split.length > 1) {
|
||||
if (split[1].equalsIgnoreCase("WorldGuard")) {
|
||||
LoggerToChatHandler handler = new LoggerToChatHandler(player);
|
||||
handler.setLevel(Level.ALL);
|
||||
Logger minecraftLogger = Logger.getLogger("Minecraft");
|
||||
minecraftLogger.addHandler(handler);
|
||||
|
||||
try {
|
||||
loadConfiguration();
|
||||
postReload();
|
||||
player.sendMessage("WorldGuard configuration reloaded.");
|
||||
} catch (Throwable t) {
|
||||
player.sendMessage("Error while reloading: "
|
||||
+ t.getMessage());
|
||||
} finally {
|
||||
minecraftLogger.removeHandler(handler);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
@@ -441,7 +569,7 @@ public class WorldGuardListener extends PluginListener {
|
||||
@Override
|
||||
public boolean onInventoryChange(Player player) {
|
||||
if (blacklist != null && blacklist.hasOnAcquire()) {
|
||||
hl[] items = player.getInventory().getArray();
|
||||
hm[] items = player.getInventory().getArray();
|
||||
boolean needUpdate = false;
|
||||
|
||||
for (int i = 0; i < items.length; i++) {
|
||||
@@ -462,39 +590,46 @@ public class WorldGuardListener extends PluginListener {
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when someone presses right click. If they right clicked with a
|
||||
* block you can return true to cancel that. You can intercept this to add
|
||||
* your own right click actions to different item types (see itemInHand)
|
||||
* Called when a player uses an item (rightclick with item in hand)
|
||||
* @param player the player
|
||||
* @param item the item being used (in hand)
|
||||
* @return true to prevent using the item.
|
||||
*/
|
||||
@Override
|
||||
public boolean onItemUse(Player player, Item item) {
|
||||
if (blacklist != null) {
|
||||
int itemId = item.getItemId();
|
||||
|
||||
if (itemId >= 325 && itemId <= 327) {
|
||||
if (!blacklist.onCreate(itemId, player)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when someone places a block. Return true to prevent the placement.
|
||||
*
|
||||
* @param player
|
||||
* @param blockPlaced
|
||||
* @param blockClicked
|
||||
* @param itemInHand
|
||||
* @return false if you want the action to go through
|
||||
* @return true if you want to undo the block placement
|
||||
*/
|
||||
@Override
|
||||
public boolean onBlockCreate(Player player, Block blockPlaced, Block blockClicked,
|
||||
int itemInHand) {
|
||||
if (blacklist != null) {
|
||||
if (!blacklist.onCreate(itemInHand, player)) {
|
||||
// Water/lava bucket fix
|
||||
if (itemInHand == 326 || itemInHand == 327) {
|
||||
final int x = blockPlaced.getX();
|
||||
final int y = blockPlaced.getY();
|
||||
final int z = blockPlaced.getZ();
|
||||
final int existingID = etc.getServer().getBlockIdAt(x, y, z);
|
||||
public boolean onBlockPlace(Player player, Block blockPlaced,
|
||||
Block blockClicked, Item itemInHand) {
|
||||
|
||||
int itemId = itemInHand.getItemId();
|
||||
|
||||
// This is REALLY BAD, but there's no other choice
|
||||
// at the moment that is as reliable
|
||||
timer.schedule(new TimerTask() {
|
||||
public void run() {
|
||||
try {
|
||||
etc.getServer().setBlockAt(existingID, x, y, z);
|
||||
} catch (Throwable t) {}
|
||||
}
|
||||
}, 200); // Just in case
|
||||
if (blacklist != null) {
|
||||
if (itemId < 325 || itemId > 327) {
|
||||
if (!blacklist.onCreate(itemId, player)) {
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!blacklist.onUse(blockClicked, player)) {
|
||||
@@ -815,7 +950,7 @@ public class WorldGuardListener extends PluginListener {
|
||||
String playerName = player.getName();
|
||||
|
||||
if (invinciblePlayers.contains(playerName)) {
|
||||
return true;
|
||||
return oldValue > newValue;
|
||||
}
|
||||
|
||||
if (loginProtection > 0 || spawnProtection > 0 || kickOnDeath) {
|
||||
@@ -862,6 +997,81 @@ public class WorldGuardListener extends PluginListener {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when a living object is attacked.
|
||||
* tip:
|
||||
* Use isMob() and isPlayer() and getPlayer().
|
||||
*
|
||||
* @param type
|
||||
* type of damage dealt.
|
||||
* @param attacker
|
||||
* object that is attacking.
|
||||
* @param defender
|
||||
* object that is defending.
|
||||
* @param amount
|
||||
* amount of damage dealt.
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public boolean onDamage(PluginLoader.DamageType type, BaseEntity attacker,
|
||||
BaseEntity defender, int amount) {
|
||||
|
||||
if (defender.isPlayer()) {
|
||||
Player player = defender.getPlayer();
|
||||
|
||||
if (invinciblePlayers.contains(player.getName())) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (disableFallDamage && type == PluginLoader.DamageType.FALL) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (disableLavaDamage && type == PluginLoader.DamageType.LAVA) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (disableFireDamage && (type == PluginLoader.DamageType.FIRE
|
||||
|| type == PluginLoader.DamageType.FIRE_TICK)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (disableWaterDamage && type == PluginLoader.DamageType.WATER) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (type == PluginLoader.DamageType.WATER
|
||||
&& amphibiousPlayers.contains(player.getName())) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when water or lava tries to populate a block, you can prevent
|
||||
* crushing of torches, railways, flowers etc. You can alternatively allow
|
||||
* to let normally solid blocks be crushed.
|
||||
*
|
||||
* @param currentState the current tristate, once it's set to a non DEFAULT_ACTION it is final.
|
||||
* @param liquidBlock the type of the attacking block
|
||||
* @param targetBlock the block to be destroyed
|
||||
* @return final after a non DEFAULT_ACTION
|
||||
*/
|
||||
@Override
|
||||
public PluginLoader.HookResult onLiquidDestroy(PluginLoader.HookResult currentState,
|
||||
int liquidBlockId, Block targetBlock) {
|
||||
if (preventWaterDamage != null && liquidBlockId <= 9) {
|
||||
if (preventWaterDamage.contains(targetBlock.getType())) {
|
||||
return PluginLoader.HookResult.PREVENT_ACTION;
|
||||
}
|
||||
}
|
||||
|
||||
return PluginLoader.HookResult.DEFAULT_ACTION;
|
||||
}
|
||||
|
||||
/**
|
||||
* Called on player disconnect
|
||||
*
|
||||
@@ -871,6 +1081,7 @@ public class WorldGuardListener extends PluginListener {
|
||||
public void onDisconnect(Player player) {
|
||||
BlacklistEntry.forgetPlayer(player);
|
||||
invinciblePlayers.remove(player.getName());
|
||||
amphibiousPlayers.remove(player.getName());
|
||||
recentLogins.remove(player.getName());
|
||||
}
|
||||
|
||||
|
||||
+52
-10
@@ -1,28 +1,43 @@
|
||||
#
|
||||
# WorldGuard configuration
|
||||
#
|
||||
# This is a starter copy of WorldGuard's configuration so you can configure
|
||||
# WorldGuard right from the beginning. Copy it into your server folder
|
||||
# (into where server.properties resides) and edit the file as your desire.
|
||||
# These comments will be lost whenever WorldGuard updates this file.
|
||||
# More detailed descriptions of the options can be found in README.txt!
|
||||
#
|
||||
|
||||
# Display a summary of WorldGuard's core protection features (lava fire
|
||||
# disable and others) when Worldguard starts up.
|
||||
summary-on-start=true
|
||||
|
||||
# Toggle the item durabiltiy fix
|
||||
item-durability=true
|
||||
|
||||
# Simulate sponge
|
||||
# Simulate the sponge from Classic. It removes water and prevents water from
|
||||
# flowing into an area containing sponges. Use this to protect circuits
|
||||
# or to assist in underwater projects.
|
||||
simulate-sponge=false
|
||||
sponge-radius=3
|
||||
|
||||
# Simulate classic water
|
||||
# Simulate classic water. Water will spread infinitely. Be aware that this
|
||||
# may likely flood your server.
|
||||
classic-water=false
|
||||
|
||||
# Adjust physics
|
||||
# Allow the placement of portal blocks anyway.
|
||||
allow-portal-anywhere=false
|
||||
|
||||
# Prevent gravel from falling.
|
||||
no-physics-gravel=false
|
||||
|
||||
# Prevent sand from falling.
|
||||
no-physics-sand=false
|
||||
|
||||
# Protection
|
||||
# Kick the older player if a player attempts to join again without first
|
||||
# logging out the first instance.
|
||||
enforce-single-session=true
|
||||
|
||||
# List of items to destroy on drop. You can also accomplish this using
|
||||
# the blacklist.
|
||||
item-drop-blacklist=
|
||||
|
||||
# Simple prevention
|
||||
@@ -30,20 +45,47 @@ block-creepers=false
|
||||
block-lighter=false
|
||||
block-tnt=false
|
||||
|
||||
# Health related
|
||||
# Login protection prevents players from getting any damage for a few
|
||||
# seconds after joining the server.
|
||||
login-protection=3
|
||||
|
||||
# Spawn protection prevents players from getting any damage after spawning
|
||||
# (after dying).
|
||||
spawn-protection=0
|
||||
|
||||
# This is an deprecated feature to fix a bug. This kicks a user once the
|
||||
# player dies and attemtps to respawn. The player can then still rejoin
|
||||
# and be alive.
|
||||
kick-on-death=false
|
||||
|
||||
# Control fire
|
||||
# Disable various ways of damage. If you want to give someone invincibility
|
||||
# or the ability to breathe under water, create the groups wg-invincible
|
||||
# and wg-amphibious respectively and apply them to users as needed.
|
||||
disable-fall-damage=false
|
||||
disable-lava-damage=false
|
||||
disable-fire-damage=false
|
||||
disable-water-damage=false
|
||||
|
||||
# Disable fire spreading between blocks. Note that this does not prevent
|
||||
# fire damage -- it only prevents fire spread.
|
||||
disable-all-fire-spread=false
|
||||
|
||||
# List blocks that fire should not spread to or between. Cloth and wood
|
||||
# are some good examples.
|
||||
disallowed-fire-spread-blocks=
|
||||
|
||||
# Disable lava fire and spread
|
||||
# Prevent lava from starting fires.
|
||||
disable-lava-fire=true
|
||||
|
||||
# List of blocks that lava is allowed to spread onto.
|
||||
allowed-lava-spread-blocks=
|
||||
|
||||
# Log/blacklist
|
||||
# List of blocks that should not be destroyed by water (Redstone wire,
|
||||
# minecart tracks, flowers, etc.).
|
||||
disable-water-damage-blocks=
|
||||
|
||||
# Control where to log blacklist events to. You can use multiple log
|
||||
# methods as you please.
|
||||
log-console=true
|
||||
log-database-dsn=jdbc\:mysql\://localhost\:3306/minecraft
|
||||
log-database-pass=
|
||||
|
||||
Reference in new issue
Block a user