🛡️ Protect your Minecraft server and lets players claim areas
Go to file
2011-01-08 18:26:49 -08:00
src Finished up regions support. 2011-01-08 18:26:49 -08:00
tests/com/sk89q/worldguard Added area protection code borrowed from WorldEdit. While the framework is currently quite flexible, the implementation still needs work. 2011-01-08 02:04:21 -08:00
blacklist_table.sql Added comments and messages. Made the blacklist notification messages more compact and a different color. 2010-11-20 11:47:32 -08:00
build.xml Added area protection code borrowed from WorldEdit. While the framework is currently quite flexible, the implementation still needs work. 2011-01-08 02:04:21 -08:00
CHANGELOG.txt Updated changelog. 2010-12-26 10:32:31 -08:00
INSTALL.txt Changed project name to WorldGuard. 2010-11-17 12:05:07 -08:00
LICENSE.txt Initial commit. 2010-11-14 00:55:01 -08:00
README.txt Added option to prevent block damage created by flowing water (Minecart tracks, Redstone wire, etc.) 2010-11-30 02:44:01 -08:00
worldguard-blacklist.txt Changed blacklist hooks. 2010-12-25 22:16:45 -08:00
worldguard.properties Updated default worldguard.properties. 2010-12-25 22:26:58 -08:00

WorldGuard
Copyright (c) 2010 sk89q <http://www.sk89q.com>
Licensed under the GNU Lesser General Public License v3

Introduction
------------

WorldGuard has a number of features, any of which you can choose to
use or not:

- Enforce only one session for a player on a server (can't login twice).
- Block creeper explosions.
- 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.
- Prevent gravel and sand from falling.
- Allow portal blocks to be placed anywhere.

hMod is required as WorldGuard is a plugin for hMod.

Configuration
-------------

A "worldguard.properties" will be created the first the time that you load
WorldGuard on your server. You can either restart your server or use
/reloadplugin WorldGuard to reload the configuraton file after editing it.

NOTE: Some features may require a custom version of hMod. When the server
is loaded with the plugin, WorldGuard will tell you the features
unsupported by your version of hMod.

- summary-on-start (def. true)
    Print a summary of WorldGuard's protection settings at-a-glance when
    the plugin is loaded.

- item-durability (def. false)
    **Requires special version of hMod
    Enables item durability.

- classic-water (def. false)
    Toggle use of classic water. Be foreward that your world may be
    flooded if you are not careful. If you have WorldEdit, you can use
    //drain in such an event, although that will drain the entire pool
    as well. This classic-esque water will only spread infinitely over
    ground, but if there are air blocks underneath, the water will not
    spread (preventing waterfalls from becoming tsunamis).

- simulate-sponge (def. true)
    Toggle simulation of the sponge from Classic. It blocks water from
    flowing near the sponge.

- sponge-radius (def. 3)
    The radius of the sponge's effect. The default is that of Classic,
    creating a 5x5x5 cuboid free of water. Increasing the number will
    increase server load exponentially, although 3-5 has fairly low impact.

- no-physics-gravel (def. false)
    **Requires special version of hMod
    Prevents gravel from falling due to gravity.

- no-physics-sand (def. false)
    **Requires special version of hMod
    Prevents sand from falling due to gravity.

- allow-portal-anywhere (def. false)
    **Requires special version of hMod
    Allows you to place portal blocks anywhere.

- enforce-single-session (def. true)
    Enforce single sessions. If the player is already found to be on
    the server when s/he logs in, the other player will be kicked with
    an informative message. The inventory will have been saved before
    the new session starts.
    
- block-tnt (def. false)
    Block TNT explosions. TNT will still explode client-side but the blocks
    will be "restored" in a few seconds afterwards.
    
- block-lighter (def. false)
    Block flint and steel fires. Those with access to the commands
    /uselighter or /lighter can bypass this. /uselighter is not a real
    command; it is only used for permissions.

- block-creepers (def. false)
    Block creeper explosions from destroying terrain (and possibly from
    causing damage).

- disable-lava-fire (def. true)
    Prevent lava from starting fires.

- allowed-lava-spread-blocks (no default)
    List of block names/IDs to allow lava to spread to. Leave blank
    to disable this feature.

- disable-all-fire-spread (def. false)
    Disable all fire from spreading.

- disallowed-fire-spread-blocks (no default)
    List of block names/IDs to prevent fire from spreading to. Leave blank
    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
    durability. You can also enforce this with the blacklist but
    this is an easier way to do it (this way also prints a more
    friendly message than if you used the 'tell' action of the blacklist).

- login-protection (def. 3)
    Number of seconds to keep a player invincible when the player joins.

- spawn-protection (def. 0)
    Number of seconds to keep a player invincible when the player spawns.
    This does not apply to players joining the server.

- kick-on-death (def. false)
    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.

- log-file (def. false)
    For blacklist log actions, log to file.
    
- log-file-path (def. "worldguard/logs/%Y-%m-%d.log")
    Log blacklist events to file. You can use these patterns in the path:
        %Y the year (YYYY)
        %m the month (MM)
        %d the day (DD)
        %W the week of the year (00-52)
        %H 24-hour time (HH)
        %h 12-hour time (HH)
        %i the minute (mm)
        %s the second (ss)
        %u the user's name
        %% translates to a single percent sign "%"
    The files are not automatically rotated if they get large so you should
    perhaps put a week in the filename at least.
    
    Escape backslashes with another backslash, like so:
    C:\path\to\log.txt -> C:\\path\\to\\log.txt

- log-file-open-files (def. 10)
    The number of log files to keep open at once. Unless you use dynamic
    patterns in the path, the value of this variable won't matter. However,
    if, for example, you use a player's username in the filename and you
    have many users who cause logged events to occur, files would have
    to be opened for each user and this parameter would matter.

- log-database (def. false)
    Log blacklist events to database.

- log-database-dsn (def. "jdbc:mysql://localhost:3306/minecraft")
    Connection string. A string to use for MySQL would be:
    jdbc:mysql://localhost:3306/minecraft
    The "minecraft" part at the end is the database name.
    
    Escape colons with a backslash, like so:
    jdbc:mysql://localhost:3306/minecraft
    ->
    jdbc\:mysql\://localhost\:3306/minecraft

- log-database-user (def. "root")
    Database username.

- log-database-pass (def. "")
    Database password.

- log-database-table (def. "blacklist_events")
    Database table to use.

Commands
--------

- /stopfire and /allowfire
    Disables and enables fire spread globally. Both commands require the
    permission to use only "/stopfire. Re-enabling fire spread with this
    command will not override other fire spread control features of
    WorldGuard. Note that disabling fire does not disable fire damage
    but fire at least won't spread.

- /god
    Toggles your invincibility. Players must have permission to use "/god"
    to be able to use this command. You can also use this command to
    toggle the invincibility of others although you must have the
    "/godother" permission.

Server Commands
---------------

- fire-stop and fire-allow
    Disables and enables fire spread globally. Re-enabling fire spread
    with this command will not override other fire spread control features
    of WorldGuard. Note that disabling fire does not disable fire damage
    but fire at least won't spread.

Blacklists
----------

Blacklists let you control the use of blocks and items. You can have
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
------

While I would like to thank everyone for their support, I would like to
say thanks to the following individuals for their direct
contributions to WorldGuard:

- Sturmeh, for contributing the original durability workaround
- Meaglin, for changing the on flow hook at my request
- Dinnerbone, for implementing the on item pick up hook at my request,
    and also for figuring out the durability bug in the process