We are proud to announce the first major release of MessageFlow! This version introduces a powerful new fluent API, granular delivery controls, and a completely redesigned placeholder system, establishing a robust foundation for Minecraft plugin messaging.
✨ Key Features
- Fluent Message Builder: Introducing IMessageBuilder—a sleek, chainable API to construct and send messages with ease.
- Placeholder Engine Upgrade:
- Native support for PlaceholderAPI integrated into every message.
- New
GlobalPlaceholderRegistryfor registering static and dynamic placeholders globally. - New
PlaceholderClass: A dedicated structure for granular, per-message data replacement, replacing legacy argument arrays.
- Sound Support: New
SoundMessagetype allows you to trigger immersive audio cues (with volume, pitch, and category control) alongside your text. - Granular Delivery Controls: Take total control over where your messages go with new settings for broadcast,
send-to-console, and exclude-senders, configurable at both the global message and individual component level.
🛠️ Improvements & Refactors
- Centralized Logging: The Logger system has been refactored for better maintainability and now supports method-level context parameters.
- Modern Formatting: Enhanced AdventureMessageFormatter and MessageFormatter with improved support for legacy colors and placeholder resolution when retrieving Component or String outputs.
- Flexible Configuration: Developers can now expose library settings directly to users within YAML files. The system handles automatic file generation and synchronization of missing keys.
- Architectural Refactor: Transitioned message models from records to a flexible class-based hierarchy with an
AbstractMessageTypeAdapterto centralize delivery logic.
- Breaking: Placeholder API Shift: We have moved away from loosely typed Object... args for placeholders. All methods previously accepting varargs now require the new
Placeholderclass. This provides better type safety and clarity but will require updates to existing method calls. Check breaking changes part inside theREADME.md. - Deprecation: Configuration API: Setters and getters in ConfigurationOptions are now deprecated. Please migrate to the new
ConfigurationManager.Settingsystem for a more consistent configuration experience.