Changelog
All changes for each version of FlectonePulse
Warning
This is the last version that supports migration from versions `1.4.3` to `1.11.0`. In future updates, migrations from old versions will be removed
Bug Fixes
- Reverted message placeholders in integrations
Warning
This is the last version that supports migration from versions `1.4.3` to `1.11.0`. In future updates, migrations from old versions will be removed
Features
- Classes that inherited from `EventMetadata` have been removed and replaced with `MessageContext` composition. This allows creating cache keys that depend on context, fixing message duplication caused by formatting cache
Refactors
- Localization modules no longer contain generics
- Added duplicate game check in minesweeper
- VanishMetadata replaced with VanishMessageContext
- IntegrationMetadata replaced with IntegrationMessageFormat
- Some dependencies changed from compileOnly to compileOnlyApi for proper FlectonePulse API functionality
- Whois command is now disabled by default in Hytale
Bug Fixes
- Unknown UUID no longer breaks login state tracking on proxy
- Minesweeper game is now properly removed after win or loss
- Handled vanish status initialization for players
- Player synchronization between cache and database fixed
- Prevented world update for unknown players
- Overhead messages no longer render during plugin shutdown
- Unknown players are now properly handled in proxy messages
- Nickname is now sent via proxy
- `/chatcolor` is now sent locally if proxy is not enabled
- Added user message indicator in overhead messages to distinguish cache (fix for duplicates)
- Legacy color conversion in `/stream` replaced with new tag resolver approach
Dependencies
- TelegramBots updated to v10.1.1
Features
- Added whois module for searching players by IP
- Added Minesweeper game with flag mode
- Added padding module for centering and aligning text with characters
- Added message context cache with expireAfterWrite option
- Added duplicate check setting for bans and mutes
- Added offline event handling in Twitch integration
- Added timeout setting for main executor threads
Refactors
- Player inventory on Hytale now uses hotbar component
- Task queue changed from SYNCHRONOUS to LINKED_BLOCKING executor
- Player head placeholder replaced with optional format
- Simplified translation argument handling in ComponentDecorator
- Added flag to control message caching
Bug Fixes
- Fixed UUID and nickname mismatch on login in whitelist module
- Added disconnect check in proxy mode in quit module
- Disabled legacy color conversion and removed query parameters from URLs in stream module
- Fixed message sending in Twitch (replaced telegram with twitch sender)
- Player tag no longer auto-resolves in usage messages
- Fixed hints in mutelist and dice
- Online status now correctly updates in cache without race conditions in proxy mode
- Unknown server on proxy is now handled
- getPacketVersion replaced with getClientVersion for version checks
- Added old client version check in object
- Added NPE handling in PlaceholderAPI placeholders
- Backslashes are now escaped in moderation reasons
- Exception when getting ping in player adapters is now handled
Dependencies
- Hytale Server updated to 0.5.7, HyUI to 0.9.8
- SkinsRestorer API updated to v15.12.5
- Cloud libraries updated to v2.0.0-beta.17
- Fabric Loom updated to v1.17.16
- Vanish updated to v1.6.15
- LibertyBans updated to v1.1.4
- Velocity API updated to v4
- PlaceholderAPI updated to v2.12.3
- Jackson updated to v3.2.1
- Log4j updated to v2.26.1
- PostgreSQL updated to v42.7.13
- Netty updated to v4.2.16
- JDBI updated to v3.54.0
- Triton API updated to v4.1.0
- SQLite updated to v3.53.2.1
- TelegramBots updated to v10.1.0
- fastutil updated to v8.5.19
- Gradle updated to v9.6.1, Shadow plugin to v9.6.1
Features
- Added support for Minecraft version 26.2
- Started NeoForge support (in development)
- Completely reworked the command system in the scoreboard. Added per-player visibility control and support for name display distance
- Added distance-based text rendering in belowname
- The spy module has been rewritten using packet monitoring (so it works on Fabric too)
Refactors
- In FPlayer, improved ID generation and type handling; now uses a constant for the console
- The bubble module uses its own ExecutorService with error handling
- Objective name generation has been extracted into a separate method
- In FColor, added comments for SEE and OUT types
Bug Fixes
- Optimized database connection pool
- Handled concurrent player updates in FPlayerDAO
- Added client version check in ServerLink
- Console excluded from offline player suggestions
- Added color context control in objective
- getFirst replaced with getInt for compatibility with JVM downgrader
- Fixed argument order in sulfur cube death messages
Dependencies
- PacketEvents updated to 2.13.0
- VoiceChat API updated to v2.6.20
- Fabric updated to 26.2
- Fabric Loom updated to v1.17.12
- Vanish updated to v1.6.14
- Cloud Fabric updated to v2.0.0-beta.17
- Cloud Paper updated to v2.0.0-beta.16
- Gradle updated to v9.6.0
- maven.publish plugin updated to v0.37.0
Features
- Implemented unified task scheduler
- Added SuperVanish state synchronization across servers via proxy
- On server start and reload, all players in the database are marked as offline
Refactors
- Proxy message listeners extracted into separate classes
- Player cache invalidation on the proxy optimized
- Proxy initialization moved to the correct loading phase
- Library com.alessiodp.libby replaced with internal Flectone dependencies
- Player nickname validation extracted to a separate validator class
- ArtifactId API is now dynamic (common -> minecraft-common, bukkit -> minecraft-bukkit, etc.)
- Updated log color scheme and thread prefix
- Incendo Cloud Pair replaced with Apache Commons Lang3 Pair
- Removed unused BiPredicate and imports from ModuleController
Bug Fixes
- Fixed race condition in online status handling
- Player removed from scoreboard on server leave
- Locale update occurs only for online players
- Proxy no longer sends messages on plugin shutdown
- Added valid range check to proxy listeners
- Vanilla commands are no longer removed in Bukkit with default config
- Added Folia compatibility for entity passenger handling
- Fixed error message formatting in logs
- Direct page number input in moderation is handled correctly
- Fake join/leave messages while vanished displayed with correct visibility
- Fixed main class name in bungee.yml
- Cache for unknown players updates correctly
- Improved player name validation in whitelist
- Proxy moderation filtered by server
Dependencies
- Updated Hytale Server to 0.5.5
- Updated SkinsRestorer API to v15.12.3
- Updated LibertyBans to v1.1.3
- Updated Vanish to v1.6.11
- Updated HikariCP to v7.1.0
- Updated Plasmovoice API to v2.1.10
- Updated Fabric Loom to v1.17.11
- Updated MariaDB Java Client to v3.5.9
- Updated Jackson to v3.2.0
Features
- Added vanilla command removal functionality (bukkit)
- Added import functionality to whitelist (whitelist)
- Added player login and connection event handling for Fabric
Refactors
- !!! Separated FPlayer and settings, ignores, colors into SocialService (BREAKING CHANGE API: FPlayer no longer contains these fields) !!!
- Added proxy message listeners for all modules (api)
- Moved proxy registry enable call to correct position
- Streamlined cache invalidation process
- Removed player name parameter from pre-login processing
- Moved playtime repository from social to dedicated repository
- Removed settings loading from player queries (database)
- Separated FPlayerService into PlaytimeService and ModerationService, added new cache for SocialRepository
- Restructured listeners
Bug Fixes
- Replaced direct IntegrationModule dependency with provider injection
- Removed explicit field selection from database queries
- Removed default AFK from message ignore (afk)
- Checked AFK suffix before removal and fixed double message (afk)
- Replaced login session tracking with online status validation [#359](https://github.com/Flectone/FlectonePulse/issues/359)
- Fixed InteractiveChat raw tags in Discord [#360](https://github.com/Flectone/FlectonePulse/pull/360)
- Fixed player head validation logic: check playername first, then UUID and textures (object) [#362](https://github.com/Flectone/FlectonePulse/pull/362)
- Handled additional database migration error cases
- Bound component extractor (platform)
- Excluded console from range filtering (filter)
- Delayed player online invalidation on proxy (proxy)
Dependencies
- Updated Fabric Loom to v1.17.3
- Updated Hytale server version dependency
- Updated SkinsRestorer API to v15.12.2
Features
- Added serverlink module (serverlink)
- Added whitelist command
- Added support for formatting books, anvil names, and sign events with components for Paper (book, anvil, sign)
- Added reasons field for unban, unmute, and unwarn (moderation)
- Added server UUID configuration and server-side filtering for bans, mutes, and warns (ban, mute, warn)
- Added subcommand configuration (command)
- Added extended maintenance command capabilities: start/stop, support for time and reason (maintenance)
- Added asynchronous texture loading with MineSkin integration (texture)
- Added integration with MiniPlaceholders API for Fabric (miniplaceholders)
- Added console name formatting (names)
- Added radius parsing for clearchat and emit commands (clearchat, emit)
- Added always_send_silent_packet option
- Added detection of Bedrock players via UUID version check
- Added additional integration placeholders (COMMAND_MAINTENANCE_FALSE/TRUE, MESSAGE_AFK_FALSE/TRUE, etc.)
- Added Type enum with INIT and READY values in EnableEvent (api)
- Added controls for fake join/leave messages (supervanish)
- Added option to cancel default death screen (vanilla)
- Added death messages for magma cube (minecraft)
- Added radius configuration for playerlistname (playerlistname)
- Added Mojang skins loading option (skinsrestorer)
- Added avatar and body skin support for Hytale (hytale)
- Added player indexing system for fast lookup by UUID, name, and IP (player)
- Added violation tracking system with caps, flood, and profanity limits (moderation)
- Added mode selection support for newbie message triggers (newbie)
Refactors
- Simplified task scheduling API, runRegion used only when necessary (scheduler)
- Enabled server-side filtering by default (moderation)
- Updated moderation system to properly handle unmoderation events
- Replaced Collections with immutable collection factory methods
- Replaced deprecated Optional-based formatting with Paper component serialization
- MessageContext migrated to builder pattern
- Split PreLoginEvent listeners for Bukkit and Paper compatibility (bukkit)
- Replaced direct component serialization methods with unified ComponentSerializer
- Optimized bubble message splitting logic (bubble)
- Added ComponentDecorator for consistent text formatting (platform)
- Set default has_shadow: true and see_through: false for bubble messages (bubble)
- Moved scoreboard module to correct package (scoreboard)
- Moved DAO implementations to database-specific interfaces (database)
- Replaced individual moderation command implementations with centralized ModerationListSender (moderation)
- Extracted UUID parsing logic into dedicated parser class
- Reworked message dispatcher with improved API and documentation (api)
- Changed moderation field type from int to string (moderation)
- Separated Twitch, Telegram, and Discord integration classes
- Optimized bubble message queue management with minimum display time (bubble)
- Animation time applied to all modern bubble messages (bubble)
- Updated Discord client creation with presence handling (discord)
- Performed general refactoring and code optimization
Bug Fixes
- Fixed login session management and player collection operations in async tasks (minecraft)
- Implemented persist method for integration modules (placeholderapi)
- Updated equals and hashCode methods for FPlayer entity
- Players are always kicked to the proxy via the server (maintenance)
- Added check for empty full word before calling isIgnored (swear)
- Fixed double command suggestions (hytale)
- Player data always saved after login event
- Use event player instead of original fPlayer when processing PreLoginEvent
- Fixed webhook creator ID comparison (discord)
- Optimized message sending with async execution (greeting)
- Replaced StringUtils.chop with Strings.CS.removeEnd, fixes [#341](https://github.com/Flectone/FlectonePulse/issues/341)
- Generate random UUID for unknown players in DAO methods (database)
- Added console player handling and caching logic (player)
- Prevented sidebar from being sent if player disabled the setting (sidebar)
- Added boundary check to prevent array out of bounds error (bubble)
- Added zero ID error messages for unban, unmute, and unwarn (moderation)
- Fixed AFK delay condition during migration
- Use different player instead of sender for proxy sending (proxy)
- Handled chest atlas naming mismatch (sprite)
- Fixed initial maxNumber value and default key skip (condition)
- Resolved proxy player online status synchronization issue
- Fixed simple message sending method in ProxySender (proxy)
- Updated version compatibility warnings (minecraft)
Dependencies
- Updated SQLite JDBC to v3.53.2.0
- Updated BuildConfig plugin to v6.0.10
- Updated Hytale server version to 0.5.3
- Updated PacketEvents Spigot to v2.12.2, transitioned to own Maven repository
- Updated Netty Buffer to v4.2.15.Final
- Updated Fabric Loader to v0.19.3 and Fabric Loom to v1.16.3
- Updated TelegramBots to v10
- Updated Vanish to v1.6.9+26.1.2
- Updated MineSkin Java Client to v3.2.6
- Updated Jackson YAML to v3.1.4
- Updated Lettuce Core to v7.6.0.RELEASE
- Updated Shadow plugin to v9.4.2
- Updated Gradle to v9.5.1
- Updated Log4j Core to v2.26.0
- Updated PostgreSQL to v42.7.11
- Updated Triton API to v4.0.1
- Updated JDBI Core to v3.53.0
Features
- Added disallowed input pattern filtering for bubble messages (bubble)
Refactors
- Renamed eventMessage parameter to rawString for clarity (chat)
- Changed AFK delay from seconds to ticks (afk)
- Updated AFK delay value from 3000 to 36000 ticks (afk)
- Separated TOTAL and TOTAL_DYNAMIC time types (online)
- Replaced hardcoded library relocation patterns with BuildConfig constant
- Streamlined library resolution with dynamic artifact handling
- Moved LoginStatus to shared constant utility
- Simplified chat type lookup (proxy)
- Replaced visibility filter method with direct stream filtering (playerlistname)
- Optimized HTTP client configuration for Discord and Telegram integrations
Bug Fixes
- Fixed Fabric SimpleVoice chat integration class name
- Added Velocity login state tracking for player connection management
- Added null check for sound object in sound players
- Added system skin handling with proxy cache updates (skinsrestorer)
- Added fallback mechanism using MojangSkinDataResult when primary skin lookup fails (skinsrestorer)
- Fixed signature inclusion in profile property (object)
- Changed online players to platform players in cleanup process
- Fixed object module to always use local textures when MineSkin is not hooked
- Fixed object client version check
- Fixed LuckPerms user loading when player is not unknown
- Fixed tick multiplier usage
Dependencies
- Downgraded Adventure API dependency to 4.x (temp)
- Updated cloud dependencies to org.incendo namespace
Features
- Added toponline player placeholder (toponline)
- Added online time placeholders and integration support (online)
- Added AFK playtime tracking disabling option (#322)
- Added warning method overload for object parameter (logging)
- Added quit message sending to all platform players on disable
Refactors
- Renamed classes with platform prefix
- Moved integration message handling to async tasks
- Updated player join/quit event handling with cancellation support (api)
Bug Fixes
- Fixed AFK disable event handling (afk)
- Fixed AFK player quit handler to return modified event with updated player data
- Fixed Minecraft event cancellation to only occur when messageReceiveEvent is cancelled
- Fixed chatcolor player parser to support offline players
- Fixed player loading order (load after modules)
Dependencies
- Updated Lombok to v1.18.46
- Updated Lombok plugin to v9.4.0
Features
- Added ICU library integration for advanced text processing
- Added BlazeandCave integration support
- Added proxy support for Discord, Telegram and Twitch integrations
- Added IP lookup support for geolocation module
- Added coordinate distance checking for AFK detection
- Added default nickname fallback when no custom nickname is set
- Added proxy integration support for join/quit modules
Refactors
- Renamed ReloadEvent to EndReloadEvent and added StartReloadEvent
- Replaced org.incendo group id for cloud libraries
- Replaced direct disabled field access with isDisabled method
- Extracted database player retrieval method
- Enhanced proxy data validation and consumer support
- Simplified Discord gateway client configuration
- Restructured module controller with improved hierarchy management
- Updated task scheduler implementation
- Added 1.9.1 migration
Bug Fixes
- Fixed duplicate player join/quit events
- Fixed playerlist cache logic with online status check
- Fixed playerlistname player settings loading
- Fixed nickname module placeholder when disabled
- Fixed scoreboard team removal before creating new team
- Fixed quit message sending for empty receivers
- Fixed texture processing for filenames without extensions
- Fixed object receiver tag checking with version compatibility
- Fixed Bukkit datapack compatibility for older server versions
- Fixed Vault permission check null pointer exception
- Fixed library download failures with better error messaging
- Fixed resource saving when resource does not exist
- Fixed player persistence logic with API disabling check
- Fixed URL pattern to allow colon character
- Fixed chatsetting to use localized chat type names
- Fixed bubble waiting queue clearing when max count reached
- Fixed Fabric reload method renamed to onDisable
Dependencies
- Updated Adventure API to v5
- Updated PacketEvents to v2.12.1
- Updated Fabric Loader to v0.19.2
- Updated PlasmoVoice API to v2.1.9
- Updated MineSkin Java Client to v3.2.5
- Updated Maintenance API to v5
- Updated SkinsRestorer API to v15.12.0
- Updated Jackson YAML to v3.1.2
- Updated SQLite JDBC to v3.53.0.0
- Updated JDBI to v3.52.1
- Updated DeepL Java to v1.16.0
- Updated Triton API to v4
- Updated Placeholder API to v3.0.0+26.1
- Updated CMI API to v9.8.6.4
Features
- Added support for Minecraft 26.1, 26.1.1 and last Hytale version server
- Added condition format module
- Added animation format module
- Added nickname command
- Added dump subcommand for diagnostics
- Added base64 player_head support and texture tag with MineSkin integration (object)
- Added player playtime tracking system with AFK duration placeholders (#76, #261)
- Added Discord embed, poll, forward message and webhook filtering support
- Added LuckPerms alwaysHaveTrue permission option
- Added MiniPlaceholders advanced placeholder expansion system
- Added spectator list order and hide name when sneaking options (playerlistname, scoreboard)
- Added Telegram option to ignore all bots
- Added configurable length parameter (clearchat)
- Added bukkit pre login listener option (#242)
- Added -Dload.asm.jar=value and -Dflectonepulse.debug=true Java flags
Refactors
- Replaced getClientVersion with getPacketVersion (fix ViaVersion #278)
- Replaced ImmutableList with ImmutableSet
- Replaced individual setting placeholders with single 'setting' placeholder (placeholderapi)
- Replaced direct command registration, module state checks and sendMessage calls with controllers and dispatcher
- Replaced MessageType with ModuleName
- Replaced generic map implementations with FastUtil specialized maps
- Migrated to immutable FPlayer entity pattern
- Migrated translate flag to translation flag
- Removed deprecated spoiler and image permissions
- Renamed RandomUtil, IconUtil, message flags, base module names and ModuleCommandController
- Changed animation configuration structure from list to map
- Changed mute message rendering and integration channel naming convention (integration)
- Updated permission checker to use isConsole instead of isUnknown
- Updated FLogger to record with improved ANSI support (logging)
- Updated dependency injection patterns with Guice Stage.PRODUCTION
- Updated message formatting logic, flag handling and MessageFlag enum documentation
- Optimized file saving logic, color processing, spy module logic and mention replacement
- Simplified player login processing, receiver tag checking, env var substitution and AFK suffix processing
- Separated metrics creation from sending logic and platform configurations
- Moved quit message handling to platform-specific modules and target tag resolvers to pipeline
- Converted event listener classes and AbstractModuleListLocalization to interfaces
- Converted EventMetadata from abstract class to interface with record implementation
- Replaced flat objects with nested tag records (playerheadTag, spriteTag) (object)
- Replaced reflection resolver with direct library loading (object)
- Replaced GsonComponentSerializer with injected Gson instance (pipeline)
- Injected HttpClient as singleton
- Standardized logging format and integration interface
- Added composite unique constraint to fp_player table (#249)
- Added TagResolver support for moderator tag
- Replaced unused lambda parameters with underscore notation
Bug Fixes
- Fixed MiniMessage tag deserialization issue (#243)
- Fixed Discord privileged intents (#294)
- Fixed toponline player time calculation
- Fixed reply message handling and localization context in integrations
- Fixed legacy color code handling in message deserialization
- Fixed chat color name overflow (chatcolor)
- Fixed MySQL 8 support and fcolor table column type (database)
- Fixed ItemsAdder font image formatting
- Fixed Gson deserialization on proxy with concrete implementation classes
- Fixed server icon initialization and non-existent icon file handling (fabric)
- Fixed Hytale permission checking logic, PlaceholderAPI async thread issues and enabled online/toponline commands by default
- Fixed quit task scheduler execution methods (#270) and quit message sending with delayed dispatch
- Fixed condition base permission and object client version handling
- Fixed sprite tag config reference and flectonepulse message placeholder (object)
- Fixed SimpleVoice event handler with Object parameter and instanceof checks
- Fixed player disconnect event handling
- Fixed empty symbol handling in Minecraft object module
- Fixed file path resolution in editor controller
- Fixed port availability check timing in flectonepulse command
- Fixed user message flag addition to bubble rendering and message pipeline
- Fixed player UUID serialization and FPlayer instance checking in proxy module
- Fixed hasFPlayerPermission to check module enable state before permission checks
- Fixed conditional build logic for Paper, Fabric and Velocity
- Fixed forward slash usage instead of File.separator
- Fixed Gson library relocation to avoid conflicts
- Fixed getPlatformFPlayers usage instead of getOnlineFPlayers
- Fixed database player object reference in loop
- Fixed chomp to chop for proper trailing character removal
- Fixed Minecraft localization file existence check
- Fixed player list order support and scoreboard team update logic for name changes (playerlist, scoreboard)
- Fixed MOTD client version check
- Fixed database trailing commas
- Fixed receiver tag handling for newer versions
- Fixed null user handling (object)
- Fixed AFK timestamp when setting suffix
- Fixed command prompt retrieval logic (#259) (command)
- Fixed predicate logic in module controller
- Fixed IllegalPluginAccessException in Bukkit (scheduler)
- Fixed Hytale Level.parse with explicit log level mapping (#240)
- Fixed integration URL processing (#266)
- Fixed player synchronization issue and nickname placeholder (afk, nickname)
- Fixed duplicate ignore entries with unique constraint
- Fixed database method name in ColorsDAO
- Fixed Hytale message pipeline with locale translation support
- Fixed tell createFilter to exclude receiver players from spy notifications
- Fixed database SQL integrity constraint violations and LIMIT 1 in queries
- Fixed PlaceholderAPI boolean value conversion
- Fixed Fabric permission registry
- Fixed build packetevents dependency to common version
Dependencies
- Updated Fabric Loader to v0.19.0
- Updated Fabric Loom to v1.16.1
- Updated MariaDB JDBC to v3.5.8
- Updated Yandex Cloud SDK to v2.14.0
- Updated SkinsRestorer API to v15.11.1
- Updated Log4j Core to v2.25.4
- Updated Jackson YAML to v3.1.1
- Updated VoiceChat API to v2.6.13
- Updated MiniPlaceholders API to v3.2.0
- Updated PlaceholderAPI-Hytale to v1.0.8
- Updated DeepL Java to v1.15.0
- Updated Shadow plugin to v9.4.1
- Updated Gradle to v9.4.1
- Updated JDBI to v3.52.0
- Updated Gradle Actions to v6
- Updated Lettuce Core to v7.5.1.RELEASE
- Updated Discord4J to v3.3.2
- Updated Vanish to v1.6.8+26.1
- Updated PostgreSQL to v42.7.10
- Updated Velocity to v3.5.0-SNAPSHOT
- Updated TelegramBots to v9.5.0
- Updated SQLite JDBC to v3.51.3.0
- Updated MineSkin client to v3.2.2
Features
- Added vanished player visibility check in vanilla message filtering
- Added PlaceholderAPI integration for Hytale server
Refactors
- Enhanced plugin identifier parsing in Hytale server adapter
- Updated Hytale server initialization to server-only environment
- Migrated Gson component serializer binding to platform-specific modules
- Updated Russian localization for better accuracy
- Refactored Fabric initialization process
Bug Fixes
- Prevented duplicate command manager initialization in Fabric
- Improved null safety in Fabric modules
- Fixed potential null reference in scoreboard module
- Prevented sending data when no enabled proxy exists
- Formatted FlectonePulse placeholders (afk_suffix, stream_prefix, mute_suffix, world_prefix) correctly
Dependencies
- Updated Lettuce Core to v7.4.0
- Updated PlaceholderAPI to v2.12.1
- Updated Hytale UI version
Features
- Added full Hytale platform support with dedicated modules and configurations
- Added CMI integration support for enhanced compatibility
- Added geolocation enhancement with current time display (#226)
- Added configurable swear word display formatting
- Added option to hide invisible player heads in object module
- Added support for multiple display names with index selection in names module
- Added toast notification subtext support
- Added sender name configuration for integrations with custom Discord webhook support
- Added distributed cooldown system with proxy synchronization and cache management
- Added cache invalidation on reload configuration
- Added export/import operations to flectonepulse command
- Added escaped ampersand handling in legacy color conversion
Refactors
- Updated dependency injection patterns with Guice Stage.PRODUCTION
- Replaced static date format with injected dependency
- Updated MessageSender interface to use string-based console output
- Optimized message processing in MessagePipeline
- Removed core PacketEvents dependency and updated module architecture
- Separated platform configurations for better organization
- Migrated EventMetadata from abstract class to interface with record implementation
- Improved potion effect handling with extracted invisibility constant
- Replaced manual containsChild/isEnable checks with containsEnabledChild calls
- Moved LogFilter to separate package and made it injectable
- Removed objective mode enum and updated score handling
- Changed constant field from single string to list of components
- Replaced <display_name> placeholders with in target modules
Bug Fixes
- Fixed player disconnect event handling
- Fixed empty symbol handling in Minecraft object module
- Fixed file path resolution in editor controller
- Fixed port availability check timing in flectonepulse command
- Fixed user message flag addition to bubble rendering and message pipeline
- Fixed player UUID serialization in proxy module
- Fixed FPlayer instance checking in proxy module
- Fixed hasFPlayerPermission to check module enable state before permission checks
- Fixed conditional build logic for Paper, Fabric and Velocity
- Fixed forward slash usage instead of File.separator
- Fixed Gson library relocation to avoid conflicts
- Fixed client version usage instead of packet version in object module
- Fixed metrics documentation link and Russian README paths
- Fixed getPlatformFPlayers usage instead of getOnlineFPlayers
Dependencies
- Updated HyUI library dependency with version variable
- Updated PlaceholderAPI to v2.8.2+1.21.10
- Updated SkinsRestorer API to v15.10.0
- Updated Gradle to v9.3.1
- Updated Fabric Loom to v1.15.3
- Updated JDowngrader plugin to v1.3.6
- Updated Jackson YAML to v3.0.4
- Updated PacketEvents to v2.11.2
- Updated Maven Publish plugin to v0.36.0
- Updated Lombok plugin to v9.2.0
- Updated PostgreSQL to v42.7.9
- Updated Vanish to v1.6.6+1.21.11
- Updated GitHub Actions: setup-java digest
Features
- Added bot filtering configuration for Discord integration
- Added visibility and ticker configuration for bubble chat
- Added group weight check for kick command
- Added async playerlist update for SkinsRestorer integration
- Added NOT_VALID_BED packet listener for vanilla messages
Refactors
- Renamed display and format fields to displayFormat and scoreFormat in objective module
- Replaced single messageName with specific message names for all name variants support in integrations
- Replaced withFlag with addFlag methods in message pipeline
- Updated console sender detection logic
- Moved MiniMOTD module registration to core
- Optimized skin profile property retrieval order
- Removed trailing slashes from documentation URLs
- Removed tag presence checks in message processing modules
- Skipped building empty messages in message pipeline
- Implemented equals method for bubble comparison
- Improved Discord embed validation
- Updated Ender Dragon sprite icon in bossbar module
- Renamed tick parameter to delay in scheduler
Bug Fixes
- Fixed localization fallback logic
- Fixed passenger updates to prevent bubble persistence issues
- Resolved Folia compatibility issue for quit messages
- Fixed message flag configuration in bubble module
- Fixed chat color configuration with null color values handling
- Fixed Discord and Telegram timer scheduling and async operations
- Fixed Discord message content handling with attachments
- Fixed swear module permission check placement in message processing
- Fixed chat color saving to store only non-empty fcolors
- Fixed playerlist module to check its own enable status
- Fixed bubble removal logic with text screen integration
- Fixed SkinsRestorer integration by removing specific DataRequestException for legacy API
- Fixed replacement regex patterns for image and URL matching
- Relocated io.lettuce dependencies to avoid conflicts
- Ensured all context creation methods properly inherit message context flags
- Skipped unknown players in tab list processing
- Fixed permission documentation link
- Removed unused message placeholders in integrations
- Fixed message flag default value in integrations
Dependencies
- Updated TelegramBots to v9.2.1
- Updated SkinsRestorer API to v15.9.2
- Updated Fabric Yarn to v1.21.11+build.4
- Updated Shadow plugin to v9.3.1
- Updated JDowngrader plugin to v1.3.5
Features
- Added scoreformat support in tabname module
- Added sync option to runRegion method in scheduler (replacing async and sync annotations)
- Added Javadocs for API
Refactors
- Converted CommandRegistry from abstract class to interface
- Moved brigadier setup to abstract registry
- Replaced lombok and jetbrains annotations with jspecify
- Replaced Random with ThreadLocalRandom in RandomUtil
- Updated platform adapter interfaces and implementations
- Updated player adapter interface and implementations
- Moved command removal logic to main mod class (Fabric)
- Removed deprecated chatType and chatName fields from ChatMetadata
Bug Fixes
- Fixed brigadier setup in Fabric
- Fixed player localization in tabname module
- Fixed player invalidation on login rejection
- Fixed proxy chat sound (#202)
- Fixed exception handling in PlaceholderAPI processing
Features
- Added paginated symbol command with category navigation
- Added sprite command to view all available sprites
- Added customizable default symbol and "or" tags in object module
Refactors
- Updated Minecraft translation path configuration
- Modified exception logging to capture stack traces properly
Bug Fixes
- Fixed sound effects for integration messages
Features
- Added see_through configuration for text screen and modern bubbles
- Added Floodgate integration for Bedrock player support
- Added database indexes for performance improvement
Refactors
- Migrated message pipeline to use MessageContext
- Converted classes to immutable records: MessageContext, Ticker, Range, Moderation, FImage, Destination, BossBar, MetricsDTO, Cooldown, Sound
- Migrated configurations to immutable state
- Optimized HikariCP configuration and driver setup
- Optimized translation service
- Restructured permission registration
- Replaced mutable collections with immutable builders in module system
- Replaced default destination constants with empty variants
- Replaced list with set for entity storage in vanilla module
- Updated event handling system to use immutability
- Removed metrics sending on shutdown
Bug Fixes
- Fixed MySQL driver with updated class name
- Fixed switch statements for MYSQL and MARIADB
- Fixed mention sound by updating default category from NEUTRAL to BLOCK
- Fixed missing spear death for integrations
Dependencies
- Updated PacketEvents to v2.11.1
- Updated Fabric Loom to v1.14.10
- Updated BuildConfig plugin to v6.0.7
- Updated Vanish to v1.6.5+1.21.11
- Updated Fabric Loader to v0.18.4
- Updated MariaDB Java Client to v3.5.7
- Updated PlasmoVoice API to v2.1.8
- Updated Adventure API to v4.26.1
- Updated Lettuce Core to v7.2.1
Features
- Added support for Minecraft 1.21.11
- Added bossbar message module for enhanced notifications
- Added text screen rendering system for dynamic displays
- Added server lifecycle events for integrations and better process control
- Added emit command for event management with improved suggestions
- Added permanent listener registration mechanism (#148)
- Added time limits for moderation commands
- Added custom command execution for Twitch, Discord and Telegram integrations
- Added reply support and formatting for Discord, Telegram and Twitch messages
- Added mute suffix with placeholder integration
- Added Markdown and HTML support for Telegram messages (#166)
- Added player list command and spear death messages to localization
- Added config flag to control automatic database driver downloading
- Added multiple Discord channels support
- Added Paper-specific item messaging with PacketEvents (#173)
- Added extra space configuration in object module
- Added advanced argument parsing for vanilla messages
Refactors
- Simplified permission checking logic and extracted operator check
- Replaced regex parsing with tag processor in fcolor module
- Optimized replacement tag processing
- Refactored vanilla tag resolver logic
- Optimized player list version check logic
- Improved destination initialization and parsing logic
- Replaced random entity id generation with platform-specific implementation in bubble module
- Refactored Sound class to use SoundCategory enum and Sound packet
Bug Fixes
- Fixed console message delivery
- Fixed single active ban handling
- Fixed UUID version check for offline client detection (playerlistname)
- Fixed symbol command to use input tag resolver
- Fixed target player in saveSetting method (chatsetting)
- Fixed PacketEvents termination handling on startup failures
- Fixed bubble chat elevation rendering logic
- Fixed Spigot command (un)registration
- Fixed mention and replacement checks for unknown senders
- Fixed player online status checks for mentions
- Fixed bubble module viewers for base bubble builder
- Fixed reload to affect only console and online players
- Fixed Twitch integration with Jackson library relocation
- Fixed empty message sending in integrations
- Removed deprecated placeholder tags
Dependencies
- Updated PacketEvents to v2.11.0
- Updated Fabric Loom to v1.14.6
- Updated Jackson YAML to v3.0.3
- Updated BuildConfig plugin to v6.0.6
- Updated Gradle to v9.2.1
- Updated SkinsRestorer API to v15.9.1
- Updated DeepL Java to v1.14.0
- Updated Cloud Framework (Paper, Fabric, Minecraft Extras) to beta.15
- Updated PlasmoVoice API to v2.1.7
- Updated Fabric Loader to v0.18.2
- Updated Fabric Yarn to v1.21.11+build.3
- Updated JDBI3 Core to v3.51.0
- Updated Lettuce Core to v7.2.0
- Updated Commons Text to v1.15.0
- Updated Shadow plugin to v9.3.0
- Updated Vanish to v1.6.2+1.21.10
- Updated SQLite JDBC to v3.51.1.0
- Updated Maven Publish plugin to v0.35.0
- Updated JDowngrader plugin to v1.3.4
- Updated GitHub Actions: checkout to v6, upload-artifact to v6, setup-java
Features
- Added LibertyBans integration for advanced punishment handling
- Added mention-all tag support for mass notifications
- Added support for multiple usernames in Discord and Telegram integrations
- Added option to suggest invisible players in command suggestions
Refactors
- Improved localization loading and translation initialization
- Enhanced mention handling logic and caching
Bug Fixes
- Fixed player online status checks for mentions
- Fixed URL formatting with better exception handling
- Fixed object component validation for player head arguments
- Excluded user messages from disabled tag replacement
- Relocated Netty and FasterXML dependencies for Discord
Dependencies
- Updated PacketEvents dependency to v2.10.1
- Updated Fabric Loom to v1.13.3
- Updated PlaceholderAPI to v2.11.7
- Updated BuildConfig plugin to v5.7.1
- Updated Gradle to v9.2.0
Features
- Added Geyser integration for Bedrock player support
- Added configurable database table prefix
- Added Telegram channel info support
- Added option to hide name when player is invisible (right-click)
Refactors
- Refactored chat message sending to use async methods
- Simplified Bedrock gradient tag support
- Optimized profile property caching logic
- Changed Fabric async executor from cached to fixed thread pool
Bug Fixes
- Fixed object component building for Bedrock players
- Fixed RockPaperScissors localization tags in Russian locale
- Fixed mute cache cleanup reversion
- Fixed stream prefix management logic
Dependencies
- Updated Placeholder API to v2.8.1+1.21.10
- Updated Jackson YAML to v3.0.1
- Updated Discord4J to v3.3.0
- Updated Lettuce Core to v7
- Updated Upload Artifact action to v5
Features
- Added support for Minecraft 1.21.9 and 1.21.10
- Added 30+ new message types with unified vanilla module
- Added object module for player head and sprite support
- Added proxy mode support for online player count and player list names
- Added Minecraft translation service and global translations
- Added backup functionality for config and database files
- Added MariaDB database support
- Added Discord embed fields support
- Added console message handling for all destinations
- Added centralized cache management
Refactors
- Updated to Java 17
- Changed default database from SQLite to H2
- Migrated from Elytrium Serializer to Jackson YAML
- Refactored player settings management
- Replaced module predicates with event-based listeners
- Optimized chat message handling
- Improved entity name handling and localization
Bug Fixes
- Fixed double ampersand escaping in URLs (#77)
- Fixed colors in toponline footer
- Fixed TPS retrieval for modern Bukkit
- Fixed swear word detection logic
- Fixed player UUID validation
- Fixed bubble chat for older versions
- Fixed action bar colors for legacy versions
- Fixed null values during deserialization
Features
- Added modern GUI for poll creation
- Added nullHelper option to helper
Refactors
- Refactored IntegrationSender to handle message replacing
Bug Fixes
- Fixed null issue by using MessageType.name() instead of MessageType directly in integration
- Added delay to async process join event for Fabric
Features
- Implemented dynamic message naming based on chat type and source
- Added EventMetadata and updated API
- Added configurable skin API URLs
- Added MiniPlaceholders integration for Fabric
- Added support for Clearchat command for proxy
Refactors
- Changed default chat mode to BUKKIT
- Improved async task handling for restricted threads
- Added async annotation to sendMessage and IntegrationSender methods
- Renamed SenderToReceiverMessageEvent to MessageSendEvent
- Implemented PreMessageSendEvent
- Rebuilt message sending logic
- Simplified item handling in death messages
- Moved logger reload operation to before database connection
- Registered EnumSerializer for Newbie.Mode
- Updated log filter to include Hikari messages
Bug Fixes
- Removed unnecessary check in player name for clearchat
- Increased NBT max size limit in packetevents
- Updated regex patterns to support HTTP and HTTPS in replacement
- Added module disabled check for HeaderModule and FooterModule
- Updated spoiler formatting logic to use '.' instead of '\' for raw text representation
- Validated info channel IDs before processing in Discord
- Fixed skin image insertion in chat
- Improved game field colors in TicTacToe
- Corrected poll message formatting
- Removed redundant symbol in ping
- Correctly checked if module is enabled and added range in helper
- Added user agent for image URL connection
- Improved player data handling and IP management
- Replaced outdated GitHub link with current SkinsRestorer documentation URL
Features
- Added BungeeCord and Velocity support for Fabric
Refactors
- Improved AFK status handling for players who quit
- Enhanced SuperVanish integration for offline players
- Added shutdown() method to TaskScheduler and improved FabricTaskScheduler
Bug Fixes
- Fixed invalid key in advancement messages
- Removed break statement in mention handling
- Updated permission name for versions < 1.4.3
- Improved SuperVanish integration check
- Updated FPlayer in database with delay
- Added MySQL connector dependency
Features
- Added sender color flag to control color in messages (API)
Refactors
- Moved legacy color convertor to FormatModule and renamed permission
- Moved message formatting logic from listeners to modules
- Improved game logic in tictactoe
- Optimized log record creation and handling
- Renamed isInitialized to isReady
- Created common Extractor class and added support for extra target format
- Reverted try-catch for numeric validation
Bug Fixes
- Removed redundant receiver permission check in PlaceholderAPI
- Added version check and disabled bubble module for Minecraft versions below 1.9
- Replaced StringUtils.isEmpty() with manual check, fixing #20
Features
- Added support for specific fcolor types (fcolor_out, fcolor_see) for PlaceholderAPI
Refactors
- Created addDefaultPredicates() method to centralize predicate logic
- Replaced reloadWithChildren with reload
- Replaced repetitive code with new getFColors method
- Separated load() and enable() methods for better separation of concerns
Bug Fixes
- Fixed predicates loading
Features
- Created and uploaded API to Maven Central
- Added minecraft dialogs for /chatsetting
- Added support for Paper chat event (#17)
- Added support for legacy and named colors in chatcolor, with flexible input for admins
- Implemented Maintenance integration support (#16)
Refactors
- Registered EnumSerializer for Range.Type
- Added onLoad method and modified module loading logic
- Implemented get() method for dependency injection
- Implemented message caching to improve performance
- Changed default chat mode to PACKET and optimized chat handling
- Moved replacement logic to ReplacementModule and removed duplicated modules
- Optimized distance calculation between players in PlayerAdapter
- Optimized player-related operations and vanish checks
- Optimized scoreboard packets and added reload functionality
- Optimized async and sync method execution
- Optimized Bukkit chat listener performance
- Updated permissions for /chatcolor and fcolor modules
- Replaced String ".replace" with Strings and StringUtils
- Replaced manual string checks with StringUtils
- Replaced try-catch with StringUtils.isNumeric()
Bug Fixes
- Fixed UpdateModule permission
- Inverted condition in hasClassOrElse method
- Corrected URL operator formatting and ampersand escaping
- Ensured valid color for scoreboard team
- Corrected color code conversion in LegacyMiniConvertorPulseListener
- Handled null values in style settings for SQL
Features
- New fcolors for improved visual customization
- Improved /chatsetting command and new functionality for setting/removing player settings
- Added replacement module and removed emoji module for more efficient text processing
- Added ANSI serializer for Adventure to enhance logging output
- Added new localization prompt for value to improve user interaction
- Optimized replacement processing with regex for faster performance
Refactors
- Reintroduced InteractiveChat integration with conflict check for Delete module
- Introduced MessageReceiveEvent for all messages, replacing TranslatableMessageReceiveEvent
- Set default message channel IDs for Telegram and Twitch integrations
- Updated default messages for /chatsetting and /chatcolor commands
- Implemented fcolor see/out support and refactored chat color system
- Changed chatcolor permission type to TRUE
- Migrated player styles to new fcolor system and removed style modules
Bug Fixes
- Corrected permission check for mentioned players
- Removed closed tag to prevent formatting errors
- Fixed delete module and InteractiveChat integration compatibility
- Replaced getArgument with getPrompt in chatcolor for consistency
- Improved VoiceChat integration compatibility
- Updated 'PacketEvents' to 'packetevents' in plugin.yml for consistency
Features
- Updated PacketSender to support silent packet sending for more discreet message handling
Refactors
- Moved PacketEvents.getAPI().load() to after injector creation to improve initialization
- Removed InteractiveChat integration (very bad API)
- Removed unused PacketProvider class to clean up codebase
- Improved item stack serialization for Paper servers
- Implemented onRequest method in PlaceholderAPIIntegration to support OfflinePlayer
Bug Fixes
- Improved item name translation and hover
- Fixed PlaceholderAPI to save formatted messages for offline players
- Replaced getDeclaredMethods() with getMethods() for broader method access
Features
- Added DeleteModule to handle message deletion
- Added UpdateModule to check for new versions
- Added SenderToReceiverMessageEvent (API)
- Added new SenderToReceiverMessageEvent constructors
- Added SimpleVoice and PlasmoVoice support for Fabric
Refactors
- Switched to event-driven architecture
- Moved URL formatting logic to a separate class
- Added ReflectionResolver for class and method resolution
- Removed unused fields and optimized imports
- Split sleep, setblock, seed, op, deop, gamemode, clear, spawn, kill, enchant, and advancement logic into separate classes
- Renamed checkModulePredicates to isModuleDisabledFor
- Renamed disable() method to terminate()
- Replaced PacketEvents API calls with PacketProvider
- Removed unused FabricProxySender, PlatformPlayerAdapter
- Renamed ChatListener to ChatPacketListener and ChatBukkitListener for Bukkit
- Replaced MessagePulseListener with EventDispatcher and MessageSender
- Added prompt system for commands and updated command registration
- Used FPlayer for receiver in message processing
- Renamed translatable message receive event type
- Added MessageFlag enum and updated message processing
- Optimized tag resolver in MessageContext
- Moved AdventureTag to constant package
- Added common onEnable, onDisable, and reload methods
- Added replacement tags for message formatting
- Added generic enum serializer and moved enums
- Added unique message UUID to pipeline
- Updated MessageContext to use userMessage instead of messageToTranslate
- Removed cancelPacket() from TranslatableMessageReceiveEvent
- Renamed onMessageProcessingEvent to onMessageFormattingEvent
- Improved BLOCKS range retrieval exception message
- Replaced custom Pair with org.incendo.cloud.type.tuple.Pair
- Replaced emoji with checkbox in delete message format
Bug Fixes
- Fixed permission check logic without LuckPerms
- Changed Q&A messages to [Answer] format
- Fixed prompt index checking logic
- Fixed old player name update in database
- Added enable flag to voice integrations
- Replaced non-threadsafe collections with concurrent ones
- Relocated cloud libraries
Features
- Added ignore list for swear words in core
- Implemented ticker functionality for world module
Refactors
- Updated total RAM calculation in metrics
Bug Fixes
- Improved URL and image handling and formatting
- Improved trigger tag handling in FormatModule
- Added region-specific sync task execution, fixing #10
- Enhanced Telegram integration initialization
Features
- Added FULL support for Minecraft 1.8.8 - 1.21.8 versions
- Added support for Fabric 1.21.8
- Introduced H2 and PostgreSQL database support
- Implemented Text Placeholder API for Fabric
- Implemented Vanish API for Fabric
- Implemented SkinsRestorer API for Fabric
- Implemented LuckPerms API for Fabric
- Added packet-based chat listener
- Enhanced editor with cursor position saving/restoring when switching files
Refactors
- Optimized code by removing unused imports, classes, methods, and version checking
- Updated TimeFormatter to use Apache Commons Lang 3
- Removed database type-specific methods
- Replaced Javalin with Spark Java for web handling
- Improved exception handling and logging in handler
- Reduced join message delay to 5 seconds
- Consolidated packet sending logic in scoreboard
- Replaced direct player.getPing() call with packetProvider.getPing(player)
- Updated method to handle status response packet
- Replaced Component tree dump with JSON serialization
- Added support for legacy versions in scoreboard and inventory
Bug Fixes
- Prevented duplicate sidebar creation
- Improved URL handling in stream
- Removed unknown player check in insertOrIgnore method for Console inserting
- Improved handling for advancements
- Removed delay for join messages in older versions
Bug Fixes
- Fixed login event compatibility for Minecraft 1.20.1 and older versions
Features
- Added support for 1.21.8 minecraft
- Web-based configuration editor for simplified plugin management
- Redis support for efficient proxy communication
- Enhanced messaging with <translateto> support, online player notifications in mail, and custom belowname messages
- Player visibility improvements with invisibility potion effect in name formatting and /anon command for spy
- Delayed update() in playerlistname for smoother operation
Refactors
- Optimized MessageProcessRegistry, plugin lifecycle, and module reloading for better performance
- Cleaned up code by removing unused methods, deprecated code, and redundant error handling
- Improved modularity with LinkedHashSet for order preservation, Registry interface, and refactored module constructors to use enable()/disable()
- Enhanced scoreboard, sidebar, and objective modules with PacketEvents integration
- Reworked ProxySender to support multiple proxy types and removed unnecessary proxy send logic
Bug Fixes
- Fixed IPv6 support and IP handling
- Improved vanished player filtering and visibility for CMI permission holders
- Optimized version comparison logic and database operations
- Resolved join message execution and history clearing issues after file loading
Features
- Added support for 1.21.6 and 1.21.7 minecraft
- Added /anon command
- Added /toponline command module
- Introduced new chat style module /chatstyle
- Implemented kill message module
- Added support for all FPlayer settings in PlaceholderAPI
- Implemented native toast notifications using PacketEvents
- Added ticker functionality for scoreboards
Refactors
- Optimized player data loading and login process
- Improved join message handling
- Enhanced moderation cache system
- Optimized database operations with JDBI
- Improved chat color processing and message formatting
- Simplified ItemStack building process in Bukkit
- Optimized bubble message sending
- Implemented menu-based settings
- Deleted migration for 0.1.0 and 0.6.0 versions
Bug Fixes
- Fixed handling of color/gradient tags
- Improved offline player checks for null names
- Corrected typos in moderator messages
- Fixed advancement description handling
- Fixed synchronous command reload for Spigot servers
- Improved PlaceholderAPI integration for offline players
Refactors
- Rename height to elevation for bubble
Bug Fixes
- Fixed upgrade from 0.8.2 version
Features
- Added billboard option for bubble messages
- Implemented animations for modern bubbles
- Improved bubble height rendering for better visual positioning
- Enhanced bubble message breaking logic
Refactors
- Implemented Builder pattern for Bubble classes
- Optimized integration sending performance
- Improved version comparison in FileManager
- Replaced GSON component serializer imports
Bug Fixes
- Fixed null message channel handling in Telegram integration
- Simplified messenger detection in BukkitIntegration
- Resolved scheduler enable/disable errors
Features
- Added mode selection for Newbie message triggers
Refactors
- Implemented @async/@sync annotations for method scheduling
- Removed legacy Async annotations
- Improved exception interceptor logging
- Enhanced metrics collection on server shutdown
Bug Fixes
- Fixed playtime calculation in online modules
- Corrected online status checks for /tell command range
Bug Fixes
- Fixed handling of cancelled MicrophonePacketEvent in SimpleVoice
- Fixed resolveLibrary method implementation
Features
- Added AdvancedBan and LiteBans integration for moderation system
- Implemented new ScoreboardModule with real scoreboard system
- Added Newbie module for new players
- MiniPlaceholders support for advanced formatting
- ItemsAdder integration for custom items
- Added Paper item serialization support
- Added range limitation for private messages (/tell)
Refactors
- Complete Bubble system rewrite with modern entities
- Optimized LuckPerms integration for better performance
- Replaced bStats with custom metrics solution
- Refactored moderation system with caching
- Improved message processing via MessagePipeline
- Moved prefixes/suffixes to ScoreboardModule
Bug Fixes
- Fixed player online status checks on specific servers
- Fixed HEX color handling in MiniPlaceholders
- Fixed Afk module functionality
- Optimized permission checks
- Fixed proxy quit message handling
Features
- Added TAB integration
Refactors
- Refactored mutes collection
- Set tabSort to true by default
- Reloaded all child modules even if the parent module is disabled
- Initialized child modules in the constructor
- Disabled team by default in the Name module
- Replaced double quotes with single quotes
Bug Fixes
- Fixed null recipient messages in BukkitChatModule
- Disabled join/quit messages on Bukkit/Spigot servers
- Fixed TAB integration and added settings for TAB-dependent modules
- Injected IntegrationModule at runtime
- Replaced grammatical typo in ru_ru localization
- Fixed null user checks in PlayerlistnameModule
Features
- Added SleepModule for sleep messages
- Added BedModule for bed messages
- Added WORLD_NAME (-3) and WORLD_TYPE (-4) range
- Added filter for Paper 1.16.5 warnings to clean up logs
Refactors
- Merged SET_SPAWN, CHANGE_GAME_STATE, and SPAWNPOINT messages
- Created MinecraftTranslationKeys for better localization management
- Optimized chat filter in BukkitChatModule
- Optimized metadata retrieval in LuckPermsIntegration
- Checked recipients asynchronously in BukkitChatModule
- Updated FLogger to use a log consumer for better logging
Bug Fixes
- Replaced legacy paragraph symbols with ampersands
Refactors
- Simplified logging warnings for cleaner logs
- Used Bukkit player's IP address
- Saved player IP to the database
- Renamed basic methods for creating and saving a player
Bug Fixes
- Fixed text length check in the FloodModule to prevent errors
- Corrected vanish boolean check
- Added exception handling in the BanModule to catch IllegalArgumentException
- Fixed player IP check to improve accuracy
Features
- Added support for all plugins vanish to improve compatibility
- Added spying for a specific chat type for enhanced moderation
Bug Fixes
- Changed mention destination to ACTION_BAR
- Optimized swear regex for better performance
- Optimized TOAST creation for better performance
- Fixed color standalone checking
- Fixed not closing the first tag
- Fixed message formatting by sender
Refactors
- Added permission removing logic for better permission management
- Improved database update for offline players
- Removed async annotation for insertOrIgnore
- Optimized fPlayer getting
Bug Fixes
- Added chat permission checking to ensure proper access control
- Fixed fPlayer settings loading to correctly load player settings
- Added ignore check to handle ignored players appropriately
- Improved fPlayer saving when removing players to prevent data loss
Features
- Added a flood module
Refactors
- Removed swear sound
- Separated the setting table and optimized DAO classes for better performance
- Removed the contact submodule
- Disabled anvil, book, and sign modules by default
- Deleted the spit, knock, sign, and unsign modules
- Changed the italic trigger logic for better usability
- Switched to using a fork of MiniTranslator
Bug Fixes
- Changed the URL to the maintenance documentation
- Added "§" replacement to handle special characters correctly
- Trimmed dice messages
Features
- Added FixationModule (end dot and first letter uppercase)
Bug Fixes
- Fixed PLAY_ONE_MINUTE calculation by multiplying it by 60
- Updated chat event message for other plugins
- Fixed next message in the rockpaperscissors module
- Corrected player value checks in the tictactoe module
- Removed visual spawn display in the bubble module
Features
- Added support for stay ticks in action bar messages to control display duration
Refactors
- Major codebase reorganization: Renamed multiple classes, packages, and interfaces (e.g., ILocalization → Localization, moved interceptors to dedicated packages)
- Removed deprecated/unused code: DebugInterceptor, ModuleManager, DatabaseThread, and ticker classes
- Optimized SQLite integration using HikariCP for better performance
- Split database logic into DAO (Data Access Object) layers for modularity
- Updated user login and maintenance-checking logic for reliability
- Integrated the latest version of MiniTranslator
Bug Fixes
- Fixed action bar message compatibility for Minecraft 1.18 and older versions
- Improved emoji escaping to prevent formatting issues
- Added null checks for channels in BukkitProxyConnector to avoid unexpected errors
- Removed duplicate Sync matcher to prevent conflicts
- Added null player checks in the spit module for safer execution
- Fixed player data (fPlayer) not updating when inventory settings were closed
- Corrected maintenance mode logic to properly kick players when enabled
- Ignored null connections to prevent crashes during network handling
Bug Fixes
- Updated regex to allow uppercase in HEX colors (e.g. #AAAAAA)
- Fixed disabling format tags
- Fixed calculating next message for lists modules
Features
- Added lists to auto module
Bug Fixes
- Removed legacy color map
- Fixed legacy color support for &#amp;#
- Fixed deop module
Features
- Added full support legacy colors (gradients too)
- Added translateto tag for messages
- Added YandexSDK integration for /translateto
- Added Deepl integration for /translateto
- Added Triton integration
- Refactored /poll and added repeat time
- Refactored /mark and added modern version mark
Features
- Added InteractiveChat support
- Added Q&A module
- Added ping module
- Added modern bubble system
- Updated symbols
- Updated README and Added README-RU
Bug Fixes
- Fixed knock module
- Fixed folia support
- Fixed double mention
Features
- Added TOAST destination
- Added bubble distance setting
- Added subtext for TITLE and SUBTITLE
- Added /flectonepulse reload text, for text reloading
- Added /id command for telegram bot
- Added support for environment variables
- Added clusters for proxy
Refactors
- Refactored ban, mute, warn, kick, unban, unmute, unwarn and lists
- Refactored mention
- Removed InteractiveChat integration
Bug Fixes
- Fixed Velocity and BungeeCord startup
- Fixed chat on proxy
- Fixed null PAPI on disable
- Fixed double message check
Features
- Added setting range for unban, unwarn, unmute
Refactors
- Changed sound
- Removed legacy printStackTrace
Bug Fixes
- Fixed distance to show
- Fixed prefix and suffix for offline player
- Fixed name formatting
Features
- Added full support for 1.16.5-1.19.4, currently is 1.16.5-1.21.4
- Added ScoreBoard settings (SideBar)
- Added Destination
- Added pride, shadow_color tags
- Added version check
- Added legacy chat message support
Refactors
- Changed Sound, Cooldown, Ticker configuration
- Changed tab header and tab footer format
- Changed brand serialize
Bug Fixes
- Fixed tictactoe
- Fixed name formatting
- Fixed status icon
- Fixed documentation urls
- Fixed replacing placeholders
- Fixed null world prefix
- Fixed async integration messages
- Fixed supervanish integration
Features
- Added ability to disable messages to and from Discord/Twitch/Telegram in /chatsetting
Refactors
- Partial refactoring of the entire project
- Decoupled from BukkitAPI, the project can now run on any platform
- New project structure: icons folder renamed to images
- messages folder renamed to localizations
- config.yml is now only for project settings
- Three main modules extracted into separate files: command.yml, integration.yml, and message.yml
- Improved appearance of settings in files
- Reworked /tictactoe command
Bug Fixes
- Fixed integration with legacy PlasmoVoice version
- Fixed integration with SuperVanish
Features
- Added Minecraft 1.21.4 support
- Added new status section, including server description, icon, players, and version
- Added server name change for /maintenance
- Added quit, join, and afk message support for proxy
- Added Text Display support for bubble messages (1.19.4 and above)
Refactors
- Reworked time formatting
- Reworked bubble message system and changed duration formula
- Reworked GUI system using PacketEvents
- Removed GUIs for /ignorelist, /warnlist, /banlist, /mutelist
- Removed motd, icon, player-count modules
- /unban command now only suggests banned players
Bug Fixes
- Fixed formatting of links with images
- Fixed sending of quit messages when the quit module is disabled
Features
- Completely reworked configuration system with splitting into different subfiles
- Added ability to edit advancement display range
- Added ability to edit death display range
- Added player ignore support in SimpleVoice and PlasmoVoice via /ignore
- Added configuration link for each module in every file
- Added final_clear_message placeholder for integrations
Refactors
- Completely reworked documentation to reflect new changes
- Removed separate url tag
- Removed separate hover for emoji
Bug Fixes
- Fixed thread handling
- Fixed database operation when switching from offline to online mode
Features
- Added Minecraft 1.21.2 and 1.21.3 support
- Added Telegram integration
- Added ability to subscribe to Twitch stream start
- Added ability to customize /gamemode messages
- Added ability to customize /advancement messages
- Added ability to customize /clear messages
- Added ability to customize /op messages
- Added ability to customize /deop messages
- Added ability to customize /enchant messages
- Added ability to customize /seed messages
- Added ability to customize /setblock messages
- Added ability to customize /spawnpoint messages
- Added information output on Velocity and BungeeCord
- Merged /firstonline and /lastonline into /online with new last, first, and total modes
Refactors
- Merged bukkit and paper plugin builds into a single bukkit build
- Advancement and death messages migrated to PacketEvents
Bug Fixes
- Fixed table creation on legacy MySQL servers
Features
- Added status setting for Discord bot
- Added info channel settings in Discord
- Added support for custom ban, mute, and warn reasons
- Added Anti-Caps system
- Added check that SkinsRestorer is not initialized
Refactors
- Documentation translated to English
- Removed permission from world tag
- Removed prefix, suffix, display, tab tags from player
Bug Fixes
- Fixed message for right-clicking on unknown players
- Fixed inaccuracies in Russian documentation
Features
- Implemented full plugin documentation in Russian
- Added bukkit support, base file renamed to flectonepulse-bukkit.jar
- Added new tags for PlaceholderAPI %flectonepulse_fcolor_number%
- Added validation for correct time in warn and mute commands
- Added webhook support in Discord integration
Refactors
- Reworked message sending and formatting system
- Below-name disabled by default
- Changed advancement settings structure
- Moved disable to chatsetting
- Moved right-click to interaction
- Moved player-list-name format to messages
- Renamed permission flectonepulse.module.server.icon
- Removed range from commands that didn't need it
- Removed dimension-based chat setting
- Removed listener from objective
- Removed listener from brand
Bug Fixes
- Fixed operation on spigot
- Fixed mention functionality
- Fixed /tell notes functionality
- Fixed message sending from mail
- Fixed incorrect sender for mail
- Fixed %item% behavior with empty item
- Fixed duplicate reason on moderation
- Fixed color conversion after placeholders
- Fixed player online status update in database
- Fixed color clearing for other players
- Fixed Russian localization messages
- Fixed null in chatcolor
Features
- Created separate secrets.yml file for storing sensitive data
- Added Discord and Twitch integration
- Added /rockpaperscissors command (rock-paper-scissors mini-game) with custom value support
- Added vault_prefix and vault_suffix placeholder replacement
- Added console name setting
- Added ability to disable messages from /afk, /poll, /spit, and greeting in /chatsetting
Refactors
- Reworked message sending system
Bug Fixes
- Fixed bug with player ban check
- Fixed bugs when sending messages
Features
- Entire plugin switched to asynchronous mode
- Added Folia core support
- Added player message duplication to console
- Added message localization support based on player language with use-player-locale option
- Added ability to create custom localizations and specify them in config.yml
- Added plugin sound functionality
- Added integration with PlaceholderAPI, LuckPerms, Vault, SimpleVoice, PlasmoVoice, SuperVanish, PremiumVanish, SkinsRestorer, InteractiveChat
- Implemented radius system (range = -2 for proxy and servers, range = -1 for server, range = 0 for sender, range > 0 for radius)
- Added /maintenance command for technical work
- Added /tictactoe command (tic-tac-toe) with hard mode
- Added /mail and /clearmail commands for offline letters
- Added /symbol command to search for available unicode characters
- Added built-in %tps% and %online% tags
- Added death message display with text upon player death
Refactors
- /tempban command removed and merged with /ban
- Rewritten bubble message system, added display speed configuration parameter
- Config messages organized
Bug Fixes
- Fixed display of advancements without translation
Features
- Added BungeeCord and Velocity support
- Added Console command support
- Added tab name color dependency on /chatcolor
- Added instant bubble message display when possible
Refactors
- Removed EntityLib support, Mark and Chat Bubble methods written from scratch
- Reworked databases (MySQL, SQLite) for independent operation
Bug Fixes
- Fixed threading issues
- Fixed many known bugs
Features
- Initial release of FlectonePulse plugin
- MiniMessage (Adventure API) and legacy Minecraft color support
- MySQL and SQLite support
- Fully asynchronous plugin operation
- Elytrium Serializer used for configuration
- PacketEvents used for creating artificial entities at packet level
- CommandAPI used for creating vanilla plugin commands
- Support for all versions from 1.16.5 to 1.21.1