
Better Veinminer
A Paper 1.21 veinminer plugin that mines entire ore veins instantly. Uses strict same-type BFS matching, so adjacent ores are never accidentally destroyed. Fully configurable via config.yml.
279
1
Better Veinminer 1.3.0
release25 апреля 2026 г.[1.3.0] — 2026-04-25
Added
BetterVeinmineEvent— Custom cancellable Bukkit event fired just before extra blocks are broken. Other plugins can now:- Cancel the entire veinmine via
event.setCancelled(true) - Inspect the block list via
event.getBlocks()(unmodifiable) - Override the EXP reward via
event.setExpReward(int) - Read the ore type via
event.getOreType()
- Cancel the entire veinmine via
StatsManager— Full YAML persistence forPlayerStats. Stats are now saved toplugins/BetterVeinminer/stats/<uuid>.ymland survive server restarts.- Stats load synchronously on
PlayerJoinEvent(file is tiny, no noticeable delay) - Stats save asynchronously on
PlayerQuitEvent - Auto-save every 5 minutes (async) while the server is running
- Final synchronous flush in
onDisable()to guarantee no data loss on shutdown
- Stats load synchronously on
Fixed
- NullPointerException on missing config sections —
PluginConfig.reload()called.getKeys(false)directly on the return value ofgetConfigurationSection(...), which returnsnullwhen the section is absent fromconfig.yml. This caused an NPE crash on any server whereore-multipliers.multipliers,per-ore-cooldowns.cooldowns, orpermission-levelswere omitted or empty. All three sites now null-check the section before iterating. - Player-offline NPE in
VeinmineTask— The task is scheduled 1 tick after theBlockBreakEvent. If the player disconnects in that window (network drop, kick, crash), every subsequent field access on thePlayerobject threw aNullPointerException. Added an earlyif (!player.isOnline()) return;guard at the top ofrun(). {uses}placeholder never replaced in/bvm stats—showStats()built the message with{blocks}and{tier}substitutions but forgot{uses}, so the literal string{uses}was printed to the player.{blocks}placeholder never replaced in tier-up message — The tier-up message template"You reached Tier {tier}! New max blocks: {blocks}"only had{tier}replaced;{blocks}was left as-is in the output.sendActionBar(String)deprecated in Paper 1.21 — Replaced with the Adventure API:player.sendActionBar(LegacyComponentSerializer.legacySection().deserialize(msg)). This eliminates the deprecation warning in server logs and future-proofs the call.- Scheduler tasks not cancelled on disable —
onDisable()cleared data maps but never calledBukkit.getScheduler().cancelTasks(this). The cooldown-cleanup and daily-reset runnables could fire after the plugin was disabled (e.g. during/reload), accessing a partially torn-down plugin instance.cancelTasks(this)is now the first action inonDisable(), before any data is flushed or cleared.
Changed
onDisable()now cancels all plugin tasks before flushing data, then callsstatsManager.saveAll()as a final synchronous write to guarantee persistence.VeinmineTasknow collects extra blocks into aList<Block>(instead of iteratingSet<Block>with an origin equality check) to pass cleanly toBetterVeinmineEvent.- EXP calculation is now performed before the event is fired so listeners can read
and override the reward via
event.setExpReward(int).
Better Veinminer 1.2.2
release27 марта 2026 г.fix bug
Better Veinminer 1.2.1
release16 марта 2026 г.[1.2.1] — 2026-03-16
Fixed
- Critical Item Swap Bug — Fixed a bug where switching items during a veinmine task (0.05s delay) could overwrite a new item in the player's hand with the old tool, potentially causing item loss. The task now tracks the specific inventory slot and verifies the tool's identity before applying durability changes.
- UX Improvement — Success messages are now sent to the Action Bar instead of the chat to prevent spamming the chat history for active miners.
Better Veinminer 1.2.0
release14 марта 2026 г.[1.2.0] — 2026-03-14
Added
- Tier System — Players automatically progress through 4 tiers as they mine more blocks:
- Tier 1: 32 max blocks (0 blocks mined)
- Tier 2: 64 max blocks (100k blocks mined)
- Tier 3: 128 max blocks (500k blocks mined)
- Tier 4: 256 max blocks (1M blocks mined)
- Player Statistics — Track blocks mined, veinmines used, and current tier
- New Commands:
/bvm statsand/bvm tierfor player progression tracking - Ore Multipliers — Configure different drop multipliers for different ore types (e.g., diamonds worth 1.5x)
- Per-Ore Cooldowns — Optional: Set different cooldown times per ore type
- Permission-based Limits — VIP (
betterveinminer.vip) and Premium (betterveinminer.premium) tiers - Daily Limits — Optional: Prevent abuse by limiting veinmines per player per day
- Advanced Effect Settings — Customizable particle types, colors, speeds, and sounds
- Custom Messages — Fully customizable player notifications with placeholders
- EXP Rewards — Optional custom experience points for veinmining
- PlayerStats.java — New data class for tracking individual player progress
Changed
- Version bumped to 1.2.0 with major feature expansion
- pom.xml — Fixed XML syntax errors (typo:
<n>→<n>) - PluginConfig.java — Expanded from ~90 lines to ~300+ lines with comprehensive settings
- BetterVeinminer.java — Refactored to support tier system, stats, permissions, and daily limits
- config.yml — Completely rewritten with organized sections for each feature
- plugin.yml — Added 3 new commands and 2 new permission levels
Improved
- Much better tier progression system that rewards dedicated miners
- More granular permission-based control for VIP/Premium players
- Enhanced logging and player feedback with customizable messages
- Better code organization with dedicated helper methods
Better Veinminer 1.1.2
release11 марта 2026 г.fixed
Совместимость
Создатели
Детали
Лицензия:Apache-2.0
Опубликован:1 месяц назад
Обновлён:1 неделю назад
