Releases: RoughlyUnderscore/UnderscoreEnchants
v2.1-beta1
🎆 Update 2.1 is finally out! Kind of.
The changelog is very large, so it is a beta-release. Hotfixes and patches should be expected. This update is NOT backwards compatible.
How to update
- The configuration has changed its structure. You should delete your old configuration (if needed, make a backup to then move your old settings manually).
- The enchantments' structure has changed. If you were using default enchantments, you should delete them and use
/ue default true
again.
2.1) If you were using custom enchantments, you should edit them manually according to the new documentations. - After uploading the new jar-file and deleting the old one, do NOT reload your server! Restart it instead.
Changelog
- ALIASES! Conditions, actions and placeholders now have aliases for convenience and conciseness. They may or may be not listed somewhere in the wiki - for up-to-date information look at the code (parsers).
- API! Two new API methods have been added (
EnchantmentLoadResponse loadEnchantment
,EnchantmentUnloadResponse unloadEnchantment
). As of UE release v2.1-beta1, the latest UEAPI version is v2.1.2.- CLEANUP! A lot of code has been cleaned up.
- GUI! Old custom GUIs have been completely ditched! UnderscoreEnchants now hooks into the vanilla enchantment table & anvil GUIs.
- IMPROVED EASTER EGG! 🍰 🥚
- NEW ACTION POSTFIX!
chance:X
will have the action be executed with a change (range: 1-100). To combinechance:X
anddelay:X
, separate them with a semicolon (;
)- NEW ACTION!
console-command <command>
will have a command be executed on behalf of the console- NEW ACTION!
player-gamemode <gamemode>
will have a player change their gamemode- NEW COMMAND! Downloading default enchantments has migrated from
/ue download default <true/false>
to/ue default <true/false>
.- NEW COMMAND!
/ue load <filename>
will find the enchantment and load/reload it.- NEW COMMAND!
/ue reload
will have the enchantments and the configuration be reloaded.- NEW COMMAND!
/ue unload <filename>
will find the enchantment and unload it.- NEW LIBRARY! UnderscoreEnchants migrated to ACF for command handling (resulting in larger file size).
- PLACEHOLDERS! Conditions now support PlaceholderAPI with the
%placeholder%
syntax. As such, UnderscoreEnchants' action placeholders now have the<placeholder>
syntax to get rid of ambiguity.- QUALITY OF LIFE! Condition evaluation for comparative conditions is now done with comparative operators (
>
,<
, etc) instead of hardcoded conditions (health-lower
,health-is
, etc)- QUALITY OF LIFE! Material parsing for actions now supports complex materials, such as
STONE:3;COBBLESTONE:15
;STONE:50%;COBBLESTONE:30%
;STONE:3:15%;COBBLESTONE:20%:30;GRANITE:10;OAK_LOG:15%
; etc.- REWRITE! The actions, placeholders & conditions systems have been fully rewritten for convenience. This may not be the last rewrite.
- STRUCTURE! A new field
condition-flag
now allows for condition checking to be done in a different way. At the moment there's only one flag (need-one
) - using this flag will only require a single condition to be true.- TAB COMPLETION! Tab completion has been revamped and is much better now.
- A HELL TON OF BUGFIXES!
- A LOT MORE STUFF!
What to expect
The Todo list currently contains a lot of items for 2.2, some of which will probably be released during minor updates. Here are some of them:
- CONDITION!
in-water
will indicate whether the player is in water.- CONFIGURATION! Messages will migrate to their own files (such as
messages/en.yml
).- GUI! Grindstones will be supported.
- NEW ACTION!
drop-item <material> <world> <x> <y> <z>
will have an item be dropped at a certain location.- NEW ACTION!
player-drop-item <material> <x> <y> <z>
will have an item be dropped at a certain location at the player's world.- NEW ACTION!
player-timed-actionbar <duration in seconds> <text>
will have an actionbar be displayed to the player for a certain amount of time. Note that this duration is a rough approximation and the actionbar shall be displayed for a couple more/less seconds.- NEW LIBRARY! UnderscoreEnchants will migrate to ConfigLib in order to properly support configuration changes.
- PLACEHOLDERS! A new global placeholder
<block_at_[WORLD]_[X]_[Y]_[Z]>
will return the block material at the given location.- PLACEHOLDERS! A new global placeholder
<closest_player>
will return the name of the closest player.- REWRITE! The current registration system is ugly! Is there really a need for a separate enchantment class for every event? Investigate and potentially rewrite.
- STRUCTURE! A new field
activation-indicator
acceptsbossbar
,particles
ornone
to indicate activation of the enchantment. For backwards compatibility, the default value will bebossbar
.- STRUCTURE! A new field
conflicts-with
takes a list of strings to indicate the enchantments that this enchantment conflicts with.- STRUCTURE! A new field
unique
accepts a boolean to indicate whether this enchantment is the only one that's allowed on the item.- STRUCTURE! Instead of hardcoding applicables, they will now be accessible at
applicables.yml
with the following syntax:grandItems: - DIAMOND_PICKAXE - NETHERITE_PICKAXEUsed like this:
applicable: grandItemsThe default applicables (tools, weapons, etc.) will be created with the file by default.
- TUTORIAL! A video tutorial on how to setup the plugin and create enchantments will be made.
Please report each and every bug to my Discord or GitHub Issues!
How to report a bug (from CONTRIBUTING.md)
If it's a minor bug, report it in GitHub Issues. However, if it's a major exploitable bug or a security exploit, refrain from using issues, and instead open a ticket in my Support Discord server. Before opening an issue, please also make sure that there's no (recent) issue already open on that bug.