New Integrations
- BanManager support as a punishment extender
- PlaceholderAPI expansion (%historyx_total%, %historyx_is_banned%, %historyx_active_ban_remaining%, etc.)
New Features
- Staff history GUI — /staffhistory <player> shows punishments issued by a staff member
- Right-click to revoke — active punishments can be revoked directly from the GUI via AnvilGUI reason input → confirmation screen → console command dispatch
- Punishment summary — player head item in both GUIs now shows per-type counts and total
- Granular permissions — each command and action (historyx.history, historyx.staffhistory, historyx.extrainfo, historyx.revoke, historyx.reload) is independently configurable via config.yml
Configuration & Reliability
- Centralized message/config handling — all user-facing strings and settings go through a single Messages class with hardcoded fallbacks; no NPEs on missing keys
- YAML validation on reload — config is validated before being applied; failures are reported without disrupting the running plugin
- Configurable cache TTL — cache_ttl_seconds controls how long punishment history is cached per player
- Config migration — old flat-key config format is automatically backed up and replaced with the new structure on startup
Performance & Maintainability
- Per-viewer GUI state (filter, sort, extra info) replaces previous global statics, eliminating race conditions between concurrent viewers
- Countdown timer only updates slots with active temporary punishments rather than rebuilding the full inventory each tick
- UUID→name resolution in staff history mode uses a per-viewer cache to avoid redundant Bukkit.getOfflinePlayer calls
Additions:
- Added sorting to the GUI. You are now able to toggle easily between sorting by date ascending, descending, etc.
- Implemented caching to reduce server strain and prevent lag
- Added a refresh button to force data to latest available
Fixes & improvements:
- Fixed multiple menus causing incorrect timings
- Fixed multiple menus linking filtering and sorting options
- Made code more efficient and scalable
- Fixed an issue with update checker errors on start-up.
- Cleaned-up code formatting and performance.
- Introduced more documentation.
- Introduced base for future features.
Fixes:
- Fixed an issue with warnings not filtering properly with LiteBans
- Fixed an issue when LibertyBans doesn't initialise properly
Configuration updates:
- Incorrect usage message is now configurable
- Player head in the inventory is now configurable
Version 1.0.7 introduces a few big additions and improvements.
Notes:
- EssentialsX is NOT able to be supported due to their system using vanilla punishments.
Additions:
- The developer API is now available and ready to use. You can find this here: https://github.com/willrees23/historyx-api
- An update checker is included in the plugin. You will now be notified if your version is out of date.
- Lots of fixes, performance improvements, and feature enhancements.
- Should now experience smoother data fetching.
- Revamped internal system for supported plugins
- Introduced better structure
- Prepare for addition of EssentialsX (next update - 1.0.7!)
- Improved support for LiteBans & AdvancedBan
HistoryX 1.0.5 - Please update!
- Fixes problem with lag when executing command of offline player
- Small config changes
- Message when fetching new player data
