Skip to content

Releases: 2008Choco/VeinMiner

2.2.6

09 Nov 16:14
d0533bc
Compare
Choose a tag to compare

Changes (Bukkit)

  • (#126) Added Support for Vulcan Anti Cheat (thanks to @OmeWillem)
  • Improve the accuracy of VeinMiner's integration with McMMO
  • Improve the update checker so it better understands when a new version is released and so it understands in-dev versions
  • Fix NullPointerException in some economy plugins
    • VeinMiner now only calls upon Economy plugins if the cost exceeds 0, potentially improving performance for those not using the cost feature
  • Fix ClassCastException in Minecraft 1.21.3

Changes (Fabric)

No changes were made to the Fabric mod

2.2.5

28 Aug 14:14
Compare
Choose a tag to compare

Changes (Bukkit)

  • The player.block_interaction_range attribute added in Minecraft 1.20.5 is now supported by VeinMiner
    • Servers running versions where this attribute does not exist are still supported (for now!)
  • Updates to VeinMiner's extensive anti cheat support:
    • Added support for Negativity Anticheat (even though it's been abandoned)
    • Added support for Themis Anticheat (per request of RainbowSheep__ on Spigot)
    • (#120) Fixed Light Anticheat support no longer being supported due to API changes
    • Dropped support for Grim Anticheat versions 2.3.58 and below
      • Grim 2.3.59 and above are now a requirement. More than 85% of VeinMiner users are already using it. Be sure you've updated as well!
  • (#117) Fixed RepairFriendly configuration option not working as expected
  • (#116) Fixed /veinminer reload not reloading the categories.yml file

Changes (Fabric)

No changes were made to the Fabric mod

2.2.4

02 Mar 14:25
ac28cc1
Compare
Choose a tag to compare

Changes (Bukkit)

  • Added support for Grim Anti Cheat v2.3.59 and above. Versions below should also still work.

Changes (Fabric)

No changes were made to the Fabric mod

2.2.3

18 Feb 15:49
ff63018
Compare
Choose a tag to compare

Changes (Bukkit)

  • /veinminer giveitem will no longer display the NBT of the item that was given
  • Fixed CollectExperienceAtSource not working for 1.17 - 1.20.1
  • Fixed NoSuchMethodError when executing /veinminer giveitem with categories that require NBT

Changes (Fabric)

No changes were made to the Fabric mod

2.2.2

18 Feb 15:09
681c983
Compare
Choose a tag to compare

Changes (Bukkit)

  • Bump Networking to 0.0.2
  • Fix VeinMiner throwing a NoSuchFieldError on startup for 1.17 - 1.20.3 servers
  • Fix WorldGuard integration not working for 1.17 - 1.20.3 servers

Changes (Fabric)

No changes were made to the Fabric mod

2.2.1

17 Feb 22:16
cb66ab4
Compare
Choose a tag to compare

Changes (Bukkit)

  • Removed some legacy BlockFace code that was missed from the last update
  • Fix a NullPointerException in console when players without a /veinminer mode selected try to vein mine

Changes (Fabric)

No changes were made to the Fabric mod

v2.2.0

17 Feb 15:48
aae5b28
Compare
Choose a tag to compare

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 the categories.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 and categories.yml files will be automatically migrated, you do not have to do anything!
    • The global RepairFriendly, MaxVeinSize, Cost, and DisabledWorlds still exist in the config.yml and still act as a default if not set in a category
  • The Hand category may now have its own separate configuration for RepairFriendly, MaxVeinSize, Cost, and DisabledWorlds 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 and All, 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 of CollectItemsAtSource
  • 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
  • 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 the categories.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
  • Add better support for latest versions of AdvancedEnchantments and EcoEnchantments (thanks to @WillFP and @ThomasWega for their cooperation)
  • Renamed grass to short_grass in the default alias list (config.yml)
  • Reduced the default HungerModifier from 4.0 to 2.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 to minecraft:stone, which by default would mean the client can no longer vein mine
  • 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!

2.1.1

25 Aug 14:46
7d92e19
Compare
Choose a tag to compare

Changes (Bukkit)

  • (#98) Added missing 1.20 cherry logs, wood, and leaves to the appropriate default block lists
  • Added minecraft:red_sand to the default shovel block list
  • (#101) Consider NBT tag when items are in multiple categories
  • Further improved how NBT is checked for categories with a lower priority and no NBT declared
  • (#97) Fixed NullPointerException when mining in worlds with WorldGuard disabled
  • Fixed bStats misreporting 'Vein Mined Materials'

Changes (Bukkit, Developers)

  • Deprecated ToolCategoryRegistry#get(ItemType) and #get(ItemType, Predicate) in favour of #get(ItemStack) and #get(ItemStack, Predicate)

Changes (Fabric)

There are no changes to the Fabric version of VeinMiner in this release.

2.1.0

27 Jun 12:11
545ccd0
Compare
Choose a tag to compare

Changes (Bukkit)

  • Java 17 is now required to run VeinMiner. This should not affect most people (although servers running Minecraft 1.17.x should double check that they are running Java 17, not the minimum required Java 16)
  • Remove legacy client protocol support
    • The initial promise with the release of VeinMiner 2.0.0 was to remove this protocol once more than 50% of servers have migrated. Today, nearly 90% of servers are running VeinMiner 2.0.0.
  • PlaceholderAPI placeholders are now shown in /papi info veinminer
  • (#94) Fixed infrequent java.lang.IllegalArgumentException: Unknown GameMode with id "SURVIVAL" in console

Changes (Bukkit, Developers)

  • Added wtf.choco.veinminer.platform.BukkitAdapter to assist in converting from VeinMiner's platform types to Bukkit equivalents (and vice versa)
  • Added ItemType#isAir() for convenience
  • Added VeinMinerPlayer#sendMessage(PluginMessage<ClientboundPluginMessageListener>) to more conveniently send clientbound protocol messages to players
  • Removed ServerCommandRegistry. Behaviour has been moved to ServerPlatform#registerCommand()
  • Removed VeinMiner.PROTOCOL_LEGACY
  • Renamed CommandExecutor to Command

Changes (Fabric)

  • Added support for versions 1.20.x
  • Dropped support for versions 1.19.x
  • Removed legacy client protocol support
    • The client mod will no longer function on servers not running VeinMiner 2.0.0 (although these should be rare)
  • VeinMiner's client functionality (the activation icon and pattern selector) will no longer work on singleplayer or servers that do not have VeinMiner installed
  • Changed the version semantics so that versions beyond 1.20 will (theoretically) be supported. Unless Minecraft or Fabric makes a breaking API change, the companion mod should just work.

2.0.0 - The Rewrite

08 Aug 20:20
33b1bb9
Compare
Choose a tag to compare

New default config: https://github.com/2008Choco/VeinMiner/blob/master/veinminer-bukkit/src/main/resources/config.yml
VeinMiner Companion mod (Fabric): https://www.curseforge.com/minecraft/mc-mods/veinminer-companion

IMPORTANT

VeinMiner 2.0.0 provides support for SQLite and MySQL databases in addition to JSON. VeinMiner has used JSON since persistent player data was introduced, but with the 2.0.0 update, SQLite has become the new server default. While you may change this to use JSON, it is strongly advised to use SQLite instead as it is a more performant and condensed means of storing player data.

When installing VeinMiner 2.0.0, if you do not want to continue using JSON (again, SQLite is now the default), you will have to start your server with 2.0.0 installed and run the /veinminer import command. After explaining what it will do, it will ask you to run this command again to confirm. This will not delete your old JSON files, only import them into the SQLite database (or MySQL if you changed it to use that instead). You will only ever need to do this process one time. After initial installation, you should never have to run the import command again.

Importantly, the import command only imports from JSON -> SQLite or MySQL. It DOES NOT support SQLite/MySQL -> JSON.

TL;DR:

  • When installing 2.0.0, start your server and run /veinminer import
  • Read what the command tells you, then run /veinminer import a second time to confirm
  • (Optionally) delete your playerdata directory as it is no longer necessary. Though it's advised to keep as a backup just in case :)

Changes (Bukkit)

  • Updated the minimum Java version to Java 16
    • If you are running your own server on your own machine, make sure you update your version of Java
    • If you are using a host running Minecraft 1.17 or above, you should already be on Java 16
  • Dropped support for Minecraft 1.13.x - 1.16.x. VeinMiner now supports only Minecraft 1.17.x and above
  • Added /blocklist command for convenience. Arguments identical to /veinminer blocklist
  • Added /toollist command for convenience. Arguments identical to /veinminer toollist
  • Added support for different types of persistent storage, MySQL and SQLite, for those that don't want a folder filled with JSON or want to share player settings between servers
    • New configuration options to assist in configuring SQL servers
    • SQLite is the new default means of data storage, which should ultimately be faster than JSON
    • A new /veinminer import command was added which will automatically import data from the JSON files to SQLite or MySQL if you choose to no longer use JSON. If you decide to change the default Storage setting to JSON, you do not need to run this command. See above for details on import/migration.
  • Added new vein mining patterns:
    • veinminer:tunnel: Mine a 3x3 tunnel in the direction of the block broken
    • veinminer:staircase_up: Mine an upwards 1x3 staircase in the direction of the block broken
    • veinminer:staircase_down: Mine a downwards 1x3 staircase in the direction of the block broken
    • Players may now once again select their own vein mining patterns. This is not a global option anymore. It is per-player.
  • Added permission nodes for each pattern. All default to true, but if revoked, players may not select the pattern with /veinminer pattern
    • veinminer.pattern.default
    • veinminer.pattern.tunnel
    • veinminer.pattern.staircase_up
    • veinminer.pattern.staircase_down
  • Categories may now define 2 new optional settings
    • NBT: A string that is required on an item in the category for the category to be used. The NBT key will be located at PublicBukkitValues: { "veinminer:veinminer": "TheValueInTheConfig" }. Defaults to no NBT tag
    • Priority: An integer determining what priority a category has over another. Higher numbers will be selected over categories with lower priorities. Useful if more than one category defines an item of the same type. Defaults to 0
  • Replaced all configuration options under Client with new options to support new client functionality
    • Client.AllowActivationKeybind: Determines whether or not clients are allowed to activate vein miner with a key bind
    • Client.AllowPatternSwitchingKeybind: Determines whether or not clients are allowed to switch patterns with a key bind
    • Client.AllowWireframeRendering: Determines whether or not clients will draw a wireframe around blocks to be vein mined
  • Added permission nodes (that default to nobody) for each of the above settings. If a player has any of these permission nodes, they will override the config option
    • veinminer.client.activation: Is allowed to use the keybind
    • veinminer.client.patterns: Is allowed to switch patterns with a keybind
    • veinminer.client.wireframe: Is allowed to render a wireframe around blocks
  • Added support for LightAntiCheat
  • Added support for Grim anti cheat
  • Added new PlaceholderAPI placeholders:
    • %veinminer_vein_mining%: "true" or "false" depending on whether or not the player is currently vein mining. Only true for a brief moment in time
    • %veinminer_using_client_mod%: "true" or "false" depending on whether or not the player is using the client mod
    • %veinminer_selected_pattern%: The key of the player's selected vein mining pattern
    • %veinminer_activation_strategy%: The name of the player's selected method of activation ("Sneak", "Client", "Always", etc.)
  • Added new default blocks in the following categories:
    • Axe
      • minecraft:mangrove_log
      • minecraft:mangrove_roots
      • minecraft:mangrove_wood
    • Shovel
      • minecraft:clay
      • minecraft:mud
      • minecraft:muddy_mangrove_roots
    • Hoe
      • minecraft:sculk
      • minecraft:sculk_vein
    • Sheers
      • minecraft:mangrove_leaves
  • Added new default alias for mangrove logs and wood
  • Improved and standardized command feedback
  • Improved console feedback on startup for categories and potential errors in configuration files
  • Optimized the performance of vein mining when hunger was enabled
  • Optimized the update check on startup
  • Shuffled around permission nodes. IMPORTANT. UPDATE YOUR PERMISSIONS
    • Renamed veinminer.reload -> veinminer.command.reload
    • Renamed veinminer.toggle -> veinminer.command.toggle
    • Renamed veinminer.blocklist.* -> veinminer.command.blocklist
    • Renamed veinminer.toollist.* -> veinminer.command.toollist
    • Renamed veinminer.mode -> veinminer.command.mode
    • Added veinminer.command.pattern
    • Removed veinminer.blocklist.* and all child permissions
    • Removed veinminer.toollist.* and all child permissions
    • Removed veinminer.client.reminded
    • veinminer.free.hunger and veinminer.free.economy no longer default to op players. They are disabled by default and must be explicitly set
  • Removed the message on join suggesting downloading the client mod (and all related configuration options). This was seen as annoying to most. A download link is now only shown when /veinminer mode client is run
  • Removed Name and Lore settings from categories and items in categories. Replaced with the new NBT setting
  • Removed SortBlocklistAlphabetically setting. Block list sorting is now done alphabetically automatically
  • Removed IncludeEdges setting. No longer relevant in modern vein miner and served no purpose other than to confuse server owners
  • Removed the default MaxVeinSize: 64 declaration for all categories as they all overrode the global setting, which could be confusing for new installs
  • Replaced VeinMiningPattern setting with DefaultVeinMiningPattern which will be used as the default pattern for players that have not explicitly set one with /veinminer pattern. Defaults to veinminer:default
  • Replaced RepairFriendlyVeinminer with RepairFriendly
  • Aliases entries are now delimited by ; rather than ,, as the latter can be used by block states
  • Fixed inaccurate support for world protection plugins. Plugins like WorldGuard, GriefPrevention, Residence, etc. should be better supported natively now
  • Fixed being able to declare a Hand category in the categories.yml. VeinMiner will now ignore it and log a warning in console
  • Fixed players being marked as dirty despite not having their state change at all
  • (#77) Fixed /veinminer toggle not disabling specific tools if another tool was already disabled

Changes (Bukkit, Developers)

  • Completely restructured the project to abstract out concepts shared across server and client
  • All players now have permanent Metadata keys that all evaluate to boolean,
    • veinminer:vein_mining: Whether or not a player is currently vein mining (breaking blocks as a result of vein miner
    • veinminer:vein_miner_active: Whether or not a player has vein miner active and primed for use (e.g. holding sneak, or pressing the client button)
  • Added a new PlayerVeinMiningPatternChangeEvent called when a player changes vein mining patterns either from the client or by command
  • Existing API events have been moved from wtf.choco.veinminer.api.event to wtf.choco.veinminer.api.event.player
  • PlayerVeinMineEvent#getBlock() now returns the Block that triggered the vein mine. The VeinMinerBlock may be retrieved from getVeinMinerBlock() instead
  • Redesigned VeinMinerPlayer to act as the governing entity between client mod and server communication. Anything pertaining to the client mod is now handled more appropriately through instances of VeinMinerPlayer.
  • Replaced all instances of the vein miner protocol with a new standardized, platform-independent network implementation under VeinMiner.PROTOCOL. Messages may be...
Read more