-
Notifications
You must be signed in to change notification settings - Fork 0
Changelog
All notable changes to X-PrivateMines are listed here, newest first.
-
Full ItemsAdder support. ItemsAdder custom blocks can now be used everywhere vanilla blocks are used:
-
Mine tiers — add custom block ids to any tier in
mine-tiers.yml(e.g.itemsadder:ruby_block: 20). -
Block selection — list custom block ids under
gui.blocksinconfig.ymlso players can pick them from the Block Change GUI. Each is gated byxprivatemines.block.<namespace>.<id>. -
GUI icons — use a custom item id in the
material:field of any menu inguis.yml. -
/pmine forcesetblock <player> <id>accepts ItemsAdder ids too.
ItemsAdder is an optional (soft) dependency — nothing changes if it is not installed, and existing vanilla configs keep working unchanged. Supported type: ItemsAdder "real" blocks, which fill/reset at full speed and drop correctly when mined. Custom blocks resolve automatically once ItemsAdder finishes loading and are re-checked after
/iareload. -
Mine tiers — add custom block ids to any tier in
-
Custom mine names. Mine owners can give their mine a personal display name with
/pmine setname <name>. The name appears in the public mines list and in the%xprivatemines_name%placeholder. Run/pmine setname clearto revert to the default ("OwnerName's Mine"). -
Mine MOTD. Owners can set a welcome message shown to every player who enters their mine with
/pmine setmotd <message>. Run/pmine setmotd clearto remove it. Whether the owner themselves sees the MOTD is controlled bymine-motd.show-to-ownerinconfig.yml. -
Leaderboards.
/pmine top [category]opens a paginated GUI ranking all mines. Four built-in categories:tier,size,tax, andfee. Players can click any entry to visit that mine (entry fee and ban rules still apply). Everything shown in the GUI — title, item name, and lore — is configurable per category inconfig.yml.
-
PrivateMineinterface now exposesgetMineName(),setMineName(),getMineMotd(),setMineMotd(), andgetDisplayName(). - Dashboard mine endpoints now include
mineName,displayName, andmineMotdfields. - New dashboard endpoints:
PUT /api/mines/{uuid}/name,PUT /api/mines/{uuid}/motd. - Three new leaderboard endpoints:
/api/leaderboards/largest-mines,/highest-fee,/highest-tax.
| Placeholder | Description |
|---|---|
%xprivatemines_name% |
Mine display name (custom name if set, otherwise "OwnerName's Mine") |
%xprivatemines_motd% |
Mine MOTD (empty string if not set) |
%xprivatemines_top_<category>_<rank>_name% |
Display name of the mine at leaderboard rank N |
%xprivatemines_top_<category>_<rank>_owner% |
Owner name of the mine at leaderboard rank N |
%xprivatemines_top_<category>_<rank>_value% |
Sort-field value for the mine at rank N |
-
config.yml— Newmine-namesection (max-length: 32). -
config.yml— Newmine-motdsection (max-length: 128,show-to-owner: false). -
config.yml— Newleaderboard.categoriessection with four configurable categories (tier,size,tax,fee). Each category acceptsenabled,display-name,gui-title,item-name, anditem-lore. -
messages.yml— Nine new keys:mine-name-set,mine-name-cleared,mine-name-too-long,your-mine-name,mine-motd-set,mine-motd-cleared,mine-motd-too-long,your-mine-motd,mine-motd-header,leaderboard-invalid-category.
- Servers with many mines start up noticeably faster. Mines are now loaded in parallel at startup instead of one by one, cutting load times significantly on large servers.
- Removed a hidden per-mine block scan on startup. Previously, the plugin scanned every block inside each mine region when the server started — on large mines this could add seconds of startup time per mine. This scan has been replaced with a lightweight counter that stays accurate in real time.
- Mines with a missing WorldGuard region no longer cause issues on startup. If a mine's region was manually deleted from WorldGuard, the plugin would silently fail to load that mine correctly. It now detects the missing region, skips the affected mine, and logs a clear warning instead.
-
Kicking a player from their mine now always works. If your server does not have a
/spawncommand, kicked players are now sent to the mine's reset location as a fallback rather than staying put.
-
Addons can now manage other addons via the API.
XPrivateMinesAPIhas four new methods for listing, enabling, disabling, and loading addons at runtime. -
New
MineBlockBreakEvent. Fired every time a player breaks a block inside a mine. Addons and other plugins can now listen to or cancel these events. -
Economy operations are now accessible via the API through the
MineEconomyProviderinterface. -
New API methods on
PrivateMinesManager: look up mines by UUID or owner, list all schematics, reassign a mine to another player, and read pregen progress counters. -
Addons can now safely use the API in their
onEnable. The API is initialised before any addons are loaded, and addons are reloaded automatically when/pmine reloadis run.
-
Fixed server error when force-upgrading an offline player's mine. Running
/pmine forceupgradeon a player who is not currently online no longer causes a console error. -
Fixed
/pmine claimdepositing $0. Claiming tax earnings when nothing has been earned now shows a proper "no earnings" message instead of claiming $0. -
Fixed
/pmine openand/pmine closenot checking current state. Both commands now inform the player if their mine is already in the requested state, instead of silently repeating the action. - Fixed back-navigation breaking after banning a player. After banning someone via the Manage Bans menu, closing the ban list now correctly returns to the Mine Settings GUI as expected.
-
Block change cooldown is now enforced. Players can only change their mine block once per day (default 86400 seconds, configurable via
player-cooldowns.block-changeinconfig.yml). Thecant-change-blockmessage inmessages.ymlwas previously defined but never actually sent — it is now. - Back button in Block Selection GUI. A Barrier button at the bottom-right of the block picker now returns players to the main mine GUI without having to close the inventory.
-
Three new PlaceholderAPI placeholders:
-
%xprivatemines_entry_fee%— Entry fee (formatted by economy provider) -
%xprivatemines_unclaimed_money%— Unclaimed tax earnings (formatted by economy provider) -
%xprivatemines_reset_progress%— Current mine fill percentage (e.g.75.00%)
-
config.yml — new key under player-cooldowns:
player-cooldowns:
mine-reset: 10
block-change: 86400 # NEW — seconds between block changes (default: 1 day)messages.yml — three new keys:
no-unclaimed-money: ... # Shown when /pmine claim is run with no earnings
mine-already-open: ... # Shown when /pmine open is run on an already-open mine
mine-already-closed: ... # Shown when /pmine close is run on an already-closed mine-
Bedrock walls — Each schematic can now be configured to surround the mine with bedrock walls and floor on every reset. Enable per schematic in
schematic-settings.ymlwithbedrock-walls: true.
- Fixed orphaned bedrock blocks remaining after
/pmine forceexpandshrinks a mine to a smaller size.
- Updated to support Minecraft 1.26.x.
- Improved mine loading efficiency by 10×.
- All mine data is now stored in a single
mines.ymlfile instead of individual files per mine. - One-time migration command:
/pmine migrate confirm. See Setup for instructions. - Unclaimed (pre-generated) mines are now visible in
/pmine adminlist.
- Fixed issues with
/pmine list. - Min/max tax percentage limits now also enforced in GUI edits.