⚡ X PRISON ⚡ - Packet Prison Core [1.13-26.2]

MC Plugin ⚡ X PRISON ⚡ - Packet Prison Core [1.13-26.2] 2026.3.10.4
Flagship all-in-one core every top prison server runs on.

X-Prison 2026.3.7.0 — The self-checks are readable from outside the game (2026-09-02)

ChangeLog: https://github.com/Drawethree/X-Pri...re-readable-from-outside-the-game--2026-09-02

An API release. Nothing changes for players, and no configuration is touched — this exists so the Dashboard addon (and any addon you write) can read what X-Prison already knows about itself.

Three self-checks, no longer trapped in chat
/xprison lint, /xprison health and /xprison perms each computed something useful and then printed it to chat, where nothing else could get at it. All three are now available to addons:

  • The configuration linter — enchants fighting over the same GUI slot, enchants priced in a currency that does not exist, an empty supported-pickaxes, mines whose percentages do not total 100 % or that have no teleport point.
  • The startup warning digest — the warnings collected while the plugin enabled, kept so they can be read long after the console has scrolled past them.
  • The permission catalog — every node X-Prison checks with a plain-English description, generated from the plugin's own constants, so a node cannot be added without documenting itself.
The Dashboard uses this for its new Config Health page, which shows the same findings /xprison lint does without anyone having to be in-game to run it.

Auto Rankup, Auto Prestige and Auto Rebirth can be changed for offline players
The three per-player toggles introduced in 2026.3.6.2 were stored against the player object, so they could only be read or changed while that player was online. They now work by UUID as well, reading straight from XPrison_PlayerPreferences when the player is away.

The in-game path is unchanged and no slower: the auto-rankup check still reads from memory on every tick it runs, exactly as before.

For addon developers
Two additions to X-PrisonAPI, both optional:

XPrisonAPI.getInstance().getDiagnosticsApi(); // lint findings, startup warnings, permissions
XPrisonAPI.getInstance().getPlayerPreferencesApi(); // auto-rankup / auto-prestige / auto-rebirth
Both are default methods that throw UnsupportedOperationException on an older core, so an addon compiled against this version still loads on an older one — guard the call if you support both. lintConfiguration() must be called from the main thread; the preferences API documents which of its reads can touch the database.

Any module or addon can store its own on/off switch in the same preferences table, and it appears in /toggles automatically.

Pickaxe levels can be set through the API again
XPrisonPickaxeLevelsAPI.setPickaxeLevel(player, item, level) returns void, which reads as "this edits the item you passed in". It does not: levelling rebuilds the pickaxe — it writes the level into the item's NBT, regenerates the display name and re-applies the enchant lore — and hands back a new ItemStack. The API threw that result away, so the level was applied to a stack that was immediately discarded.

The effect was that every API caller silently failed. In-game commands were unaffected, because they use the manager directly and keep the returned item; only addons and the Dashboard hit it. This is the same shape as the Pickaxe Skins bug fixed in 2026.3.1.9, in a second place.

Two things changed:

  • setPickaxeLevel now stores the rebuilt item back into the inventory slot it found the original in, so existing addons start working without being recompiled.
  • A new withPickaxeLevel returns the rebuilt item, for callers holding a pickaxe that is not in an inventory yet — the case the write-back above cannot help with, because there is no slot to write to.
// Preparing a pickaxe before giving it out:
ItemStack pickaxe = new ItemStack(Material.DIAMOND_PICKAXE);
pickaxe = api.getPickaxeLevelsApi().withPickaxeLevel(player, pickaxe, 25);
player.getInventory().addItem(pickaxe);
withPickaxeLevel is a default method that throws UnsupportedOperationException on an older core, so an addon compiled against this version still loads on an older one. No existing signature changed, so no addon needs recompiling. See Developer API.

If you build pickaxes from an addon or the Dashboard's Pickaxe Creator, this is the release that makes the level actually stick.

No existing signature changed, so no addon needs recompiling. See Developer API.
We have made small internal fixes for previous release
We have made small internal fixes for previous release
Update 2026.3.1.8 - Fixes & housekeeping [UPLOAD FIX]
Top Bottom