- Discord Account Linking
- New in-game command:
/discordlinkwith aliaseslinkdiscordanddlink - Username-based linking flow with DM confirmation via ✅ reaction
- New
UserLinkandPendingLinkdatabase models for persisted account links
- New in-game command:
- Permission-Aware
/execute- Discord admins can still execute commands as server console
- Linked Discord users can execute commands using their linked Hytale account permissions
- Added safety responses for missing/invalid links and offline linked players
- Join/Leave Embeds
- Player join/leave notifications now send as Discord embeds
- Uses linked Discord avatar thumbnail when a linked account exists
- Plugin Versioning - Bumped plugin and build version to
0.4.0 - Status Command Localization - Removed remaining hardcoded status command output strings
- Localization Coverage - Added missing command and response translation keys project-wide
- Fixed missing translation entries for link command and link workflow responses.
- Fixed player join event handling to consistently resolve the correct player UUID for join/leave tracking.
- Intelligent ANSI Translation - Server logs in Discord now support 256-color and RGB sequences by automatically mapping them to the nearest Discord-compatible color.
- Log Batching - Internal logs are now buffered and sent in batches, preventing Discord rate limits during high-activity periods.
- Performance Optimizations - Rewrote player tracking and message routing logic for significantly better server performance.
- Enhanced Chat Relay - Improved chat formatting with more robust fallbacks and more reliable message sanitization.
- Fixed an issue where complex ANSI codes would incorrectly render as background colors in Discord.
- Fixed a bug where players could occasionally trigger duplicate join messages.
/executecommand - Discord admins can now run server console commands from Discord- SLF4J logging provider for JDA integration with Hytale's native logger
HYTALE_DISCORD_TOKENenvironment variable support for bot token configuration
- Bot initialization is now async with better error handling
/discordbridge reloadnow uses async restart flow- Discord commands are pre-registered and defer replies to prevent timeouts
- Build config improved to resolve SLF4J conflicts and relocate dependencies
- SLF4J module conflicts
- Bot token validation (rejects placeholder values)
- Link Stripping - Adds a new configuration option:
stripLinksInChat. This is set to true by default. When enabled, attempted links in chat messages will be stripped from the message before being sent to Discord. - Ping Stripping - Adds a new configuration option:
stripPingsInChat. This is set to true by default. When enabled, attempted Discord mentions in chat messages will be stripped from the message before being sent to Discord.
- Player Death Event Support - Track and report player death events in Discord
- Project Dependencies - Updated dependencies to improve overall stability and performance
- Improved player join/leave tracking - Players who go to different worlds within the universe will no longer be considered as leaving and joining the server again.
- Discord Slash Commands
/players- View currently online players/status- Get detailed server status, including TPS, memory usage, and online players
- Command Localization - Translated command descriptions using Hytale's Message translation system
- Command System - Implemented dynamic Discord slash command registration
- Status Command - Added detailed server vitals reporting with color-coded TPS indication
- DiscordBotService - New service for enhanced Discord bot management and status updates
- Automatic Activity Updates - Bot activity now updates every 10 minutes with current player count when enabled
- Channel Description Updates - Automatically update designated Discord channel descriptions with server status (e.g., player count)
- desc_status Output Type - New channel output type for routing channel description updates
- Enhanced Internal Logging Implementation - Improved internal logging system for better debugging and monitoring
- Bot Status Management - Improved handling of bot online/offline states and periodic updates
- Multi-Channel Output System - Route different message types to different Discord channels
- 5 Channel Output Types:
all- All messages (chat, join/leave, server state)chat- Player chat messagesjoin_leave- Player join/disconnect notificationsserver_state- Server startup/shutdown notificationsinternal_log- Plugin logs and debug messages
- Flexible Configuration - Configure multiple channels with different output filters
- ChannelOutputTypes enum - Strongly-typed output type system with GSON serialization
- Message routing methods -
GetOfType()andSendMessageToType()for efficient delivery
- Configuration structure: Single channel → multi-channel array
// Old "mainChatChannelId": "123456789" // New "channels": [{"channelId": "123456789", "type": ["all"]}]
- Message delivery: Type-based routing instead of broadcasting to single channel
- New config field:
showActivePlayerCountfor optional player count display
Configuration migration required - Update your discord_bridge.json file to the new format. To do so, simply delete the old config and let it be recreated on startup.