AntiFire

Mechanics Login to Add Favorites
  • 0 Likes
  • Minecraft
  • 338 Monthly Downloads
  • Supports: 1.10
  • 116,662 Total Downloads
  • Updated Sep 13, 2017
  • Created Apr 16, 2012
  • 0 Favorites
  • Project Site
  • Comments
  • Release Type: Release
  • License: GNU General Public License version 2 (GPLv2)
  • Newest File: AntiFire 2.9.1
Support development! **
Donate

About AntiFire

Is fire damaging your precious buildings or forests? Want to allow fire but restrict its mechanics? Or just log it? Or tp there and put it out? This plugin, inspired by @happypumkin and @x0pk1n, allows all that and more with detailed configurability. To be specific, it has the following features, all configurable by world:

  • disable fire spreading, by world
  • fire start controls:
    • log fire starting with detailed world location (players only, or also lightning and lava)
    • disable fire starting by lightning, fire spread, explosions, fireballs, explosions, ender crystals, and/or lava
    • disable starting fire to blocks by players (with enable by Permissions)
    • disable starting fire to mobs & players by players (with enable by Permissions)
    • make certain block types fireproof! Configurable list of block IDs.
  • fire duration controls:
    • by the mechanism that started the fire, regardless of the underlying material
  • disable fire damage to blocks, players, and/or non-player entries including mobs
  • disable lava damage to blocks, players, and/or non-player entries
  • disable lava placement by players, with permissions override support
  • commands to view last few locations of fire starting, by whom
  • commands to teleport to a log entry
  • command to put out fires nearby you, or in entire world
  • commands to view/set/save all config values, or reload from config.yml
  • command to flush fire start log to disk
  • option to make burnt logs drop charcoal.
  • supports multiple languages [in 2.6]
  • control fire duration by start type, providing fixed value or a range [in 2.7]

Configuration

Most of the controls of this plugin, like AntiCreeper, are solely by configuration flags. Almost all entries are lists of worlds in which that specific behavior will be active. You can either present them as a YML list of strings:

  nospread: 
    - world 
    - world_the_end

But I found that to get hard to read when I have so many config items, so you can optionally present them on one line as a comma-separated list:

  nospread: world, world_the_end

Blocklist

The .blocklist entry is the same as you'll find in AntiCreeper's blocklists. It's a list of comma-separated block names/IDs, and allows sub-type listings in form of "#:#", which could be used, for example, to make jungle wood fireproof but allow burning other wood. If you wish to make almost everything fireproof except a few blocks, set .whitelist to true and then only list the ones that should burn. There are few rare cases where the block detection may not seem to work well, but this only happens if there is another burnable block adjacent to the fire location.

Configurable Fields

Description of configurable items. Most are lists of worlds per above.

nerf_fire.logstart:

  • .player: if set for a world, logs player, date/time, and location to server.log
  • .lava: if set for a world, logs event, date/time, and location to server.log
  • .lightning: if set for a world, logs event, date/time, and location to server.log
  • .fireball: if set for a world, logs event, date/time, and location to server.log
  • .explosion: if set for a world, logs event, date/time, and location to server.log
  • .crystal: if set for a world, logs event, date/time, and location to server.log

nerf_fire.whitelist: if false, blocks on blocklist are fireproof; if true, fire can only be started on blocks on blocklist

nerf_fire.blocklist: list of decimal block ids per above

nerf_fire.nospread: if set for a world, fire cannot spread from one block to another there.

nerf_fire.wooddropscharcoal: if set for a world, burnt logs drop 0-3 charcoal

nerf_fire.charcoaldrop: new node that modifies behavior when above is set for any world

  • .max integer that sets maximum number of charcoal dropped
  • .random [true|false] that sets if fixed to max or random from 1-max
  • speciesmax node to set max drops by species of wood
    • support for 1.7 types Acacia and Dark Oak
    • Each entry underneath should be <species>_LOG: #
    • See example in default below.
  • anydropchance 0-100 integer to set chance of any kind of drop, whether random or fixed at max
    • see table below for default chances, averages
