Skip to content

Releases: 1robie/MessageFlow

MessageFlow v1.0.0

01 Jun 15:39

Choose a tag to compare

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.

0.0.4

15 May 18:26

Choose a tag to compare

Add Throwable overloads for debug, warn, and error logger methods

Advanced Logging System & Architectural Refinement

15 May 18:08

Choose a tag to compare

🚀 New Features

  • Comprehensive Logging Framework:
    • Introduced a robust Logger API that supports both Adventure (modern) and Legacy (ChatColor) formatting.
    • Global Access: Static methods for easy logging across your project, featuring relocation safety checks to
      prevent conflicts when shaded.
    • Rich Configuration: Supports custom prefixes, per-type color settings, stacktrace logging, and visibility
      control for log types.
    • Contextual Logs: Added detailed warnings in Boss Bar message adapters and internal MessageManager logs for
      easier debugging.
  • Improved Validation: Integrated Preconditions across the core API to enforce non-null parameters and provide
    clearer error messages during development.

🔨 Refactorings & Improvements

  • Type Safety Overhaul:
    • Enhanced generics in MessageFormatter and MessageManager to ensure stricter compile-time checks.
    • Updated IMessageManager and MessageManager to strictly enforce non-null language parameters.
  • API Simplification:
    • Streamlined message constructors by removing redundant parameters, favoring a cleaner initialization pattern.
    • Removed unused resolve method in the core implementation.
  • Naming Consistency: Renamed ComponentLogger to AdventureLogger to maintain symmetry with the AdventureFormatter
    naming convention.

📚 Documentation

  • README Redesign: A complete rewrite of the README.md with improved formatting, clear feature breakdowns, updated
    installation instructions, and comprehensive usage examples.
  • Javadoc Enhancements: Added detailed Javadoc comments for all core message classes and configuration options,
    providing better IDE integration and developer guidance.

🐛 Minor Fixes

  • Fixed indentation issues in the Maven dependency examples.
  • Standardized default greetings in messages.yml from French to English for broader compatibility.

Minor fix + java doc improvement

03 May 08:57

Choose a tag to compare

Allow dev to edit the languagePathFormat inside EnumLanguageConfiguration.class with EnumLanguageConfiguration#languagePathFormat.
Add missing javadoc.

Full Changelog: 0.0.1...0.0.2

Realease 0.0.1

02 May 22:12

Choose a tag to compare