Synopsis
This update mainly focuses on making the plugin faster, safer, and more scalable by improving database startup, schema/index design, query performance, retry behavior, and item/container logging so searches and rollbacks are more reliable. It also tightens the editor and API side with safer rendering, cleaner pagination, better async/tab handling, stronger filtering/date handling, and reduced desync or stale-state issues.
For best results I recommend that you do /po purge 0 and start your database storage from the begining.
- Added maintenance mode protection to stop DB queues from growing too large.
- Improved shutdown handling so queued work flushes more safely.
- Switched Hikari to use MariaDbDataSource directly.
- Split DB setup into fast startup + heavy async migrations.
- Added async schema updates for name/lore search columns and FULLTEXT indexes.
- Added generated chunk columns cx and cz.
- Added new chunk-based indexes for faster rollback and area searches.
- Updated queries to use cx/cz and sort_ts for better performance.
- Improved filtering for materials, entities, ignored usernames, name, and lore.
- Added safer retry logic for transient DB update failures.
- Added dedicated database fields for searchable item data, including name, lore, and enchants.
- Switched item name, lore, and enchant search data from JSON storage to dedicated database columns for better reliability and performance.
- Cleaned up item frame logs so even basic items now store usable item data instead of sometimes being empty.
- Expanded item search logging to cover more important cases, including pickup/drop, item frames, armor stands, and container add/take.
- Improved container tracking to reduce duplicate logs and store cleaner snapshots.
- Added better handling for shulker box snapshots when placed with items already inside.
- Updated database startup so the essential setup runs first, while larger migration tasks run after startup to reduce load during boot.
- Hardened the editor UI against injection by replacing fragile string-built HTML/JS with safer escaping and DOM-based rendering.
- Fixed async race conditions in log loading so stale requests no longer append into the wrong tab or corrupt loading state.
- Restored consistent tab behavior: switching tabs now cleanly resets and reloads with correct per-tab pagination state.
- Improved metadata rendering and item-detail display, including safer parsing of colored text/lore and lazy-loaded metadata panels.
- Cleaned up client pagination by using keyset cursors (lastTimestamp / lastId) instead of brittle page-based behavior.
- Tightened server-side request flow with better token handling, refresh support, gzip responses, and more up-to-date stats rendering.
- Fixed backend filtering edge cases, including safer config handling, better request parsing, and consistent timezone-aware date filtering.
- Simplified API usage toward safer, more reliable same-origin behavior and reduced frontend/backend desync issues.
- Removed dead code / stale state from earlier refactors, making the editor easier to maintain without changing intended features.
Please consider leaving a good review for the plugin.
Discord Support