VeinMiner 1.13.0


  • Filename
  • Uploaded by
  • Uploaded
    Dec 20, 2018
  • Size
    96.47 KB
  • Downloads
  • MD5

Supported Bukkit Versions

  • 1.13


WARNING!: This version of VeinMiner supports the most recent version of CraftBukkit / Spigot, Bukkit (git-Bukkit-ad28b1 - December 18th, 2018). VeinMiner's core functionality should work as intended but there will be issues with adding/removing blocks to/from the blocklist and listing blocklists by command. Errors will be thrown in the console. It is highly recommended that you update your server to the latest version of CraftBukkit / Spigot 1.13.2.


As always, if you have any issues with this build I invite you to communicate with me on my support Discord or create an issue on GitHub.



  • Added a notification to the "/veinminer version" command that identifies when a new version is available for download
  • Added "ALWAYS" to the types of activations in VeinMiner to have it be always activated, sneaking or not (configurable with ActivationMode: "ALWAYS")
  • Added tool templates, both global and category-specific!
    • Tool templates define a specific tool that must be used to activate VeinMiner (works hand-in-hand with the new ALWAYS activation)
    • If you do not wish to have a specific tool (i.e. VeinMiner's default functionality), do not specify one in the configuration file
  • Added a configuration option to alphabetically sort the block list when running "/veinminer blocklist <category> list"
  • Added a configuration option to disable update checks (PerformUpdateChecks). Default true
  • Massive efficiency improvements throughout the plugin:
    • Improved the efficiency of VeinMiner's tool querying
    • Improved the performance of block definitions using caching
    • Improved the performance of VeinMiner's blocklist system. All blocklists are now handled individually rather than clumped together in a single registry
  • Update the default comment header in the config.yml for new users of VeinMiner. Further explains how to define states and removes no longer supported features
  • Tab completion for commands now partially complete. When typing "/veinminer ver", only "version" will be suggested rather than "version", "reload", etc.
  • Block data and states are now parsed much more aggressively and accurately
    • As an added bonus, command feedback now tells you exactly what was added/removed from the block lists
  • Fix colour formatting issues in the /veinminer command when adding and removing blocks to/from the blocklist
  • Fix "/veinminer blocklist <category> remove" being case-sensitive
  • Fix a small warning accidentally being displayed due to the "ALL" category being considered a tool category (when it is not)
  • API Changes (there are many... Any plugins using VeinMiner's API are likely broken. Though PlayerVeinMineEvent was untouched):
    • The VeinTool enum has been renamed to ToolCategory
    • The MineActivation enum has been renamed to ActivationStrategy
    • Relocated all player-specific data to a new VMPlayerData object (VMPlayerData#get(OfflinePlayer) to get an instance), therefore the following methods have been removed
      • VeinMinerManager#getPatternFor() and #setPattern()
      • ToolCategory (formerly VeinTool) #disableVeinMiner(), #enableVeinMiner(), #toggleVeinMiner(), etc.
      • ToolCategory#clearPlayerInformation()
    • VeinBlock is now defined as an interface rather than a class
      • A VeinBlock may be obtained using either VeinBlock#get(Material), VeinBlock#get(BlockData) or VeinBlock#fromString(String)
        • #get(Material) defines no states
        • #get(BlockData) defines states
        • #fromString(String) parses a String representation of a material with optional states... "minecraft:chest" or "minecraft:chest[waterlogged=true]" are valid examples
      • The concept of "raw data" no longer exists in VeinMiner's source. This was a temporary hack but is no longer needed as of git-Bukkit-ad28b1 (December 18th, 2018)
    • Relocated a few classes and enums to different packages:
      • wtf.choco.veinminer.api.VeinTool -> wtf.choco.veinminer.tool.ToolCategory
      • wtf.choco.veinmienr.api.MaterialAlias ->
      • wtf.choco.veinmienr.api.blocks.VeinBlock ->
    • Added a BlockList class which acts similar to a Set<VeinBlock> but has some additional functionality
      • VeinMinerManager has updated accordingly. Removes any registration/removal methods for VeinBlock
      • VeinMinerManager#getBlockList(ToolCategory) and VeinMinerManager#getBlockListGlobal() have been added among other utility methods
    • Added a ToolCategory#fromItemStack(ItemStack) utility method where null will return ToolCategory#HAND