
Better Veinminer
A Paper 1.21 Vein miner plugin that mines entire ore veins instantly.. Fully configurable via config.yml.
Список изменений
[1.5.1] — 2026-06-03
Fixed
-
[HIGH] Protection-plugin bypass — veinmine queued before WorldGuard/Lands/GriefPrevention could cancel the event —
onBlockBreaklistened atEventPriority.NORMAL. Protection plugins (WorldGuard, Lands, GriefPrevention, Residence) typically cancelBlockBreakEventatHIGHpriority, after NORMAL. When a player tried to break a protected ore, the protection plugin had not yet cancelled the event when BVM ran, soVeinmineTaskwas scheduled withrunTask(). One tick later, the task fired: the origin block was still intact (its break was cancelled), but all extra vein blocks within the protected region were broken without the player having any permission to do so. Changed toEventPriority.HIGHwithignoreCancelled = true. Protection plugins that act atNORMALorLOWstill cancel the event first; protection plugins atHIGHthat cancel before BVM now prevent the task from being queued entirely. -
[SMALL] BFS visited-cap
breakonly exited the inner faces loop, not the BFS while-loop — When thevisitedset reached thevisitedCap(maxBlocks × 4) sentinel, thebreakstatement inside thefor (int[] d : FACES)loop exited theforbody but left the outerwhile (!queue.isEmpty())loop running. The queue continued draining, processing each already-enqueued block and attempting to expand further neighbours on every poll (immediately re-hitting the cap check each time). For a world-gen-modded server with a very large ore deposit this was a redundant tight loop running every BFS iteration until the capped queue finally drained. Replaced with a Java labeled-break (break bfs) that exits the outer while-loop immediately when the cap is reached. -
[COSMETIC] Stale version comment in
config.yml— Header comment still readBetter Veinminer v1.2.0 — Configurationsince the file was not updated during the v1.4.0 or v1.5.0 releases. Updated tov1.5.1.
