Releases: Masstrix/Eternal-Nature
2.2 Snapshot 1 for 1.19
This version is intended for use on 1.19, tested with 1.19.1.
Handful of changes to the overall workings of the plugin was done. Some of these changes are from when I last worked on the project a couple years ago so I'm not one hundred percent on where things were left at.
This update I changed from using gradle to maven as it was the easiest solution to get the mappings using the specialsource-maven-plugin
plugin to handle it. This has actually also made it just easier to manage over gradle surpassingly with it all being neatly handled.
You can download this version from the attached jar. There may be issues with it but from initial running it appears to run as expected so far.
2.1.2 Snapshot 1 Build 1083
TRIGGERS
Triggers add the option for you to add your own events when something happens related to the plugin such as their temperature going below a curtin level. Triggers currently are limited to only player specific events and don't support global events.
Triggers can be set to loop while all of its conditions are true using the repeat
option set to true. You can change the interval in which the trigger is fired. This value is in increments of 500ms.
CONDITIONS & OPERATORS
Conditions are what is required for the trigger to be activated, you can think of them as if this is the value being checked If we for example used the temperature condition, all operations will be checking the players temperature. Only if all conditions are true will the actions be preformed for that player. There is no limit to how many conditions can be added, though it is recommended to keep it few as possible as the more you have the more computation it will take for each player.
Current conditions are:
- temperature - Accepts math operators
- hydration - Accepts math operators
Each condition requires some way of check if something is true or false. This is where operators are used. Under the condition you can define operators to do a simple calculation to check if the condition is true.
Current Operators:
- Math
less-than
equals
greater-than
ACTIONS
Actions are what are called when the trigger is active/activated. This currently only supports playing a sound and sending a message though this could be expanded on later.
Current actions:
- message - Sends a message to the player, this accepts multiple lines or a single string.
- play-sound - This accepts a list or single sound that will be played. For this you need to supply a sound name (this is the same as what you would use if using the
/playsound
command. The other two optional settings is the pitch and volume of the sound.
Example of a trigger:
is-cold:
conditions:
temperature:
less-than: 0
equals: 0
repeat: true
interval: 30000
actions:
message:
- ' &e! You are cold, get by a fire and warm up.'
play-sound:
- sound: block.note_block.chime
volume: 0.2
pitch: 0.1
DETAILS
ADDED
- Added Triggers.
- Added placeholder
thirst_status
. - Added option
wait-to-rest
for leaf particles. When enabled they will always reach the ground before de-spawning. - Added language zh_CN thanks to #10
- Added ability to set players hydration level by defining a int number after the players name
/hydrate <player> <amount>
. - Added player names for tab complete for hydrate command.
- Added new debug options for better debugging.
FIXED
- Fixed #7.
CHANGED
- Placeholder id changed from
eternalnature
tonature
. - Changed placeholder
thirst_effect_timer
.
General Patch
ADDED
- Placeholders
%temperature_color%
%temperature_color_rgb%
%hydration_bubbles%
%hydration_percent%
%wind_gusting%
. See the wiki for more information. - Added Español language.
- Added temperature scanner settings menu.
FIXED
- Fixed action bar getting stuck on.
- Fixed leaf particles sometimes being null and erroring out when animating.
- Rounded placeholder numbers to correct decimal places.
2.1 Release
See Snapshot-1 and Snapshot-2 to see all changes made for this update.
This is just the changes made in this release.
ADDED
- Added more configuration for temperature.
- Added hex/RGB usage for temperature gradients.
- Added Wind and Gusts.
- Added more configuration for hydration.
- Added an icons section in the configuration.
- Re-Added render-delay-ticks option from #4
CHANGED
- New method of loading configs.
- Leaf particles a now more accurately calculated.
- Hydration now uses a new format parser.
- Set min required version to 1.16.
FIXED
- Fixed clothing and wether not loading from the config.
- Fixed concurrent modification issue with shadow entities.
- Sweat particles would show even if your hydration is at 0.
2.1 Snapshot 2: Major Refresh
ADDED
- Added XP Bar for display option for Hydration.
- Added option to set burning and freezing damage amount.
- Added option to set icons
- Added option to set if players can drink from open water.
- Added option set how much hydration a player will get from consumable items.
- Added Placeholder API support.
CHANGED
- Config handling was completely overhauled.
- Split handling of stat rendering into their own components.
- Make the Action bar component based.
FIXED
- Leaf Particles are no longer world entities and spawn using packets. This should fix an issue with them getting stuck in the world.
- Fixed issue with menu buttons not working correctly.
- Plants could auto plant them self on water.
- Leaves could spawn even when underwater.
- Unlit campfires would still emit temperature.
2.1 Snapshot 1
This release fixes many bugs and issues with previous versions but also adds many new features. This is not the final release of this version, if you encounter bugs please make an issue here or a message on discord.
Per world temperatures
World specific temperature configs have been created to allow worlds have their own environments.
To generate a config for a world, run the command /en world <world name> makeCustomConfig
. Once run you can find the config in the plugins folder under worlds. Deleting this config will make the world go back to use the default temperature-config.yml.
Language Engine
The language engine allows for you to add as many translations as you like to the plugin.
Creating a new translation
To make a new language go into the lang folder and create new .lang file. This can be named anything. Once created you can copy the contents from en.lang
and edit them. Any translation that has not been added will default back to en.lang.
Example .lang contents
This will make a language named Snazzy and only translate the death message for dehydration. All other messages will be default.
// You can add comments to the file
// using a double ford slash at the beginning of the line.
#header
name=Snazzy
#
death.dehydrate=%name% died from being dehydrated
Loading your Language
Once edited and saved you can open the settings menu in game, go to language settings and click Reload Languages
.
Additions
- Created a Language Engine to handle multiple languages. You can now create .lang files to create translations for any language you want. The language can be changed live in the settings menu.
- Added temperature dissipation between blocks. If a block is hot, and obstructed from view. That obstruction will absorb some of the emitting blocks heat.
- Fixed support for cold blocks.
- Added more optimisation for block scanning when players are in motion. Scan volumes now scale depending on the players motion velocity. Faster they move the smaller of an area is scanned and less precise of a scan is done.
- Added support for multi world configs for temperatures.
- Added command /eternal world
- reload, reloads the world config.
- makeCustomConfig, makes a custom temperature config for the world.
- info, display info about this world. - Added check for if a player is dead. Is they are they will no longer be included in processed (reduces load slightly while if someone does not respawn right away).
Changes & Fixes
- Fixed deaths sometimes throwing errors.
- Fixed Version Checker comparison not working correctly.
- Fixed Plants being able to auto plant on top of water.
- Improved player tick for hydration and temperature.
Config Patch
Small patch that fixes configs not loading correctly.
Leaf Spawning Patch & Updated Settings
Small patch that fixes leaf spawning not working correctly from the previous patch. A new Menu system was also implemented allowing for easier making of setting menus.
Whats Changed & Updated
- Fixed leaf spawning using the incorrect variables. (yay, they spawn correctly again!)
- Changed spawn-chance for leafs in the config to be a 0 - 1 value.
- Created new UI backend system for easier making of new UI
- Updated Settings UI
- Completely Removed all references to waterfalls
Improved Leaf Particle
This update patches an issue where leaf particles would become stuck after a crash or improper shutdown.
Whats New & Improved
- Updated scanner to use same system for temperature allowing for more control.
- Added more Config options for the leaf particle.
- Implemented an entity cache data file system to store entity data.
range - Sets the range of hw far away leaf particles can spawn from
fidelity - Sets the scanning fidelity, higher this is the less blocks around the player are scanned at once.
max-particles - Sets a particle cap for how many can exists at one time.
scan-delay - Sets the delay time between each scan in ticks. This has a min value of 10.
spawn-chance - Sets the chance of a particle being spawned.
2.0 Prerelease 2
INFO
This is the second pre release of 2.0. Some features have been refined in this version along with a couple bug fixes and improvements. Some features are still disabled such as block based temperatures.
ADDED
- Food Products such as meats can now rot if left on the ground for too long.
- Added Events for actions
ItemBakeEvent
ItemPlantEvent
ItemRotEvent
LeafSpawnEvent
SaplingSpreadEvent
. - Improved config UI in game.
FIXED
- Leaf effects would sometimes stay after a reload or restart and not get removed.
- Saplings from the Sapling Spreader were glowing.
OTHER
- Block based temperature is not being used at the moment as it produces to much load on the server with the current method of generating map. It will be re-added at a later date when a better method for generating block based temperature is implemented.