- Fixed not checking return value when trying to give players the result of crafting/upgrading an AE before clearing the items. Thanks, @Tanguygab for the heads-up!
- Added config option to make it possible to upgrade diamond AEs to netherite ones.
- Refactored code a bit to avoid duplicating stuff between the crafting/upgrading classes.
- Switched to using NamespacedKeys for enchantments instead of their names. This means that all properly registered custom enchantments are supported in one go.
- Removed the overengineered enchantment platform stuff. That was built with the idea that every custom enchantment plugin would have their own way of implementing custom enchantments. However, now that I found out that custom enchantments can just be registered using NamespacedKeys, none of this is required anymore.
- When a netherite ArmoredElytra is dropped (death, dispenser, whatever), it will now drop as a netherite chestplate instead of as an elytra. This allows it to not burn in lava and stuff (which is handled client side).
- Allow repairing AEs using more than 1 repair item at a time. Though it currently doesn't update the anvil GUI properly for whatever reason. However, when you take it out, it will have the correct durability.
- Extracted all anvil-related events from the EventHandlers class into the new AnvilHandlers class. This separation makes it possible to load different types of creation methods later (smithing table).
- Netherite Armored Elytras now have 3 armor toughness to match netherite chestplates.
- Fixed missing "netherite" in the list of supported tiers in the translation file.
- Blacklisted version 758abbe of Spigot. This version contained an NBT-related bug that caused some serious issues. When loading the plugin on this version, the intialization process is aborted and you won't be able to craft or otherwise obtain any new ArmoredElytras.
- Added support for creation and general usage of NETHERITE ArmoredElytras.
- Improved ArmorTier retrieval on 1.16+. A PersistentDataContainer is now stored in the item meta to keep track of the armortier of an item. Instead of using the armorvalue of an item to figure out which armortier an item is (which is how it was done before), this container is used instead. This is not only simpler (and probably more reliable), but it also solves the issue where armor values caused collisions between two types (e.g. gold and chain or diamond and netherite).
- Added Netherite tier to translation system.
- Added initial 1.16+ support. This basically means that all the old functions are supposed to work, but none of the new ones are implemented yet (netherite, crafting in smithy). The '+' part refers to the fact that the NBTEditor has a new 1.16+ implementation that uses the Spigot API, which means that it should work just fine in newer versions.
- Using .equals() instead of == for some Integer/Double comparisons.
- Fixed the updater thinking a result of UP_TO_DATE meant that the plugin was outdated. This happened because this system is used like this in BigDoors in case the active BD version is a dev-build. However, AE doesn't used dev-builds.
- Fixed resources being placed in the jar twice.
- When the provided text file includes ".txt" in the config, the plugin won't add another ".txt" to the filename (ending up as "filename.txt.txt"). This is a bit more user-friendly.
- Bumped version number to 2.4.13
- Backported the Messages system from BigDoors v2. This new system does not overwrite the default language file anymore (nor does it make it read-only). Instead, it reads as many translations from whatever file is selected and takes any missing translations from the translation file inside the jar (and lets the admin know that a translation is missing in the console). This makes the plugin a bit friendlier to use for people that cannot be bothered to read the disclaimer at the top of the file.
- Updated the updater to use the same system BigDoors uses. This system is much cleaner and better and it uses Spiget to check for updates instead of DBO.
- Introduced new config option "auto-update" to control if new updates are downloaded automatically or not.
- Overhauled the way armor values are retrieved so that this plugin is compatible with Paper 178+. This new method should also be a bit more robust against future changes.
- Reformatted the code some.
- Fixed FlyDurabilityHandler. It used to check Player#isFlying. This checks if the player if flying using creative flight, not using an elytra. Player#isGliding actually checks if the player is flying using an elytra.
- Added support for version 1.15 of minecraft. From now on, the NBT constructors are private instead of public. During initialization, they're made accessible now.
- Added ArmorEquipEvent that keeps track of every possible way someone might equip armor. It is then cancelled if needed.
- Updated language file. A long and a short name of each tier is now supported, which can be used as variables.
- Switched to Maven for project compilation.
- Added config options to globally bypass permissions for crafting and/or wearing of all tiers.
- Now using Consumer for stuff that previously used the ugly is1_9 boolean.
- Switched to using ArmorEquipEvent for checking if players are allowed to wear something. It's much cleaner and includes some previously omitted equip events (such as from a dispenser).
- Code cleanup.
- Fixed issue where unbreakable armored elytras would still "break".
- Added MENDING enchantment to the default set of enchantments again.
- Using Maven shade for bStats and removed the old Metrics class.
- Added config option to allow multiple types of protection enchantments
to be applied to a single armored elytra.
- Added XMaterial class that was accidentally omitted in the last
commit.
- Now using correct Maven imports for Spigot etc.
- Removed redundant else (if) statements.
- Added stripped-down version of XMaterial v2.
- Using XMaterial for chest-plate checking because some names were
different in some versions.
- Fixed startup message saying noFlightDurability is disabled when it's
actually enabled and vice-versa.
- Improved order of noFlightDurability checking. It's faster now.
- Fixed default message saying that BigDoors couldn't find the message.
- Rewrote ConfigOption to take advantage of generics.
- Simplified config option management by getting rid of some code
duplication.
- No longer using Strings to get configuration values. This is both much
faster and less error-prone (when using any IDE worth its salt).
- Now actually using custom language file when indicated in the config
file.
- Set default language file to read-only.
- Added warning message to not alter the default language file as it'll
be regenerated.
- Switched to using reflection for multi-version support of Minecraft to make supporting it a little easier. Shouldn't require an update for 1.14 anymore now (unless they change the format or something).
- Code style enforced.