anydropchancemaxrandom averagefixed (max) avg
75%10.750.75
75%21.1251.5
75%31.52.25
75%41.8753
75%52.253.75
75%62.6254.5
  • [Deprecated] .treetypemax list for setting max drops by type of wood
    • set in this order: Oak, Spruce, Birch, Jungle
    • must set all four or else defaults to charcoaldrop.max.

nerf_fire.nostartby: node with below items

  • .op: if true, even Op cannot start a fire (without Permission set)
  • .lightning: if set for a world, lightning not supposed to start a fire
  • .fireball: if set for a world, fireballs from dispensers or other plugins not supposed to start a fire
  • .lava: if set for a world, lava cannot start fire on adjacent block
  • .player: if set for a world, NO players can start a fire in that world unless (a) they are Op or (b) have permission antifire.startfire set. Caution: Also means nerfed players can NOT enable a portal.
  • .explosion: if set for a world, all explosions in that world do not start a fire. Overrides other plugins, like AntiCreeper
  • .crystal: if set for a world, ender crystals do not start fires.

nerf_fire.nodamageto: node with below items

  • .block: burning blocks will not be destroyed in listed worlds
  • .player.fromlava: lava will not hurt players (2 hearts per tick) in listed worlds, but remember it also sets people on fire Refer to example config Walk on Lava
  • .player.fromfire: players will not catch fire or incur fire damage in listed worlds
  • nonplayer has now been replaced by the following:
    • .hostilemob.fromfire: hostile mobs won't catch on fire in listed worlds
    • .peacefulmob.fromfire:
    • .mob.fromfire: applies to bats and when above not set
    • .painting.fromfire: paintings won't catch fire in listed worlds
    • .drops.fromfire: dropped items
    • .item.fromfire: anything not in previous categories
    • all of above items with fromlava work as well

* .nonplayer.fromlava: mobs and creatures will incur no damage from lava

* .nonplayer.fromfire: mobs and creatures won't catch fire. Beware of setting this, since it means mobs will NOT burn in sunlight

nerf_fire.noburnmobby: node with below items

  • .player: players cannot light mobs with flaming weapons or arrows in supplied worlds,
    • unless they have permission antifire.burnmob
  • .mob: mobs cannot do the same, if they were to have such
  • .op: if true, OPs can NOT set mobs alight
    • unless they have permission antifire.burnmob

nerf_fire.noburnplayerby: similar to above, but against players

  • corresponding permission is antifire.burnplayer

nerf_fire.noplacelavaby: node controlling lava placement

  • .player: if set for a world, NO players can place lava in that world unless (a) they are Op or (b) have permission antifire.placelava set
  • .op: if true, even Op cannot place lava (without Permission set)

nerf_fire.timedcauses : node offering fixed or random fire durations. See its detailed description page.

nerf_fire.timeNetherackToo: if set for a world, even infinitely burning blocks like netherack will be subject to timedcauses.

nerf_fire.rainOverridesTimed: if set for a world, rain will put out blocks even if they are subject to timedcauses. [Added in 2.8]

nerf_fire.logplace.lava: node that adds lava placement to the Antifire log for listed worlds.

nerf_fire.logflushsecs: age in seconds of fire start log entries to flush to disk. This only happens when a new entry is added (in order to avoid overhead of a periodic tic) and if the current list of entries is more than ten (all that can fit in chat display).

Default Configuration

Most of the mechanics of this plugin are disabled by default, except logging fire start locations to your server log file. and now fire spreading is Off by default. But only if your server has a world named "world".

