Skip to content

Releases: RoughlyUnderscore/UnderscoreEnchants

v2.1-beta1

31 Dec 08:47
c899533
Compare
Choose a tag to compare
v2.1-beta1 Pre-release
Pre-release

🎆 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

  1. The configuration has changed its structure. You should delete your old configuration (if needed, make a backup to then move your old settings manually).
  2. 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.
  3. 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 combine chance:X and delay: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 accepts bossbar, particles or none to indicate activation of the enchantment. For backwards compatibility, the default value will be bossbar.
  • 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_PICKAXE

Used like this:

applicable: grandItems

The 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.