v2.2.0
This release includes some major codebase refactors, including a new standalone networking library (which, if you are a developer, you are able to now use for your own projects!), removal of server-sided platform abstraction, block lists being moved from the config.yml
into the categories.yml
, and so much more.
Changes (Bukkit)
- Platform abstraction has been removed entirely, possibly improving server performance
- Extracted the networking library into Networking
- Block lists have moved from the
config.yml
file to thecategories.yml
file- It made no sense to have the block list be the only category-related setting not actually in the
categories.yml
, forcing configurations to have category ids defined twice, potentially causing misconfigurations, etc. - Existing
config.yml
andcategories.yml
files will be automatically migrated, you do not have to do anything! - The global
RepairFriendly
,MaxVeinSize
,Cost
, andDisabledWorlds
still exist in theconfig.yml
and still act as a default if not set in a category
- It made no sense to have the block list be the only category-related setting not actually in the
- The
Hand
category may now have its own separate configuration forRepairFriendly
,MaxVeinSize
,Cost
, andDisabledWorlds
like all other categories have - Categories with empty block lists are now registered, allowing for modification of the list in-game. An item list is still required, however (exception to
Hand
andAll
, which do not have item lists) - Added a
CollectExperienceAtSource
option in the config.yml to allow experience orbs to collect together at the source of a vein mine- This feature is similar to
CollectItemsAtSource
, only it collects experience dropped from blocks - This setting does not generate additional experience. It drops the exact same amount of experience as if a player mined each block individually
- The setting will default to
true
for new configurations. When unset, it will default to the value ofCollectItemsAtSource
- This feature is similar to
- Added
OnlyDamageOnFirstBlock
to prevent any damage calculations for any subsequent vein mined blocks- If set to
true
, damage calculations will only apply for the first block. For example, if you mine 64 blocks, your tool may only take up to 1 damage (but possibly 0 in the event it is enchanted with Unbreaking) - This setting will default to
false
as is the current behaviour of VeinMiner where damage calculations are applied to each block broken by vein miner. To better adhere to a vanilla style,false
is recommended
- If set to
- Added
/veinminer givetool <category> <item> [amount]
to give the executing player a tool from the given category including all of its necessary data (namely, NBT)- This is a useful utility command for server administrators unsure how the
NBT
option works in thecategories.yml
. This will make the item for you rather than having to struggle with a complicated and otherwise undocumented/give
command syntax - Permission:
veinminer.command.givetool
- This is a useful utility command for server administrators unsure how the
- Add better support for latest versions of AdvancedEnchantments and EcoEnchantments (thanks to @WillFP and @ThomasWega for their cooperation)
- Renamed
grass
toshort_grass
in the default alias list (config.yml) - Reduced the default
HungerModifier
from4.0
to2.5
, for a more forgiving hunger loss while vein mining - Optimized category NBT checking. No longer checks for items that don't have any NBT
- Block list and other configuration parsing now uses the warning log level instead of info for visibility
- Fixed the default pattern not correctly breaking blocks up to max size, especially apparent in non-cubic shapes
- Fixed
/veinminer import
not correctly checking for permissions - Fixed
/blocklist
not correctly saving wildcard (*
) entries to the config.yml - (#102) Fixed wildcard (
*
) block lists breaking all nearby blocks, even if they don't match the original one that was broken (e.g. breaking leaves, but leaves, logs, and even air being broken as well instead of just other leaves) - (#93) Fixed block break order being unpredictable, resulting in strange break patterns when vein mining with low tool durability
- (GC-spigot/AdvancedEnchantments#3586) Fixed crash with AdvancedEnchantments' enchantments that perform block breaks
- Fixed the
All
block list not working as expected (or at all, for that matter) - Fixed economy support failing based on load order of economy plugins. Economies are now lazily initialized. You will receive a warning in the console the first time a player vein mines if an economy plugin is not present but a
Cost
is set
Change (Bukkit, Developers)
So much of VeinMiner's codebase changed in this update that the likelihood of your extensions or API-reliant plugins being broken is extremely high. You will likely need to update any plugins that depend on VeinMiner. For the most part, anything that was previously an abstract platform type is now a Bukkit type.
Changes (Fabric)
This version of Fabric does not contain any protocol changes and is still compatible with old versions of VeinMiner. Updating just gets you some nice bug fixes!
- Extracted the networking library into Networking
- Vein mining wireframes will now update if the block at which the client is looking changes, usually by way of
/setblock
or silverfish leaving infested stone- e.g. the block changes from
minecraft:diamond_ore
tominecraft:stone
, which by default would mean the client can no longer vein mine
- e.g. the block changes from
- Increased the scale of the pattern selection wheel by 10% for readability
- Added a profiling section for wireframe rendering
- Reduced the amount of stack transformations made when rendering the pattern selection wheel
- Fixed HUD elements not rendering in a dev environment
- Fixed the pattern wheel's fade in & out animation flickering on occasion
- (#103) Fixed rare NullPointerException crash due to invalid pattern selection from the server
General News
I've finally enabled GitHub Sponsors! I've provided VeinMiner for free to the community for nearly 10 years, and in that time I've accrued some expenses, specifically for servers, domains, and SSL certificates to host my development server. While a donation nor sponsorship is required, I would greatly appreciate the support and you can now do so on my sponsor page. Thank you for sticking with me for this long 😄 enjoy this update! There's more to come!