FishyShield
This plugin protects the world from environmental damage. It also controls item pickup and dropping and can modify damage dealt to players by mobs. It was written by nosefish to replace the ageing WorldGuard plugin.
The plugin consists of 5 main modules:
- Fire protection (property prefix "ignite")
- Explosion protection (property prefix "explosion")
- Liquid damage protection (property prefix "liquid")
- Entity related modifications (property prefix "entity")
- Item permission (property prefix "item")
If you find any bugs, or have any feature requests, please post them in the issue tracker. Please contact nosefish if you have any questions about this plugin.
Fire Protection
- Enables or disables fire by cause: natural fire spread, lava, fireball, lightning, player
- Protects blocks and HangingEntities (paintings, item frames) from being destroyed by fire. Fire on blocks is extinguished when they would normally be destroyed, to avoid ever-burning trees.
- Players need permission to start fires
- Can set certain blocks as fireproof. These cannot be set on fire at all except by players who have permission. Can be used to block portal creation without disabling fire completely.
Fire Protection Properties
Note: These are examples and do not represent the actual server configuration.
ignite.protection-enable=true
enables/disables fire protections
ignite.fire-destroys-blocks=false
if true, fire can destroy blocks
ignite.fire-spread=false
if true, fire will spread
ignite.fireproof-blocks=49,47
list of fireproof blocks (obsidian and TNT in this case)
ignite.fireproof-message=You do not have permission to set this block on fire.
message sent to a player who tires to set a fireproof block on fire without having permission
ignite.fireproof-override-permissions=/lighter
permission to override fireproof protection. Can be set per block type.
ignite.flint-and-steel=false
If true, allows all players to use flint&steel. If flint and steel is disallowed here, it will not stop players from using the item, it only denies setting blocks on fire (which is effectively the same thing, since setting blocks on fire is all flint&steel does)
ignite.flint-and-steel-message=You do not have permission to use flint&steel.
Message sent to players trying to use flint&steel without permission
ignite.flint-and-steel-override-permission=/lighter
permission to override flint&steel protection
ignite.firecharge-rightclick=false
If true, allows all players to use fire charges. Works like flint&steel
ignite.firecharge-message=You do not have permission to use firecharges.
Message sent to players trying to use firecharges without permission
ignite.firecharge-override-permission=/lighter
permission to override firecharge protection
ignite.lava=false
if true, lava can set nearby blocks on fire
ignite.lightning=false
if true, lightning strikes can cause fire
ignite.fireball=false
if true, fireballs (blaze, fire charge from dispenser, ghast) can set block on fire.
Explosion Protection
- Enables/disables blocks and HangingEntities being destroyed by explosions (TNT, Ghast, Creeper, and Wither)
- Enables/disables cascading TNT explosions when block damage is disabled
- Only affects blocks, keeps original effect on entities
- Ghats fireballs still cause fire even if protection is enabled. Can be controlled through fire protection configuration.
- No configuration by cause.
Explosion Protection Properties
Note: These are examples and do not represent the actual server configuration.
explosion.protection-enable=true
enables/disables explosion protections
explosion.cascade-tnt=true
if true, allows tnt to set off other tnt blocks in its blast radius. Makes TNT cannons work :).
explosion.damage-blocks=false
if true, allows explosions to damage blocks
explosion.damage-entities=true
not implemented yet. Explosions always damage entities.
Liquid Damage Protection
- Enables/disables a configurable set of blocks being destroyed by liquids (used for rails on MinecraftOnline)
- No configuration by cause (lava/water).
Liquid Damage Protection Properties
liquid.protection-enable=true
enables/disables liquid protections
liquid.protected-blocks=27,28,66,157
List of blocks that will not be destroyed by liquids (rails in this example)
Entity Modifications
- Enforces fire/explosion protections for HangingEntities
- Enables/disables HangingEntities from being destroyed by mobs
- Configurable multipliers for damage dealt to players by mobs and fire
- Configurable additional explosion power for ghast fireballs, because their default explosions are so pathetic. These additional explosions never damage blocks, only entities.
Entity Modification Properties
Note: These are examples and do not represent the actual server configuration.
entity.damage-multiplier-blaze=1.0D
entity.damage-multiplier-cavespider=1.0D
entity.damage-multiplier-creeper=1.0D
entity.damage-multiplier-enderman=1.0D
entity.damage-multiplier-ghast=1.0D
entity.damage-multiplier-giantzombie=1.0D
entity.damage-multiplier-irongolem=1.0D
entity.damage-multiplier-magmacube=1.0D
entity.damage-multiplier-pigzombie=1.0D
entity.damage-multiplier-silverfish=1.0D
entity.damage-multiplier-skeleton=1.0D
entity.damage-multiplier-slime=1.0D
entity.damage-multiplier-spider=1.0D
entity.damage-multiplier-wither=1.0D
entity.damage-multiplier-zombie=1.0D
entity.damage-multiplier-fire=1.0D
damage multipliers
entity.stronger-ghast-explosion=0.0D
If set to a value >0.0D, creates a fake TNTMinecart explosion with the configured power where a ghast fireball hits. TNTMinecarts explode with the square of the power (normally their speed), so don't make too large adjustments. 2.0D is a good start. This is completely separate from the damage multiplier.
entity.mobs-break-hanging-entities=false
when set to true, mobs can break paintings and item frames.
Item Permissions
- Disables players using configurable set of items. Can be overridden for subsets based on permissions. Not used on MinecraftOnline, handled by GriefAlert.
- Disables players dropping/picking up configurable sets of items. Can be overridden for subsets based on permissions. Useful to prevent admins from leaving unobtainable blocks on the ground by accident, and players from picking them up.
Item Permission Properties
Note: These are examples and do not represent the actual server configuration.
item.protection-enable=true
enables/disables item protections
item.drop-blacklist=0,7,8,9,10
list of items that cannot be dropped (will be destroyed when dropped)
item.drop-message=You do not have permission to drop this item.
message sent to a player trying to drop a blacklisted item
item.drop-override-permissions=
permissions to drop blacklisted items
item.pickup-blacklist=0,7,8,9,10
list of items that cannot be picked up
item.pickup-message=You do not have permission to pick up this item
message sent to players trying to pick up a blacklisted item
item.pickup-override-permissions=/admin
permissions to pick up blacklisted items
item.use-blacklist=0,7,8,9,10,259
list of items that cannot be used by players (right-click)
item.use-message=You do not have permission to use this item.
message sent to players trying to use a blacklisted item
item.use-override-permissions=/admin 7 19,/lighter 259
permissions to use blacklisted items
Commands
- /worldname [player] (player is optional) - shows the name of the world and dimension the player is in. The purpose is mainly to help with configuration, but it may turn out to have other uses and is usable from the console.
- /god [on|off] [player] - invulnerability for admins and god donors. Only admins can use the variant with the [player] argument. Was previously handled by WorldGuard.
Configuration
All configuration options can be set globally, per world, or even per world/dimension, each overriding the more general options.
The configuration file for this plugin is fishyshield.properties. There are several types of options:
- Strings (texts), Booleans (true/false), and numbers work as usual in Canary.
- IntegerSets (list of numbers): separate numbers with commas, without spaces
- Permissions: permissions can be general, or specific for certain integers.
Setting Permissions
A general permissions is just a (possibly fake) command. A specific permission is a command followed by a list of integers, separated by spaces (not commas!). Permissions are separated by commas. If a permission property is empty, nobody has permission, not even admins.
The configured commands can be used in groups.txt to add the actual permissions.
Example:
item.drop-blacklist=0,7,8,9,10
item.drop-override-permissions=/dropany,/dropbedrock 7, dropfoo 7 9 10
Explanation:
- Players in general may not drop items with ids 0,7,8,9,10.
- If they have the /dropany permission configured in groups.txt, they may drop any item.
- If they have the /dropbedrock permission, they may drop bedrock, but none of the others (unless they have /dropany, or /dropfoo, too).
Per-World Configuration
To configure per world, add worldname@ in front of the property, e.g.
boringworld@entity.damage-multiplier-ghast=0.0D
to make ghasts do no damage to players in boringworld
To configure per dimension add worldname.dimension@ in front of the property, e.g.
dangerousworld.NETHER@entity.damage-multiplier-ghast=20.0D
to make ghasts twenty times as strong in dangerousworld's Nether. Valid dimensions are NORMAL, NETHER, and END. You can also use /worldname to find these.
Other Properties
debug=false
enable/disable debug output