v2.0.0
✨ What's New
🗄️ Complete Storage System
StoneLib now includes a common repository system with support for:
- YAML storage
- SQLite databases
- MySQL databases
- Connection pooling through HikariCP
- Automatic database schema migrations
- Individual record reloading for multi-server environments
- Location serialization and deserialization
🌐 Cross-Server Messaging
Plugins can now communicate between Paper servers through Velocity using the new MessageBus system.
This makes it easier to synchronize caches, player data, cosmetics, settings, and other shared information across a network.
⚙️ Versioned Configuration Updates
Configuration files can now be safely upgraded between plugin versions.
StoneLib can:
- Add new configuration options
- Preserve existing values
- Preserve comments and ordering
- Rename or relocate configuration options
- Support multiple configuration files
The existing CopyResources system remains compatible but is now deprecated in favour of the new configuration system.
💬 Improved Messaging
A new MiniMessage-based messaging system provides:
- Positional placeholders
- Named placeholders
- Action bar messages
- Titles and subtitles
- Optional message entries
- Legacy colour conversion
- Plain-text conversion
Placeholder values are safely inserted without allowing unwanted MiniMessage formatting or interactions.
🛡️ Safer External and Player Text
The new UntrustedText utility protects messages containing player input or data received from external services.
Potentially dangerous formatting characters are neutralized before the text is displayed.
🎮 Command Framework
The new command router makes it easier for plugins to build structured commands with:
- Subcommands
- Permissions
- Tab completion
- Centralized command routing
🖥️ Menu Framework
StoneLib now includes reusable inventory menu handling with:
- Typed menu contexts
- Centralized click handling
- Automatic interaction blocking
- Safer inventory behaviour
📝 Native Paper Dialogs
Plugins can now create modern Paper dialogs with:
- Text fields
- Sliders
- Toggles
- Dropdowns
- Submit actions
- Cancel actions
- Validated responses
🪧 Native Holograms
StoneLib can now create and manage holograms using Paper's native TextDisplay entities without requiring an external hologram plugin.
🎁 Configurable Loot Tables
Plugins can build weighted loot and reward systems directly from configuration files, including:
- Weighted items
- Minimum and maximum quantities
- Enchantments
- Multiple rolls
- Safe handling of invalid entries
⏱️ Cooldowns and Scheduling
New shared utilities provide:
- Player and action cooldowns
- Optional cooldown bypass permissions
- Sync and async tasks
- Delayed and repeating tasks
- Automatic task tracking and cleanup
- Async work with main-thread callbacks
🔐 LuckPerms Integration
The new permission service provides:
- Permission lookups
- Cached permission checks
- Temporary permission grants
- Automatic expiry
- Permission revocation
🎨 Shared Rendering
StoneLib now includes an asynchronous rendering system designed for effects and other frequently updated visual elements.
Multiple renderables can share one render loop with built-in viewer distance culling, reducing the need for individual repeating tasks.
⏰ Duration Utilities
Durations can now be consistently displayed in:
- Clock format
- Human-readable format
- Compact format
🔧 Platform Modernization
StoneLib has been updated for the current Paper platform and now targets:
- Paper 26.2
- Java 25
The project has also moved from the old org.modularsoft.StoneLib package structure to:
dev.anchorlight.stonelib
⚠️ Breaking Changes
StoneLib 2.0.0 is a major-version release and existing integrations will require updating.
- Java 25 is now required.
- The library now targets Paper 26.2.
- Java package names have moved to
dev.anchorlight.stonelib. - The Maven project group has moved from
org.modularsofttodev.anchorlight. CopyResourcesis deprecated in favour ofConfigUpdater.
Existing ItemBuilder and ConfigValidator functionality remains available under the new package structure.