CustomEnderChest v1.0.5 Major overhaul — stability, performance & data safety
Critical bug fixes
Fixed silent item loss when a player's EnderChestBar permission level drops between sessions. Inventories are now always stored as 54 slots and only the visible slice is overwritten on save, preserving hidden slots.
All JDBC operations moved off the main thread. No more server stalls when opening/closing an EnderChest on remote MySQL.
Open inventories are now saved on server shutdown — no more lost items when restarting with chests open.
Fixed double-open bug where clicking an EnderChest block would sometimes open the custom inventory twice.
Performance
HikariCP connection pool replaces the single shared JDBC connection. MySQL now has auto-reconnect and proper pool sizing (10 connections).
Transaction-safe legacy migration — the vanilla EnderChest is only cleared after a successful DB insert.
Quality of life
New admin-inventory-title config key — customize the title shown when admins view other players' chests.
%player% placeholder now works in messages (alongside %1%).
Offline-player lookups for /achest view and /achest delete run async — no more hitches on unknown names.
All EnderChestBar.* permissions now properly declared in plugin.yml and visible in /plugin perms.
Under the hood
Now requires Java 17 (same as Spigot/Paper 1.20+).
MySQL and SQLite JDBC drivers are now bundled — works on Paper 1.20+ which no longer ships them.
Full refactor: listener logic unified, command classes no longer double as listeners, ~650 lines of duplication removed.
⚠ Upgrading from 1.0.4? No config migration needed — existing SQLite/MySQL data is fully compatible.
Just drop in the new JAR and restart.