nerf_fire:
  logstart: 
    player: world
    lightning: world
  whitelist: false
  nospread: world
  nostartby:
    op: false
  logflushsecs: 600
  woodropscharcoal: world
  charcoaldrop:
    random: true
    speciesmax:
      JUNGLE_LOG: 0
      OAK_LOG: 2
      BIRCH_LOG: 1
      SPRUCE_LOG: 3
      ACACIA_LOG: 4
      DARKOAK_LOG: 5
    anydropchance: 75
  noplacelavaby: 
    op: false
  nodamageto:
    peacefulmob:
      fromlava: world
      fromfire: world
    drops: 
      fromfire: world    
  logplace: 
    lava: world
  rainOverridesTimed: false

Example Configurations (click here)

Examples of timedcauses config is only found found here. It is not in the default config.

Permissions & Commands

Has been moved to another page here. That page has some example commands

Statistics

Since 1.4 the plugin now sends statistics to mcstats.org. These are completely anonymous and help me as a plugin developer know how the plugin is being used. You can view the same data by clicking below. If you want to turn it off, simply edit plugins/PluginMetrics/config.yml and change opt-out: false to true

AntiFire mcstats

Languages and Translations

AntiFire now supports you configuring your own strings used to players, and setting alternate languages as well. This is done with LanguageAPI plugin. See the detailed language page for more.

Possible features:

  1. Suppressing hissing sound when drops are not damaged by lava
  2. Allow different timedcause configuration per world

Change timeNetherackToo to a world-based config flag. [2.9]

Add an option for rain to still put out timed fires [2.8]

LanguageAPI support for translations

Configurable in-game messaging

2.9.1: Fixed

  • Bukkit/Spigot 1.9 compatibility with mcstats patch.
  • Should still be backwards-compatible, but haven't tested all old versions.
    • one report back that it doesn't work in 1.8. Investigating, but have not found any problems. 

2.9:

  • Changed:
    • changed rainOverridesTimed and timeNetherackToo to lists of worlds, allowing world-specific settings
      • will recognize true as special setting to be true for all worlds; i.e. backward-compatible
  • Added:
    • new command options for af timed for rain and netherack to set for player's world.
  • Fixed:
    • vanilla fire fading would override timed blocks if rainOverridesTimed was set even when not raining, since raining check was wrong [Bug from 2.8]

2.8:

  • Added:
    • new config rainOverridesTimed which, if true, allows rain to override timedcauses

2.7:

  • Added:
    • new config timeNetherackToo will make timedcauses apply to netherack and bedrock in The End too.
    • new option for timedcauses allows a range of times.
      • syntax is "<low> - <high>"
      • actual selection will be a normal distribution with given range at two standard deviations from the average of the two provided numbers

2.6:

  • Fixed:
    • errors on reload with timedcauses, Ticket 9
    • more errors on reload fixed.
  • Added:
    • can now use UUIDs instead of loginnames in log, extinguish, and tpf commands.
      • UUIDs are also stored into the log file, along with user name. Might be able to catch people who change their name that way.
    • translation support with LanguageAPI
    • nodamageto.nonplayer now expanded to: hostilemob, peacefulmob, mob, drops, painting, item
      • drops doesn't work because of a Bukkit bug :(
      • the only mob that is neither peaceful nor hostile is the bat
      • if new item not set, will attempt to use old nonplayer config

2.5:

  • Fixed: TNT not triggering, ticket 7.
    • only occurs if nospread is active for that world
    • strangely, TNT is called in a BlockBurnEvent() without a BlockIgniteEvent first
  • Dependency:
    • REQUIRES 1.7.2-R0.3 because of new ProjectileSource type from getShooter()

2.4: Support charcoal for new 1.7 log types

  • Added:
    • charcoaldrop.anydropchance config item added, 0-100
      • sets chance for any drop, random or fixed to max
      • adjusted default from 50% to 75%
    • support for new 1.7 log types Acacia and DarkOak within speciesmax
      • was already in place, but code was not working due to bug in Bukkit TreeSpecies for these new types
      • default for Acacia is 4 max; DarkOak is 5
  • Dependency: since this shares code with my other plugins, if you use AntiCreeper or Thor use their latest versions (4.13.1 and 4.3.1 respectively).

