- Added new optional whitelist configuration feature, which allows you to specify what blocks should be healed in an explosion:
- You will now find a new configuration section above the replace map to customize the whitelist. To add entries to the whitelist, you can add a string containing the block's namespace and identifier separated by a colon to the array, like shown in the example below. Separate each entry with a comma.
#Use an optional whitelist to customize which blocks are allowed to heal. To add an entry, specify the block's namespace
#along with its identifier, separated by a colon, and add it in-between the square brackets below. Separate each entry with a comma.
#Example entries:
#whitelist_entries = ["minecraft:grass", "minecraft:stone", "minecraft:sand"]
[whitelist]
whitelist_entries = ["minecraft:placeholder"]
- Added new "enable_whitelist" preference to toggle the usage of the whitelist. It is disabled by default
#(Default = false) Enable or disable the usage of the whitelist
enable_whitelist = false
-
Renamed "settings" sub-command category to "preferences".
-
Moved "reload" command to outside the "preferences" sub-command category and renamed it to "reload_config".
Please make sure to report any issues or make suggestions in the issue tracker or in the Discord server.
-
Added 2 new healing mode settings:
- "Blast resistance-based healing mode": This mode will make blocks with lower blast resistance heal faster than those with a higher blast resistance. A small randomized amount of delay is added or subtracted from the block placement delay of each affected block. This results in blocks tending to heal in bursts, rather than in predictable timings.
- "Difficulty-based healing mode": This mode makes the healing of explosions speed up when the difficulty of the server or world is set to peaceful or easy, and slow down when it is set to normal or hard. Additionally, if the difficulty is set to hard, there is a considerable chance that explosions will not heal all the way through. Note that changing the difficulty will not affect currently on-going explosions with the Difficulty-based healing mode enabled.
- The "mode" sub-command and its settings have been modified to accommodate for these additions. To see the current healing mode, run
/creeper-healing mode
. To select a healing mode, such as the daytime healing mode, run/creeper-healing mode daytime_healing_mode
. - The config file has been retouched as well. You will now see a setting section named "explosion_healing_mode" with a single setting named "mode" to select a mode by using one of (currently) 4 strings, mentioned in the config file itself.
- Note that if you currently have the Daytime Healing mode enabled, you will have to manually set it back to that mode upon updating the mod.
-
Added 2 new preference settings:
- "heal_on_healing_potion_splash": Makes any explosion hit by a splash potion of healing begin healing immediately, regardless of explosion healing mode. Enabled by default.
- "heal_on_regeneration_potion_splash": Makes explosions created with the default healing mode begin their healing process immediately. This only sets the explosion heal delay of the explosion to 0. Enabled by default.
-
The "requires_light" preference setting has been removed and has instead been integrated into the Daytime Healing Mode, affecting explosions created with that healing mode enabled only.
-
Note:
If this section of the config file refuses to go away
#Toggle different special modes for explosion healing.
[modes]
#(Default = false) Whether or not daytime healing mode should be enabled.
#Explosions will wait until the next sunrise to start healing, and they will finish healing at nighttime.
#Note that this only applies for explosions that occurred while this setting was enabled.
daytime_healing_mode = false
you can safely remove it.
Please make sure to report any issues or make suggestions in the issue tracker or in the Discord server.
-
Added 2 new healing mode settings:
- "Blast resistance-based healing mode": This mode will make blocks with lower blast resistance heal faster than those with a higher blast resistance. A small randomized amount of delay is added or subtracted from the block placement delay of each affected block. This results in blocks tending to heal in bursts, rather than in predictable timings.
- "Difficulty-based healing mode": This mode makes the healing of explosions speed up when the difficulty of the server or world is set to peaceful or easy, and slow down when it is set to normal or hard. Additionally, if the difficulty is set to hard, there is a considerable chance that explosions will not heal all the way through. Note that changing the difficulty will not affect currently on-going explosions with the Difficulty-based healing mode enabled.
- The "mode" sub-command and its settings have been modified to accommodate for these additions. To see the current healing mode, run
/creeper-healing mode
. To select a healing mode, such as the daytime healing mode, run/creeper-healing mode daytime_healing_mode
. - The config file has been retouched as well. You will now see a setting section named "explosion_healing_mode" with a single setting named "mode" to select a mode by using one of (currently) 4 strings, mentioned in the config file itself.
- Note that if you currently have the Daytime Healing mode enabled, you will have to manually set it back to that mode upon updating the mod.
-
Added 2 new preference settings:
- "heal_on_healing_potion_splash": Makes any explosion hit by a splash potion of healing begin healing immediately, regardless of explosion healing mode. Enabled by default.
- "heal_on_regeneration_potion_splash": Makes explosions created with the default healing mode begin their healing process immediately. This only sets the explosion heal delay of the explosion to 0. Enabled by default.
-
The "requires_light" preference setting has been removed and has instead been integrated into the Daytime Healing Mode, affecting explosions created with that healing mode enabled only.
-
Note:
If this section of the config file refuses to go away
#Toggle different special modes for explosion healing.
[modes]
#(Default = false) Whether or not daytime healing mode should be enabled.
#Explosions will wait until the next sunrise to start healing, and they will finish healing at nighttime.
#Note that this only applies for explosions that occurred while this setting was enabled.
daytime_healing_mode = false
you can safely remove it.
Please make sure to report any issues or make suggestions in the issue tracker or in the Discord server.
-
Added 2 new healing mode settings:
- "Blast resistance-based healing mode": This mode will make blocks with lower blast resistance heal faster than those with a higher blast resistance. A small randomized amount of delay is added or subtracted from the block placement delay of each affected block. This results in blocks tending to heal in bursts, rather than in predictable timings.
- "Difficulty-based healing mode": This mode makes the healing of explosions speed up when the difficulty of the server or world is set to peaceful or easy, and slow down when it is set to normal or hard. Additionally, if the difficulty is set to hard, there is a considerable chance that explosions will not heal all the way through. Note that changing the difficulty will not affect currently on-going explosions with the Difficulty-based healing mode enabled.
- The "mode" sub-command and its settings have been modified to accommodate for these additions. To see the current healing mode, run
/creeper-healing mode
. To select a healing mode, such as the daytime healing mode, run/creeper-healing mode daytime_healing_mode
. - The config file has been retouched as well. You will now see a setting section named "explosion_healing_mode" with a single setting named "mode" to select a mode by using one of (currently) 4 strings, mentioned in the config file itself.
- Note that if you currently have the Daytime Healing mode enabled, you will have to manually set it back to that mode upon updating the mod.
-
Added 2 new preference settings:
- "heal_on_healing_potion_splash": Makes any explosion hit by a splash potion of healing begin healing immediately, regardless of explosion healing mode. Enabled by default.
- "heal_on_regeneration_potion_splash": Makes explosions created with the default healing mode begin their healing process immediately. This only sets the explosion heal delay of the explosion to 0. Enabled by default.
-
The "requires_light" preference setting has been removed and has instead been integrated into the Daytime Healing Mode, affecting explosions created with that healing mode enabled only.
-
Note:
If this section of the config file refuses to go away
#Toggle different special modes for explosion healing.
[modes]
#(Default = false) Whether or not daytime healing mode should be enabled.
#Explosions will wait until the next sunrise to start healing, and they will finish healing at nighttime.
#Note that this only applies for explosions that occurred while this setting was enabled.
daytime_healing_mode = false
you can safely remove it.
Please make sure to report any issues or make suggestions in the issue tracker or in the Discord server.
- Fixed replace map config section moving to the top of the config file when no entries are included. If the replace map contains no entries, a placeholder entry will be included instead.
- This is a straightforward port of the mod from 1.20.1+ to 1.19.2. I cannot guarantee unlimited support for this version of the mod.
Report any issues or make suggestions in the issue tracker or in the Discord server.
- Fixed replace map config section moving to the top of the config file when no entries are included. If the replace map contains no entries, a placeholder entry will be included instead.
Report any issues or make suggestions in the issue tracker or in the Discord server.
- Fixed replace map config section moving to the top of the config file when no entries are included. If the replace map contains no entries, a placeholder entry will be included instead.
- This is a straightforward port of the mod from 1.20.1+ to 1.19.4. I cannot guarantee unlimited support for this version of the mod.
Report any issues or make suggestions in the issue tracker or in the Discord server.
- Fixed joining explosions feature not working on servers or clients with the Lithium mod installed.
Report any issues or make suggestions in the issue tracker or in the Discord server.
Warning!
-
This update makes the
creeper-healing.json
file obsolete and will no longer be utilized. I suggest saving these settings so you can transfer them over to the new config file, namedcreeper-healing.toml
. -
This update will cause explosions currently stored in disk to be unsuccessfully read upon server start. As a result, any explosions that were pending to be healed will be lost. Unfortunately, there is nothing I can do about this. If you want to check whether your server or world has explosions pending to be healed, open the world directory and look for the scheduled-explosions.json file. If it is not empty, I suggest you let those explosions heal first before updating. After initial server startup after updating the mod, explosion event storage and retrieval should work normally.
Changelog
This update contains a full rework of the config file and system, the ability to configure the healing of explosions from multiple sources separately, a new system to join explosions which are waiting to be healed if they happen close enough together, and compatibility with Minecraft version 1.20.2.
- The config file has been reworked. The format of the file has been changed to
.toml
. This means that if you update the mod, the old config file will not be read and written to, and a new config file will be generated instead, with default values. This new config format allows for more organized config settings, as well as the inclusion of comments. In all other aspects, it works the same. One thing to keep in mind is that thereplace_map
config entries use a=
separator instead of a:
, and you no longer need to separate the entries with commas, only with new-lines. - You can now enable the healing of explosions caused by TNT, TNT minecarts, Withers, Ghasts, and of course, Creepers. Each explosion source can be individually toggled in the
explosion_sources
section of the config file, or via new sub-commands under theexplosion_sources
sub-command. - If an explosion occurs close to another explosion which is currently waiting to start healing, both explosions will combine into one. This makes for a more natural healing of explosions that overlap each other. Keep in mind that when two or more explosions are combined, the resulting combined explosion will inherit the properties (explosion timer and the mode) from the most recent explosion.
- This new version is compatible with both 1.20.1 and 1.20.2.
This is a big release so there could be some bugs or issues that I failed to catch during development, so please make sure to report them in the issue tracker or in the Discord server. I'm also looking for suggestions for more explosion healing modes, as I would like to further expand on this feature.
Known issues
- Using this mod along with Lithium causes the join explosions feature to break.
This update includes improvements to some core functionalities of the mod.
- Improved block healing order.
- Blocks further from the center of the explosion will be healed first. This makes the healing process look more natural.
- Blocks that require another block to support them (such as torches and lanterns) will be postponed until they can be placed. If the healing process ends and the postponed blocks are still unable to be placed, they will remain like so. This prevents such blocks from being healed mid-air.
- The replace list feature has been improved. The block that will be used to heal another block will inherit the properties of the latter. For example, setting an oak log to be replaced with a stripped oak log will make it keep the orientation. This results in a more seamless replacement of blocks.
- Players and entities which are currently occupying a space where a block is about to be healed will get pushed upwards, unless there is not enough space for the entity to be moved to that location.
- The config file will now update its values on server or world startup as well as during server shutdown.
As always, please report any bugs or issues, or suggest new features in the issue tracker or in the mod's discord server.
Warning!
This update will cause explosions currently stored in disk to be unsuccessfully read upon server start. As a result, any explosions that were pending to be healed will be lost. Unfortunately, there is nothing I can do about this. If you want to check whether your server or world has explosions pending to be healed, open the world directory and look for the scheduled-explosions.json file. If it is not empty, I suggest you let those explosions heal first before updating.
After initial server startup after updating the mod, explosion event storage and retrieval should work normally.
Changelog
- Added new "daylight_healing_mode" to make explosions wait until the next sunrise to start healing. Once they start healing, explosions will finish healing at nighttime. Disabled by default.
- Added new "requires_light" to make explosions need at-least some light from the sky or from blocks to be able to heal fully. Disabled by default.
- Added new "drop_items_on_creeper_explosions" setting to change whether a creeper explosion should drop items. Enabled by default.
- Changes to the "block_placement_delay" setting will now affect explosions that are currently being healed. This does not affect explosions which occurred while the "daytime_healing_mode" setting was enabled.
- Split commands between "mode" and "settings". The "mode" sub-command only contains the "daytime_healing_mode" option for now, but more modes are planned for the future. The rest of the settings can be found in the "setting" sub-command. Added the corresponding commands for the 3 new config settings.
- Fixed storing empty creeper explosions, such as those that occur in water.
- The mod will now correctly warn for invalid delay settings during game or server startup.
As always, if you have any suggestions or would like to report an issue, you can do so in the mod's issue tracker. I have also made a simple Discord server for more direct and faster communication.
Further details for this changelog can be found in the Github release.
Warning!
This update will cause explosions currently stored in disk to be unsuccessfully read upon server start. As a result, any explosions that were pending to be healed will be lost. Unfortunately, there is nothing I can do about this.
If you want to check whether your server or world has explosions pending to be healed, open the world directory and look for the scheduled-explosions.json
file. If it is not empty, I suggest you let those explosions heal first before updating.
After initial server startup after updating the mod, explosion event storage and retrieval should work normally.
Changelog
- Added a new feature to play a block placement sound effect when a block is healed. This can be turned on and off globally via a new setting in the config called
"block_placement_sound_effect"
, which can be set to eithertrue
orfalse
.- Added commands:
/creeper-healing block_placement_sound_effect [true or false]
: Change whether or not a block heal should play a sound effect. Change betweentrue
andfalse
. This setting istrue
by default. Use this command without passing a value to see the current value in the config.
- Improved affected blocks healing order. The mod will now heal solid blocks bottom to top first, then transparent blocks bottom to top. This helps avoid placing transparent blocks such as torches and lanterns mid-air.
- Beds, tall grass, large ferns, sunflowers, and other blocks composed of two blocks will now heal both halves at the same time.
Please report any bugs or issues in the issue tracker.
This new release includes a rework to the command system and small changes to the config file. It is not necessary to reset the config file after updating the mod.
- Removed the
set_
prefix from settings related commands. - Using a sub-command (except for
/creeper-healing reload_config
) without changing the value will now display the currently set value in the config. For example, using/creeper-healing block_placement_delay
will display the current value for this delay. - Both delays now support decimal values instead of integers.
- This allows you to, for example, use a delay of 0.5 seconds, which will result in a delay of 10 ticks.
- Note that these delays are internally treated as ticks instead of seconds. Seconds are converted to ticks via multiplying the seconds times 20, then rounding the result. If this operation results in 0 or if the seconds are negative, an error message will be displayed in chat when trying to change the value. If a very low value is set directly in the config file, a value of 1 second will be used instead, and a warning message will be displayed when using
/creeper-healing reload_config
, and in the logs during game or server startup when the config is initially loaded.
Changes over Beta v0.0.7:
-
Added commands for changing most of the mod's settings:
/creeper-healing set_explosion_heal_delay [integer argument]
: Change the delay in seconds between each creeper explosion and its corresponding healing process. The change will only apply for explosions that occur after this command was executed./creeper-healing set_block_placement_delay [integer argument]
: Change the delay in seconds between each block placement during the creeper explosion healing process. The change will only apply for explosions that occur after this command was executed./creeper-healing set_heal_on_flowing_water [true or false]
: Change whether or not the mod should heal blocks where there is currently flowing water./creeper-healing set_heal_on_flowing_lava [true or false]
: Change whether or not the mod should heal blocks where there is currently flowing lava./creeper-healing reload_config
: Allows you to reload the config. You can now change the values of the config file and apply them to the game or server without having to restart. Note that the reloaded changes will only apply for explosions that occur after the command was executed, except forheal_on_flowing_water
andheal_on_flowing_lava
.
-
Extra Notes:
- If the config file is deleted while the game or server is running, a new config file will be created upon world or server shutdown with default values.
- The replace list still needs to be changed by editing the config file directly.
- All of these commands require operator permissions.
If you would like to suggest a feature or change, or report an issue, please do so in the issue tracker.
Warning!
This update contains changes to the config file. This will require you to save your current settings somewhere else, delete your current config file, start the game or server and let the mod generate a new config file, then put the values back in the config and restart.
- Added 2 new config settings:
-
heal_on_flowing_water
: Change whether or not the mod should heal blocks where there is currently flowing water. Change betweentrue
andfalse
. This setting istrue
by default. -
heal_on_flowing_lava
: Change whether or not the mod should heal blocks where there is currently flowing lava. Change betweentrue
andfalse
. This setting istrue
by default.
-
Please report any issues in the issue tracker.
- On clients and servers: Fixed bug where it would reset the creeper explosion healing processes for explosions rescheduled after world/server restart, and heal them all at the same time.
This version includes a fix for the last known bug in the mod, and I'm now happy to call this version the first official release. I still have more features planned, such as implementing commands for configuring the delays, cashing creeper explosions in unloaded chunks to avoid them generating chunks, and other fun stuff. Sorry for spamming updates in such a short amount of time xd. Hopefully this is the last update in a bit.
- For clients: Fixed a bug where the delays would shorten when reentering a world without exiting the game.
- For clients: Fixed bug where it would it would store duplicate Explosion data upon each world exit.
- Known Issue: Reentering a world/restarting the server causes the delays of the rescheduled explosions (from before the server was restarted/the world was reentered) to reset to their configured value, and they all start healing at the same time.
-
Added feature for remembering past explosions and rescheduling them after server restart/world reentering.
-
Known Issue: On clients, reentering a world will cause the delays to be halved.
-
Known Issue: On clients and servers, restarting the server or reentering the world will reset the delays.
-
Thanks to @dale8689 for massively helping me out with this update.