MiniMessage Support!
All messages (except debug messages) can now use MiniMessage formatting in addition to legacy color/formatting codes like &c (red). Some things like coloring the shadow of your text isn't possible in Minecraft, as this is handled client side, but you can now use all 16.7M colors in the RGB spectrum, add hover text to your messages, execute commands when someone clicks them and much more!
Messages sent to players may now also contain PAPI placeholders to show your players additional information like.... the current date and time for example (hover text):
BodyHealth's default messages are still formatted using legacy codes due to them being much shorter.
Storage update!
- Added SQLite storage type (new default)
- Added MySQL storage type for multi server environments
- Improved data handling to only load data needed at a given time, unloading and saving data for players when they disconnect, etc.
With SQLite being the new default storage method, loading times should no longer scale with the number of players of which data is stored that much, resulting in loading times hundreds if not thousands of times faster than before, depending on how many entries there are in your YAML storage. Speaking of which, it is still available to use, as it's way more readable and therefore great for debugging.
You can find storage settings in a new config section between the raytracing- and body-health settings within config.yml :)
Changed Assembled resource packs now have their own output folder and the existing packaging process of BetterHud's assets to a usable resource pack has been updated to:
...fully support all versions from 1.21 upwards (no more red highlighted, outdated packs)
...make it a little more presentable by reworking the pack's description and adding sort of a gradient
...allow customizing the filenames of generated resource packs
Improved Body parts are now case-insensitive across all commands
Fixed Mc 1.21.3 introduced a bug that renders it impossible to retrieve the block that damaged a player under certain circumstances (e.g. lava). BodeHealth now applies damage to all body parts in these cases, instead of spamming errors. (PaperMC/Paper#11984)
Fixed players body parts not being healed after respawning under certain circumstances
Previous behavior: Fully heal players 3 ticks after respawning if the system is enabled where they respawn.
Revised behavior (now): Fully heal players body parts 1 tick after respawning regardless of the system being enabled at their respawn point
After changing this effect from SEND_MESSAGE to just MESSAGE by accident, then pushing a fix for it that somehow didn't end up in any release and ultimately deciding to leave it at MESSAGE, we somehow ended up in a state where the default config generates a SEND_MESSAGE effect whilst the effect engine only knows MESSAGE....
Changed This update therefore adjusts the default configuration and the effect explanation to say MESSAGE instead of SEND_MESSAGE to finally end the confusion
IF YOU CURRENTLY USE THE MESSAGE/SEND_MESSAGE EFFECT, MAKE SURE IT SAYS "MESSAGE"
Fixed POTION_EFFECT effect not correctly parsing the potion effect's amplifier from your effect configuration and defaulting to 256 instead of 1. Please report stuff like this if you notice something is wrong. I won't hunt you down for invalid reports, I promise
Changed (Internal) BodyHealthEffects.java is now split up into an EffectHandler and a unique effect class per effect, implements a new BodyHealthEffect interface. This change aims to make the code more readable and to make it easier for future addons to add their own effects.
Improved Some code cleanup here and there to reach that A+ code quality on CodeFactor
Improved Rewrote all existing commands to make arguments optional where possible. You can find the updated command syntax at the top of your config.yml instead of the old one.
[Requested by Jekyll] Added a new command (/bodyhealth add [player] [body part] ) for you to be able to modify health values relatively.
Improved Rewrote all TAB completions to make them truly intelligent, suggesting command syntax and possible inputs not only based on your position within the command, but also by analysing your partial inputs and comparing them to possible command completions
Added Health values in commands are now taken as raw health values per default, meaning they are calculated into the corresponding percentages, taking your configuration per body part into account, but you can still modify health values directly in percent by appending a '%' sign to your value. The new TAB completions make sure you don't forget that option
Added support for popular vanish plugins like PremiumVanish and SuperVanish, excluding vanished players from TAB completions.
Added a new config option for you to choose if you also want to force-keep body parts at their new state for the set amount of seconds, that have been modified relatively (Good for excluding health related items, so it's default is "false").
Improved All language files have been updated to not only include the new command, but also a new format, containing definitions for body part names, to make smoother command responses possible. All natively supported languages are updated automatically, but if you made your own language configuration, you have to update it to the new format.
Changed Moved language file generation and validation messages from normal- to dev-debug mode.
Improved Rewrote the language system to support multiple built-in languages.
Added the top 30 languages (according to crowdin) as built-in languages, those being
- Afrikaans
- Arabic
- Catalan
- Chinese (simplified)
- Chinese (traditional)
- Czech
- Danish
- Dutch
- English (as before, but filename changed to en.yml)
- Finnish
- French
- German
- Greek
- Hebrew
- Hungarian
- Italian
- Japanese
- Korean
- Norwegian
- Polish
- Portuguese
- Portuguese (Brazilian)
- Romanian
- Russian
- Serbian (Cyrillic)
- Spanish
- Swedish
- Turkish
- Ukrainian
- Vietnamese
I only speak English and German fluently, so the other languages have been translated by an AI. If you happen to speak one of them and you notice mistakes, feel free to reach out to me. You may also send me language configurations that aren't natively supported yet so I can change that for you :)
Improved the effects system to only (re)calculate effects when necessary.
Changed Commands are now handled by a CommandManager. This was done to deal with subcommands as individual classes, to enable addons to add their own.
Added an addon system to extend the functionality of BodyHealth without relying on third-party plugins. In the future, new features may be published as addons, allowing you to choose which functionalities you want to include, optimizing server space and CPU usage. You may also write and publish your own addons. Here's a guide for doing so: https://github.com/Mitality/BodyHealth/wiki/Addons If you happen to write a cool addon, let me know and I'll feature it somewhere.
Changed Data is now stored within a data folder, instead of directly within the plugin folder. To still use your current data file, move it to plugins/BodyHealth/data and name it bodyhealth.yml.
Added A new language option will automatically be added to your config.yml which stays where it is now. It allows you to chose a language from a new language folder at plugins/BodyHealth/language to allow native support for more languages in the future. To keep your current language configuration, move it to plugins/BodyHealth/language and either name it en-us.yml, or set the language option in your config.yml to the name of your language file without the .yml
.
Feel free to add your own translations and submit them to me to be added natively.