2.3: Permit alternative Material strings that infer data values in blocklist

  • Added: blocklist strings that infer Material data
  • Dependency: since this shares code with my other plugins, if you use AntiCreeper or Thor use their latest versions (4.13 and 4.3 respectively).

2.2: Prep for 1.7

  • Added: speciesmax will replace treetypemax, but either works for now
    • explicit listing of Log types as strings within configuration
    • advance support for 1.7 new log types Acacia and DarkOak (only configure if you are running 1.7.x)

2.1.2: Bug Fix

  • Fixed: NPE when fire is lit and there are no timedcauses config items

2.1.1:

  • Added: colors printed to in-game console for some errors
  • Improved: Removed timedcauses dependency on doDaylightCycle rule.
  • Tested against 1.6.4-R1.0 - yay, it's a Recommended Build now!

2.1: Commands for timed fire controls

  • Added: timed subcommand of af to set timedcauses config
    • Tested and confirmed that RAM usage does not significantly increase the more blocks you have being timed.

2.0: Timed Fire controls

  • Added: config to permit fixed fire durations for configured causes via timedcauses node
    • any block lit because of the configured cause will always burn for the configured time.
    • the block will not naturally expire nor will flammable materials be burnt up.
  • Compatibilty:
    • This version requires Bukkit 1.6.4 build 2894 or later
    • It will work with earlier (ex. 1.6.2-R1.0) builds, but timed fire controls will not work well for non-flammable blocks, as the fire may fade before the timer expires.

1.9: private testing release

1.8: Lava placement controls

  • Added: config & commands to control lava placement
    • defaults to allow so as to not upset existing users
  • Note: metrics.org is "rebooting" and not recording. Shouldn't cause lag, but if you don't want it,
    • Simply edit plugins/PluginMetrics/config.yml and change opt-out: false to true

1.7.1: Metrics Fix

  • Fixed: Crash on startup when server has another plugin using R7 of Metrics. Description here.
    • Caveat: couldn't test as mcstats.org is not updating with new metrics, but I did confirm it no longer crashes.

1.7:

  • Added:
    • New config node charcoaldrop for altering charcoal drop behavior
      • .max [int] sets maximum drops
      • .random [true|false] sets if fixed to max or not
      • .treetypemax list for setting max drops by type of wood
    • New max [int] and random|fixed command options to charcoal command
  • Fixed: was burning block (or making charcoal) even when nerf_fire.nodamageto.block set

1.6.3: Added commands for new items from last version

  • Added:
    • commands noburnmob[by] and noburnplayer[by]

1.6.2: Added commands and split config items

  • Added:
    • command charcoal sets wooddropscharcoal
    • commands nostartby and logstart now work for crystal and explosion
  • Improved:
    • Permission burnentity split into burnmob and burnplayer
    • Config item similarly split into noburnmobby and noburnplayerby
  • wooddropscharcoal default is now true for world name "world"
  • Fixed:
    • When player is not permitted to light mobs with fire aspect weapons, cows and pigs no longer flame on for a sec, nor do they drop "cooked" meat if death results from attack.

1.6.1: Fixed plugin.yml with new permission

1.6:

  • Added:
    • wooddropscharcoal if set for a world, burning logs drop 0-3 charcoal
    • noburnentityby.player if set for a world, players can NOT light mobs or other players on fire
      • will be refined to noburnmobby.player, noburnplayerby.player, and *by.mob
    • nostartby.crystal and nostartby.explosion nerf starts by those
    • logstart.crystal and logstart.explosion derp
  • Improved:
    • nodamageto.player.fromfire now works when entities light players on fire (e.g. flaming swords)

1.5:

  • Improved: nospread now nerfs implicit spread when blocks are damaged by fire; used to be replaced by fire
  • Fixed: if nostartby.player is turned off, stops logging to server console when fire is started

1.4.1 patch:

  • Fixed: opstart command causing exception when used with no params

