Skip to content

v2.0.0

Choose a tag to compare

@benrobson benrobson released this 11 Sep 10:39
· 24 commits to master since this release
fcf34e0

✨ 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.modularsoft to dev.anchorlight.
  • CopyResources is deprecated in favour of ConfigUpdater.

Existing ItemBuilder and ConfigValidator functionality remains available under the new package structure.