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.

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.
  • New in 2.4: 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.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 : NEW node offering fixed fire durations. See its detailed description page.

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
  logplace: 
    lava: world

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 now 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

Possible features:

  1. LanguageAPI support for translations
  2. Allow different timedcause configuration per world
  3. Configurable in-game messaging

You must login to post a comment. Don't have an account? Register to get one!

  • Avatar of ChillerKraft ChillerKraft Dec 19, 2014 at 00:24 UTC - 0 likes

    @filbert66: Go

    sry i was afraid i upset u when i said i wouldnt send my full logs or somethin cause you were replying quickly up until that point :p np im glad to hear ur still there for me

  • Avatar of filbert66 filbert66 Dec 18, 2014 at 20:35 UTC - 0 likes

    @ChillerKraft: Go

    Dude, calm down. I just got back from flying for 21 hours, and I'm not even home yet!

    Remember that this is entirely a volunteer thing. I'm not getting paid and I do it in my free time, which hasn't been much recently. I am working on your request, even while I was on the plane.

    My plugins: Anticreeper, AntiFire, BedCheck, Thor, Unbreakable Items, Enchantment Limiter. Contributor: Tree-Assist

    BFAK:67982,3d6540176e18ca75f0a204a87213d75a51e4b745f16c619b8fcef59ccfeab5cb

  • Avatar of ChillerKraft ChillerKraft Dec 18, 2014 at 10:43 UTC - 0 likes

    why did you stop replying at all after i said i wouldnt send my logs?
    i made a ticket, and sent the error portion. can you reply to the rest of our conversation aswell please??????

  • Avatar of filbert66 filbert66 Dec 15, 2014 at 07:42 UTC - 0 likes

    @ChillerKraft: Go

    Sure, send me a log file (pref a link to a pastebin or Bukkit attachment or something).

  • Avatar of filbert66 filbert66 Dec 15, 2014 at 06:56 UTC - 0 likes

    @ChillerKraft: Go

    You're asking about breaking out different protection of drops?

    Can you give me the server logs for when it reports an error?

  • Avatar of ChillerKraft ChillerKraft Dec 15, 2014 at 06:38 UTC - 0 likes

    i hope you can update this to at least beta :) would be realllly great, i cant find any other plugins as detailed as this one and i realllllly want it :) i tested on 1.7.9, i only added a world on my server to the config option nodamageto nonplayer from fire and tested it there, but the fire still broke the drop.i believe that's all i really need to change in order to see if that works, right? also when i stop server i get an error for the plugin which i suppose means the plugin wont work on beta.

  • Avatar of ChillerKraft ChillerKraft Nov 28, 2014 at 00:04 UTC - 0 likes

    i figured it would be that if anything, but i tried it out and it didnt work. might be because of the bukkit version i was using though which was 1.7.10,
    im using 1.7.9 now, does this work with it?? i could test it again
    id really like my servers item entities to be safe n sound while on the ground

  • Avatar of filbert66 filbert66 Nov 24, 2014 at 21:21 UTC - 0 likes

    @ChillerKraft: Go

    I think drops (Item entities) are impacted by nerf_fire.nodamageto.nonplayer.fromfire along with all non-player entities. Could break that out in a new feature...

  • Avatar of ChillerKraft ChillerKraft Nov 24, 2014 at 05:14 UTC - 0 likes

    o this doesnt block drop damage from fire does it...

  • Avatar of ChillerKraft ChillerKraft Nov 24, 2014 at 04:47 UTC - 0 likes

    work with 1.7.9?? i noticed i need a way to protect drops from fire so im interested in this plugin, looks all around very useful too

Facts

Date created
Apr 16, 2012
Categories
Last update
Mar 09, 2014
Development stage
Release
Language
  • enUS
License
GNU General Public License version 2 (GPLv2)
Curse link
AntiFire
Downloads
67,292
Recent files

Authors