Fixes incorrect dropItems instead of dropItem key in config.yml
Adds some missing dropper messages to config.yml
Adds proper migration keys for all known configuration options
Adds a modified version of Stargate's StargateYamlConfiguration to allow retaining comments during configuration migration.
Fixes the annoying "[]" is not a valid repairable item
Removes the use of data keys for the global configuration
Implements ignored salvage
Implements salvage-able items
Adds some TODOs
Implements salvage fail chance
Moves several methods to ItemHelper
Adds option for allowing extended salvage
Adds the classes necessary for the new scrapper
Partly implements some scrapper functionality
Restructures some classes to reduce code duplication
Moves some classes to make some classes easier to find
Adds a bunch of TODOs where things have an unfinished implementation
Removes the disableMaterialLimitation option
Replaces EnchantmentTarget.BREAKABLE.includes(item) with getMaxDurability(item) > 0 as it seems more generic
Adds a lot more tests for some utility classes
Adds a new option to disable the hard-coded limitation "EnchantmentTarget.BREAKABLE" which can be useful for servers with custom items or similar.
Makes enchantment name matching case-insensitive.
Prevents an exception is enchantment name contains invalid characters.
Makes invalid objects supplied to asStringList return null instead of throwing an exception.
Uses isBlank instead of trim.isEmpty in the isEmpty method
Re-uses the random generator if calculating salvage several times
The enchantmentBlocklist allows specifying a list of enchantments blacksmiths should be blocked from adding to items. Especially curse of binding and curse of vanishing are problematic as the effect is quite bad. Mending is possibly undesirable as it's supposed to be quite rare.
Adds a configuration option for the plugin language
Loads the selected language instead of always loading "en"
Makes sure the language is updated upon reloading
Removes the DISABLE_COOL_DOWN option
Removes the DISABLE_DELAY option
Uses the old DISABLE_COOL_DOWN behavior if cool-down is set to 0 or below
Uses the old DISABLE_DELAY behavior if max-delay is set to 0 or below
Changes the entire settings structure
Splits settings into NPC settings and global settings
Adds some command classes in preparation for a new command system
Moves a lot of code away from BlacksmithPlugin
Adds a new EconomyManager class which takes care of everything economy and pricing
Removes HyperConomy softdepend
Changes the reload command to /blacksmith reload
Adds a proper configuration file to make possible to change stuff without a bloody wiki