Tags
Creators
Details
1.0.2
Compatibility
Changes
- 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.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:LpyenyJ3:kLBlNUM7"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:LpyenyJ3:kLBlNUM7"
}

