I made a lot of changes that clean up the code base, but shouldn't change the function of the plugin. If you don't like all the changes, the only changes that actually matter for 1.21 are adding the mace to the weapons and adding a specific case for copper trapdoors.
I tested dozens of materials with and without tool enchantments (including those that profit from silk touch), automatic refills, and switching for hostile mob attacks in both 1.21 and 1.16.5. I also tested sculk, bamboo, and mangrove roots, as noted in the 2.2.2 and 2.2.3 release notes (even though those versions aren't in the codebase).
clean up warnings
update to Spigot 1.21 API
add mace
update dependencies
resolve deprecations
allow getMcVersion to match 1.21
move BestToolsUtils.init() call into constructor
add mineable/ tag catchalls as futureproofing (if there are issues, we may have to move these earlier in the order to allow overrides)
abstract enchantments with Bukkit Registry
increase minimum API 1.16 due to MorePersistentDataTypes requirements (according to bStats, no one's running this <1.16.5 and it doesn't actually work <1.14 due to the use of PersistentDataContainer)
Spigot 1.16 can and should run under Java 11, so target the build accordingly
I made a lot of changes that clean up the code base, but shouldn't change the function of the plugin. If you don't like all the changes, the only changes that actually matter for 1.21 are adding the mace to the weapons and adding a specific case for copper trapdoors.
I tested dozens of materials with and without tool enchantments (including those that profit from silk touch), automatic refills, and switching for hostile mob attacks in both 1.21 and 1.16.5. I also tested sculk, bamboo, and mangrove roots, as noted in the 2.2.2 and 2.2.3 release notes (even though those versions aren't in the codebase).