Skip to content

MessageFlow v1.0.0

Latest

Choose a tag to compare

@1robie 1robie released this 01 Jun 15:39
· 2 commits to main since this release

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 GlobalPlaceholderRegistry for registering static and dynamic placeholders globally.
    • New Placeholder Class: A dedicated structure for granular, per-message data replacement, replacing legacy argument arrays.
  • Sound Support: New SoundMessage type 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 AbstractMessageTypeAdapter to centralize delivery logic.

⚠️ Breaking Changes & Deprecations

  • Breaking: Placeholder API Shift: We have moved away from loosely typed Object... args for placeholders. All methods previously accepting varargs now require the new Placeholder class. This provides better type safety and clarity but will require updates to existing method calls. Check breaking changes part inside the README.md.
  • Deprecation: Configuration API: Setters and getters in ConfigurationOptions are now deprecated. Please migrate to the new ConfigurationManager.Setting system for a more consistent configuration experience.