Adds optional translation feature that shows translated chat messages
on hover in each viewer's Minecraft client language.
- TranslationService with LibreTranslate API support and caching
- Config options: enabled, endpoint, api-key
- Hover translation on chat messages in EnhancedChatRenderer
- Disabled by default, supports any LibreTranslate-compatible endpoint
Добавлен фабричный метод для MessagingService:
- ServiceFactory.createMessagingService() - создание MessagingService
- ServiceRegistry теперь использует фабрику для MessagingService
Изменения:
~ core/factory/ServiceFactory.java
+ createMessagingService(plugin, messageConfig)
~ core/registry/ServiceRegistry.java
- new MessagingServiceImpl(plugin, messageConfig)
+ ServiceFactory.createMessagingService(plugin, messageConfig)
Результат:
- Единообразное создание сервисов через фабрику
- Упрощена инициализация в ServiceRegistry
- Улучшена тестируемость
- Add LICENSE file with GNU General Public License v3
- Update README.md documentation
- Rebuild ChatFormatterTest class with latest changes
- Ensure project licensing compliance and clarity
- Added entries to .gitignore for local Paper test server and API documentation.
- Included the run-paper plugin in build.gradle.kts for local server execution.
- Configured runServer task with Minecraft version 1.21.4 for testing.
- Added messages.yml for all plugin messages with customizable prefix
- Added commands.yml for custom commands (discord, website, store, rules, heal, clearinventory)
- Added serverselector.yml for GUI server selector menu
- Added data.yml for persistent data storage (chat_locked, spawn location)
- Updated ConfigManager to load all config files
- Updated ChatLockManager to use data.yml instead of chatlock.dat
- Updated SpawnManager to use data.yml instead of spawn.yml
- Updated all commands to use messages.yml
- Updated listeners to use messages.yml
- Removed duplicate config files from root directory
- Added CONFIG_GUIDE.md documentation
- Removed unused imports and variables in HeadEmojiManager
- Clean compilation with no warnings
- All features working correctly
- Ready for production use
🎨 Config Redesign:
- Unified style for all config files with beautiful headers
- Consistent color scheme using gradients throughout
- Improved readability with proper sections and comments
- Fixed color formatting issues
✨ New Features:
- SkinsRestorer integration for custom skins support
- Head emoji system (:head_nickname: and @head nickname)
- Clear chat message configuration command (/clearchatconfig)
- Enhanced custom commands with more examples
- Improved emoji system with 200+ emojis
📝 Documentation:
- Completely rewritten README.md with modern styling
- Added comprehensive feature descriptions
- Detailed command and permission tables
- Configuration examples and usage guides
- Professional formatting and structure
🔧 Technical Improvements:
- Fixed compilation errors
- Improved code organization
- Better error handling
- Enhanced compatibility
All configs now follow consistent MiniMessage gradient styling!
Features fixed:
- Added chat filter functionality (block/warn/censor modes)
- Fixed spy command to monitor all chat messages
- Added proper spy notifications for global/local chat
Code quality improvements:
- Created PlayerUtil to eliminate code duplication in player lookup
- Refactored ChatListener into smaller, focused methods
- Added Constants class to replace magic numbers
- Improved SOLID principles compliance
- Fixed all compilation warnings
All features from README are now implemented and working.
- Changed dependency from Folia API 1.21.4 to Paper API 1.20.1
- Updated plugin.yml: api-version to 1.20, folia-supported to false
- Replaced Folia-specific scheduler calls with FoliaUtil for compatibility
- Updated version to 1.5.5-1.20.1
- Fixed enum switch warning in ChatListener
- Removed unused imports
- All tests pass successfully
- /lmutelist - shows all active mutes with remaining time
- /lmutehistory <player> - shows mute history for a player
- Added mute history tracking (mute-history.json)
- History includes: who muted, when, duration, reason, unmute info
- Permissions: lochat.mutelist, lochat.mutehistory
- Fixed issue where gradient colors were lost when changing prefix
- Updated GradientGUIListener to preserve existing colors when setting prefix
- Updated GradientPrefixCommand to pass existing colors to confirmation GUI
- Added LibertyBans integration (simple version without API dependency)
- Added LibertyBans to softdepend in plugin.yml
- LibertyBans integration detects plugin presence but relies on LibertyBans own mute handling