Commit Graph

77 Commits

Author SHA1 Message Date
Pim van der Loos
abc8d7475e
Add command to list available enchantments 2020-12-16 13:16:30 +01:00
Pim van der Loos
03d0f9492e
Switch to NamespacedKeys for enchantments
- 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.
2020-12-14 13:17:52 +01:00
PimvanderLoos
9d737eeed5
Create LICENSE 2020-12-11 15:09:05 +01:00
Pim van der Loos
565ecabd2b
Remove debug statements 2020-11-25 10:32:55 +01:00
Pim van der Loos
6bdd7e37d4
Spawn netherite AEs as chestplates when dropped
- 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).
2020-11-24 14:21:03 +01:00
Pim van der Loos
94a06dccba
Allow repairing wioth multiple items
- 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.
2020-11-24 13:32:56 +01:00
Pim van der Loos
ebb6a9ce82
Allow anvil usage when Smithing is enabled
- The anvil can now be used for everything other than creation when smithing table usage is enabled (so repairing, enchanting, ..?).
2020-11-24 12:39:06 +01:00
Pim van der Loos
9cb58d885d
Simplify clearing anvil inventory 2020-11-24 12:30:23 +01:00
Pim van der Loos
602acb0088
Allow taking AEs out of smithing table 2020-11-24 12:26:07 +01:00
Pim van der Loos
0e4be02056
Add smithing table AE creation 2020-11-24 12:04:50 +01:00
Pim van der Loos
b8fdec0ed5
Update to Spigot 1.16.4 dependency
- Using 1.16.4 allows making use of PrepareSmithingEvent.
2020-11-24 10:59:00 +01:00
Pim van der Loos
8a7f56e07e
Extract anvil events to separate class
- 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).
2020-11-24 10:54:17 +01:00
Pim van der Loos
8e80e86e32
More cleanup 2020-11-23 13:04:23 +01:00
Pim van der Loos
fa15557cb8
General cleanup 2020-11-23 12:10:28 +01:00
Pim van der Loos
07f4e10b62
Implement modular enchantment system
- Added new enchantment management system that makes it easier to add support for custom enchantment plugins.
2020-11-23 11:48:35 +01:00
Pim van der Loos
c77d831c89
Bump version to 3.0 2020-11-23 11:28:20 +01:00
Pim van der Loos
c859d555b2
Drop support for MC <1.15 2020-11-23 09:52:08 +01:00
Pim van der Loos
dd30f02aa2
Drop Minecraft 1.9 support 2020-11-23 09:18:49 +01:00
Pim van der Loos
bd57ea0728
Remove auto updater
- Removed the auto updater because Spiget is too unreliable these days.
2020-11-23 09:14:19 +01:00
Pim van der Loos
2f57f0df59
Fix incorrect armored elytra creation
- No longer making "armored elytra"s out of non-elytra items.
2020-08-04 14:25:53 +02:00
Pim van der Loos
163e6d22a2
Improve 1.16 support
- 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.
2020-06-30 15:10:15 +02:00
Pim van der Loos
b29477fe4a
Blacklist Spigot-758abbe
- 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.
2020-06-29 13:51:47 +02:00
Pim van der Loos
e3efdfd83b
Clean up 2020-06-29 13:04:25 +02:00
Pim van der Loos
9ddc4f9f61
Add support for Netherite, improve tier retrieval
- 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.
2020-06-27 15:40:41 +02:00
Pim van der Loos
3fc27ca1fc
Add initial 1.16+ support
- 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.
2020-06-27 12:59:17 +02:00
Pim van der Loos
1053e17b1d
Fix updater, compilation, and improve translation
- 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
2020-05-25 17:28:16 +02:00
Pim van der Loos
93bc2a3072
Cleanup
- Removed old updater class that no longer serves a purpose.
- Removed debug statment.
2020-05-23 14:46:40 +02:00
Pim van der Loos
7f09a34fdb
Backport Messages from BigDoors v2
- 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.
2020-05-20 13:13:52 +02:00
Pim van der Loos
e093b18124
Update updater
- 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.
2020-05-20 12:19:40 +02:00
Pim van der Loos
51854fa150
Update NBT system to support recent Paper builds
- 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.
2020-04-19 12:09:48 +02:00
Pim van der Loos
19ab2cdab1
Fix NPE thrown on player death event 2020-03-18 18:31:37 +01:00
Pim van der Loos
c5abedc89b
Add 1.15 support, add ArmorEquipEvent
- 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.
2019-12-11 21:51:51 +01:00
Pim van der Loos
e906ddfdb3
Clean up code, fix bugs, use Maven
- 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.
2019-08-23 17:37:16 +02:00
Pim van der Loos
080b6c6dab
Add config option, improve multi-version support
- 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.
2019-06-24 13:54:01 +02:00
Pim van der Loos
1e986d60da
Cleanup
- 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.
2019-06-20 16:59:13 +02:00
Pim van der Loos
81e4111359
Minor update
- 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.
2019-05-21 13:09:59 +02:00
Pim van der Loos
45486a7eea
Improve config handling
- 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).
2019-04-30 20:41:12 +02:00
Pim van der Loos
ecd0340cd6
Fix custom language files.
- 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.
2019-04-28 17:31:08 +02:00
Pim van der Loos
45d5f90fef
Fix 1.14 support.
- Fixed addCompound for 1.14. New format requires an int.
2019-04-28 16:09:09 +02:00
Pim van der Loos
da360b3d28
Cleanup code
- Removed some code duplication.
2019-04-20 14:58:51 +02:00
Pim van der Loos
4b5de17bb6
Fix formating
- Removed all remaining tabs (not sure how to got through the last
cleanup).
- Updated some comments.
2019-04-18 17:11:18 +02:00
Pim van der Loos
da224bfc1a
Use reflection for multi-version support.
- 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.
2019-04-15 12:04:59 +02:00
Pim van der Loos
07e3b65f2b
- Added 1.9 support.
- Fixed books with 1 or more invalid enchants not working.
2018-11-06 13:23:56 +01:00
Pim van der Loos
9355a9343b
Removed accidental BigDoors dependency. 2018-10-27 03:36:08 +02:00
Pim van der Loos
e35c251827
QoL Improvements, bug fixes.
- Fixed 1.13 and 1.13.1/1.13.2 bug with armor value retrieval (nbt changed in 1.13).
- Added en_US.txt as translation file for easier translation stuff.
- Moved more strings to translation file.
- Added 1.13.1 and 1.13.2 support.
2018-10-26 14:53:58 +02:00
Pim van der Loos
c3546c777c 1.13 support
- Added initial support for version 1.13 of Minecraft.
2018-08-02 03:53:56 +02:00
Pim van der Loos
511a0c85f9 - Added armoredelytra.craft.<tier> permissions.
- Removed cursesAllowed option. It is now part of the allowedEnchantments. (Fixed mending not allowed when curses are not allowed).
- Fixed glitch where "ghosts" of items remained in the anvil after taking the result out using shift + click.
2018-02-05 12:20:29 +01:00
Pim van der Loos
e5044a7300 - Added option to customise the names for every tier or armored elytra.
- When taking an armored elytra out of an anvil using shift + click will no longer destroy the armored elytra when there is no space in the user's inventory.
2018-02-04 11:51:36 +01:00
Pim van der Loos
f1f8607dd4 - Fixed not being able to rename non-AE items.
- Using correct version number again...
- Removed unused methods in Metrics class, reducing jar size by 12.5%.
2018-01-22 10:35:00 +01:00
Pim van der Loos
8eb6f094c8 - Fixed "fake" enchantments being allowed on armored elytras (only 1 kind of protection enchantment can be active at the same time, now only 1 can be put on an AE).
- Fixed invalid Armored Elytras showing up in the result slot.
2018-01-20 22:04:53 +01:00