1.4 release:

  • Added: commands under af to set nostartby, nodamageto, logstart.
  • Added: report anonymous statistics to mcstat.org
    • this helps me as plugin developer to know how it is being used
    • if desired to turn off, Simply edit plugins/PluginMetrics/config.yml and change opt-out: false to true

1.3.1 release:

  • Fixed again: turn off fires adjacent to fireproof blocks. [Ticket 5] 1.3 release:
  • Fixed: fireproof blocks adjacent to burning, burnable blocks are destroyed by fire (Ticket 5)
  • Improved: improved burning block detection (by line of sight) when using flint

1.2.1 release: compiled against Bukkit release 1.4.5-R1.0

1.2 release:

  • Added: "last" or <playername> option for extinguish command. Originated by @garan2314
  • Changed: releasing as .jar only; removed sample config.yml. If you don't have one, the defaults are saved to pluginsAntiFire/config.yml

1.1.1 release:

  • Fixed: allow for spaces in blocklist in config.yml Ticket 2]

1.1 release:

  • Added nostartby.fireball, logstart.fireball
  • Added reload command
  • Added: burnable/fireproof commands now accept Bukkit Material name strings as well as ID numbers

1.0.1 release:

  • Changed: extinguish command now tied to new permission antifire.fireman
  • Tested : built against 1.4.5-R0.2

1.0 release:

  • Added: new extinguish command to put out fires in world(s) or w/in a radius as requested by @garan2314

0.9.2 release:

  • Avoid conflicts with AntiCreeper 4.0; built with same libraries

0.9.1 release:

  • Recompiled and tested against CB 1.4.2-R0.2. No changes.

0.9: release

  • Added: new af admin command to print/modify (some)/save config settings
  • Added: now automatically flushes antifire.log to disk after configurable logflushsecs

0.8: release

  • Added: new nerf_fire.nostartby.explosion feature
  • Added: more discrete logstart ability, by lava, player, lightning

0.7: release

  • Changed: added "world" to default antifire.nospread.
  • Added: Zip file with example config file

0.6: release

  • Fixed: default true for antifire.startfire was always overriding config nostartby.player.

0.5: release

  • Added:
    • maintain separate log file of fire starts in AntiFire/antifire.log.
      • .logstart now only controls level of detail to server console
    • default permissions, so using a Permissions plugin is optional
    • colored messages to chat window for easier eye parsing
  • Changed:
    • teleport command now named tpf to retain vanilla tp command
    • startfire permission to antifire.startfire (removed "nerf_fire").
  • Fixed: log and tp commands crash when searching on a username of two or more digits. Not fatal.
  • Tested with PermissionsBukkit but should work with any plugin compatible with Bukkit perm API.

0.2: beta

  • Added: commands "tp" and "log". See known issues below. Should I change their names?

0.1: First release

Charcoal is not produced if fire extinguishes naturally without destroying a LOG block.

If your overworld is called "world" and you do NOT want to log player fire starts, simply commenting out logstart.player or deleting its values in your config file doesn't work since the default is "world". So set it to some nonsense world, like "fooblitzky".

[Fixed in Spigot 1.8] nodamageto.drops doesn't work because of a Bukkit bug :(

Fixed in 1.6.2: - noburnentityby.player if set still burns the entity for a half a sec. Struck cows will drop cooked steak. Think it's an NMS thing.

Fixed in MC 1.4.4: Lightning still lights paintings and other blocks on fire when nerfed, but this is an error on client side (see this discussion). Log out and the fire will go away.

Fixed in 1.3: One can sometimes start a fire when pointing at a block on your blacklist. This is because there is a burnable block adjacent to the block where the fire is.

Player can still point at adjacent burnable block, but the fireproof block won't burn up when the burnable block's fire goes out.

  • 1
  • 2
  • 3
  • 4
  • Next

Comments

  • To post a comment, please or register a new account.
Posts Quoted:
Reply
Clear All Quotes