Compatibility
Minecraft: Java Edition
Platforms
Creators
Details
Changelog
- Configuration Changes
Added new configurable options:
show_vein_message (boolean) → toggles whether the player sees an action bar message when mining veins.
vein_message (string) → allows customizing the vein mining message with placeholder %blocks%.
enable_highlighting (boolean) → allows enabling/disabling vein highlighting via right-click.
Updated default ores list for Minecraft 1.21, including proper ordering and new variants.
Default messages now use color codes with & (configurable).
- Vein Mining Behavior
BlockBreakEvent is now fully cancelled for ores to manually handle drops and XP:
event.setCancelled(true);
event.setDropItems(false);
event.setExpToDrop(0);
Original block is now processed the same as vein blocks, instead of skipping it.
XP calculation now uses a new method getOreExpDrop(Material type) for more controlled and configurable XP drops per ore type.
Durability handling improved:
Correctly handles Unbreaking enchantment with proper chance calculation.
Tools now break naturally if durability is exceeded during vein mining, with a message to the player.
Tool meta is updated after all blocks are mined instead of updating per block.
Block drop handling is more robust:
Drops are manually spawned in the world for all mined blocks.
Ensures only valid ores are dropped.
Action bar message now uses configurable veinMessage and only displays if showVeinMessage is true.
Supports %blocks% placeholder.
Only shows if more than 1 block is mined.
- New Feature – Vein Highlighting Added right-click highlighting for ore veins:
Triggered on PlayerInteractEvent when right-clicking an ore block with a pickaxe.
Shows CRIT particle effects on all vein blocks.
Shows a chat message indicating the number of blocks in the vein.
Respects enableHighlighting and maxBlocks limits.
Supports requireSameType config.
- Code Optimizations / Refactors
isPickaxe(Material) helper method added for tool checks.
findAdjacentOres:
Uses a separate visited set for O(1) lookup (performance improvement).
Vein scanning logic remains the same but now avoids redundant additions.
BlockBreakEvent processing streamlined with local variables:
isDamageable, damageable, currentDamage, maxDurability, isUnbreakable.
XP and drops calculation separated from event logic.
getOreExpDrop(Material type) provides consistent XP drops per ore type.
Removed redundant checks and simplified durability/unbreaking handling.
Tool meta casting safely with Damageable instead of direct ItemMeta.
- Minor Improvements
Messages now use ChatColor for consistent coloring.
/veinminer command usage message updated with version info.
Command permission and reload logic remain the same but cleaner.
Added safeguards for null tools, unbreakable items, and invalid ore types.



