VeinMiner 1.12.0-BETA1


  • Filename
  • Uploaded by
  • Uploaded
    Jul 30, 2018
  • Size
    70.11 KB
  • Downloads
  • MD5

Supported Bukkit Versions

  • 1.12


Before resuming to the changelog, there are a few things I want to note. For one, this version IS NOT MEANT FOR PRODUCTION SERVERS. It is very likely that the plugin will break. This is a Beta version, use with caution.


With that out of the way, I'd like to officially announce that there are now two new things worth noting.


  1. My website. Over the past month or so, I've been reworking my website to look a little nicer and contain all my projects. It's still a work in progress, but you may find it at
  2. Support will now be handled over on my official support Discord. Of course, tickets are preferred on the GitHub page, but for general support, please head to and ask around. I'll be available to respond during most hours of the day.

Alright, here is the long-awaited changelog :) Please, please report issues. This is NOT the final version for Minecraft 1.13, there are still some known caveats. See the bottom of the changelog.

(Note: This version does not support 1.12, but BukkitDev requires that at least one version be selected. This will be changed in the future)


  • Added support for Minecraft 1.13
  • Dropped support for Minecraft 1.8, 1.9, 1.10, 1.11 and 1.12. See the pre-update announcement post for information behind this drop in support
  • VeinMiner should now be version proof (for versions greater than 1.13, that is. Updates between versions are no longer required)
  • Minor changes to the /veinminer command to support new 1.13 blocks / IDs, as well as block states! Things such as "/veinminer blocklist add wheat[age=7]" will now work
  • Updated the configuration file (you may want to refresh your configuration file)
    • Uses Minecraft 1.13 block IDs rather than the old Material values
    • Removed a few aliases that were no longer necessary due to changes made in 1.13 (3 default aliases remain)
  • Added a new "pattern" feature which changes the way VeinMiner mines blocks. At the moment, only the default pattern is available. More will be added in the future, or developers may add their own
    • To accommodate for patterns, "/veinminer pattern" was added (permission: "veinminer.pattern"). Syntax: "/veinminer pattern <namespace:pattern>". i.e. "/veinminer pattern veinminer:default"
    • If no namespace is provided, it will default to "veinminer". i.e. "/veinminer pattern default" will function as though "/veinminer pattern veinminer:default" was executed
    • Tab completion will list all available patterns
  • Changed statistic tracking service from McStats to bStats
    • Started tracking a new statistic, "blocks_veinmined", which counts for how many blocks were broken using VeinMiner
  • Added a new "hand" tool which, as you might expect, lists materials mineable with a player's hand
  • Added an AntiCheat API to let anti cheats support VeinMiner rather than the other way around. This makes the life of mine and the anti-cheat developers easier (devs, see API changes below)
    • Anti-cheats that were previously supported in VeinMiner are still supported by default. This includes NoCheatPlus, AntiAura and Advanced AntiCheat
  • Numerous API changes and additions
    • Added VeinMiningPattern interface. To add a custom pattern, implement this interface and register it to the pattern registry (see below)
      • For a Java 8 alternative, see VeinMiningPattern#createNewPattern(NamespacedKey, BlockAllocator). BlockAllocator is a FunctionalInterface with a similar method to VeinMiningPattern
    • Added a PatternRegistry class (retrievable from VeinMiner#getPatternRegistry()). This is where custom patterns may be registered
    • Added a PlayerSwitchPatternEvent which listens for when a player changes which pattern they are using
    • Added an AntiCheatHook API
      • Anti-cheat developers should implement the "AntiCheatHook" interface and write bodies for the overridden methods
      • To register the hook, pass an instance of the implementation to VeinMiner#registerAntiCheatHook(). VeinMiner will handle it from there
    • Let MaterialAlias implement Iterable<VeinBlock> and Cloneable. More of a convenience thing
    • Removed various long-deprecated methods from VeinMinerManager
    • The API is now much more strict with invalid parameters provided to methods
  • Cleaned up and condensed the command code. Should be slightly more performant
  • Improved the performance of various snippets of code throughout the project. Faster lookup times, faster and more efficient data handling, and major codebase cleanup
  • Fixed the "ALL" category not actually listing materials to be used by all tools
  • Fixed potential memory leaks to do with player and world instances

Known Caveats:

  • Unspecified block states are defaulted resulting in unexpected behaviour. For example, adding "chest[waterlogged=true]" to the block list will instead add "chest[waterlogged=true,type=single,facing=north]"