09689ae799
refactor: DIP — core services & listeners use constructor injection, ServiceRegistry removed
2026-07-05 16:16:18 +02:00
a66d2b54d5
test: add CapsFilter, CharacterFilter, SpamFilter unit tests
2026-07-05 16:11:04 +02:00
5eae09e5bb
perf: replace regex swear filter with Aho-Corasick O(n) trie + add FilterResult unit tests
2026-07-05 16:08:32 +02:00
42ebac890c
feat: persistence util, PM DRY, Discord rate limiter, missing permissions in plugin.yml
2026-07-05 15:17:15 +02:00
dd0fb0f10d
fix: zero checkstyle warnings, exclude test sources, fix LineLength
2026-07-05 13:51:48 +02:00
4efccd3968
fix: encapsulation, star imports, checkstyle warnings (520→41), remove casts
2026-07-05 13:38:47 +02:00
90c3cac5cf
refactor: split god classes, fix OCP/ISP/SRP, migrate commands to BaseCommand hierarchy
2026-07-05 13:22:48 +02:00
793924c9ba
ci: add checkstyle reporting, caching, checksums to workflows
2026-07-05 11:39:37 +02:00
d3d87c34e0
chore: cleanup configs, docs, checkstyle, remove dead deps
2026-07-05 11:38:24 +02:00
984b364295
fix(ci): обновить actions до Node24, исправить generate_release_notes
2026-06-11 00:02:13 +02:00
3aa555db26
fix(ci): добавить permissions contents:write для release workflow
2026-06-10 23:55:58 +02:00
b811c3d84b
fix(ci): исправить права gradlew (+x) и обновить workflows
2026-06-10 23:52:46 +02:00
0e7f03dba1
ci: добавить GitHub Actions (build + release)
2026-06-10 23:42:23 +02:00
f06166dc5e
chore: удалить Forgejo Actions (больше не используется)
2026-06-10 23:32:48 +02:00
80cf392c1f
docs: добавить Code of Conduct, Security Policy и Issue Templates
...
Добавлены:
- CODE_OF_CONDUCT.md - правила поведения в сообществе
- SECURITY.md - политика безопасности и отчетность об уязвимостях
- .github/ISSUE_TEMPLATE/bug_report.md - шаблон для багов
- .github/ISSUE_TEMPLATE/feature_request.md - шаблон для новых функций
- .github/ISSUE_TEMPLATE/question.md - шаблон для вопросов
- .github/PULL_REQUEST_TEMPLATE.md - шаблон для PR
Обновлен README.md:
- Обновлена версия Paper до 1.21.1
- Улучшен раздел "Вклад в проект"
- Уточнены известные проблемы
2026-04-12 23:00:20 +02:00
812517513f
build: rebuild artifacts and update CI workflows
2026-04-07 13:45:25 +02:00
eb85778b8e
Fix CI: use codeberg-small runner instead of ubuntu-latest
2026-04-07 13:36:06 +02:00
e7b10a7daa
refactor(core): обновить ServiceFactory и ServiceRegistry
...
Добавлен фабричный метод для 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
- Улучшена тестируемость
2026-04-07 13:23:10 +02:00
3e5dcbf3ac
ci: добавить Forgejo Actions workflows
...
Добавлены 3 workflow для CI/CD:
1. build.yml - основная сборка и тесты
- Запускается на push в main/develop и PR
- Сборка с Gradle
- Запуск тестов
- Загрузка артефактов (jar файлы, отчеты тестов)
2. release.yml - автоматические релизы
- Запускается при создании тега v*
- Сборка без тестов
- Создание релиза с артефактами
3. quality.yml - проверка качества кода
- Проверка стиля кода
- Тесты с покрытием (Jacoco)
- Загрузка отчетов о покрытии
Требования:
- JDK 21 (Temurin)
- Gradle wrapper
- Forgejo Actions runner
2026-04-07 13:21:34 +02:00
4107731014
refactor(gradient): разбить GradientPrefixCommand через Command pattern (212→64 строки)
...
Применен Command pattern с handlers:
- PrefixSubCommandHandler: интерфейс для обработчиков
- PrefixOnHandler: включение префикса (40 строк)
- PrefixOffHandler: выключение префикса (35 строк)
- PrefixResetHandler: сброс префикса (40 строк)
- PrefixSetHandler: установка префикса (110 строк)
Структура:
+ gradient/commands/handlers/prefix/PrefixSubCommandHandler.java
+ gradient/commands/handlers/prefix/PrefixOnHandler.java
+ gradient/commands/handlers/prefix/PrefixOffHandler.java
+ gradient/commands/handlers/prefix/PrefixResetHandler.java
+ gradient/commands/handlers/prefix/PrefixSetHandler.java
~ gradient/commands/GradientPrefixCommand.java (212→64 строки)
Результат:
- GradientPrefixCommand уменьшен с 212 до 64 строк
- Каждый handler отвечает за одну подкоманду
- Улучшена тестируемость и расширяемость
- Все god-классы разбиты, директории оптимизированы
2026-04-07 12:57:06 +02:00
7c02b0407e
refactor(gradient): разбить GradientColorCommand через Command pattern (255→68 строк)
...
Применен Command pattern с handlers:
- SubCommandHandler: интерфейс для обработчиков
- ColorOnHandler: включение градиента (40 строк)
- ColorOffHandler: выключение градиента (35 строк)
- ColorResetHandler: сброс градиента (40 строк)
- ColorCopyHandler: копирование градиента (90 строк)
- ColorSetHandler: установка цветов (95 строк)
Структура:
+ gradient/commands/handlers/color/SubCommandHandler.java
+ gradient/commands/handlers/color/ColorOnHandler.java
+ gradient/commands/handlers/color/ColorOffHandler.java
+ gradient/commands/handlers/color/ColorResetHandler.java
+ gradient/commands/handlers/color/ColorCopyHandler.java
+ gradient/commands/handlers/color/ColorSetHandler.java
~ gradient/commands/GradientColorCommand.java (255→68 строк)
Результат:
- GradientColorCommand уменьшен с 255 до 68 строк
- Каждый handler отвечает за одну подкоманду
- Улучшена тестируемость и расширяемость
2026-04-07 12:54:20 +02:00
bb78f1e60f
refactor(config): разбить ConfigManager на 3 класса (312→80 строк)
...
Применен принцип Single Responsibility:
- ConfigLoader: загрузка и миграция версий конфига
- ConfigAccessor: доступ к значениям конфигурации
- ConfigManager: координатор, делегирует вызовы
Структура:
+ config/core/ConfigLoader.java (70 строк)
+ config/core/ConfigAccessor.java (185 строк)
~ config/ConfigManager.java (312→80 строк)
Результат:
- ConfigManager уменьшен с 312 до 80 строк
- Логика разделена по ответственности
- Улучшена читаемость и поддерживаемость
2026-04-07 12:52:34 +02:00
f45786c6af
Рефакторинг: KISS принципы, разбиение god-классов, реорганизация
...
- Создан RatConfig.java с централизованными константами
- MuteServiceImpl: 261→170 строк (Strategy pattern)
- MessagingServiceImpl: 219→124 строк (3 отдельных сервиса)
- ServiceFactory для создания сервисов
- Реорганизованы директории: utils/, commands/moderation/, commands/admin/
- Все директории теперь ≤6 файлов
2026-04-07 12:48:23 +02:00
6119feafcf
chore: add GPL v3 license and update test artifacts
...
- 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
2026-04-06 00:45:29 +02:00
4f6eaf35e9
chore: clean up documentation and rebuild with badwords filter
...
- Remove outdated CODE_REVIEW_RU.md and REFACTORING_SERVICES.md documentation
- Add badwords.txt resource file for swear filter functionality
- Rebuild compiled classes with updated filter and configuration logic
- Update all configuration files (appearance, discord, filters, messages)
- Rebuild core components: ConfigManager, PluginInitializer, SwearFilter, GradientModule, PrefixService, PlayerEventListener, EnhancedChatRenderer
- Consolidate build artifacts with source changes for consistency
2026-04-06 00:38:34 +02:00
bba480002f
refactor: restructure services and filters architecture
...
- Remove deprecated service interfaces (CooldownService, IgnoreService, PMService, PlayerDataService, SpyService)
- Add new unified service interfaces (MessagingService, PlayerService, PunishmentService)
- Extract FilterResult as standalone class from AdvancedMessageFilter
- Implement individual filter classes (CharacterFilter, FloodFilter, SpamFilter, SwearFilter, UrlFilter)
- Add moderation commands (BanCommand, WarnCommand, SilentWarnCommand, UnbanCommand)
- Introduce data models for punishment tracking (BanRecord, WarnEntry)
- Refactor messaging service with new MessagingServiceImpl implementation
- Add mute service utilities (MuteDataStorage, MutePermissionChecker)
- Implement PunishmentServiceImpl with snapshot tracking
- Add Discord integration components (DiscordConfig, DiscordMessageService)
- Introduce command handlers for gradient module (ColorCommandHandler, PrefixCommandHandler)
- Add renderer components (EmojiComponent, GradientBuilder, UrlProcessor)
- Add utility classes (ColorConverter, MessageSender, PlaceholderProcessor)
- Update configuration files and plugin metadata
- Add documentation files (CODE_REVIEW_RU.md, REFACTORING_SERVICES.md)
- Consolidate service architecture for improved maintainability and separation of concerns
2026-04-06 00:18:25 +02:00
2d79d2a91d
chore: update .gitignore and build.gradle.kts for local server testing
...
- 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.
2026-04-01 16:09:15 +02:00
d1d2b93742
fix all
2026-03-16 12:43:52 +01:00
5088e3ad1c
fix color
2026-03-13 15:51:47 +01:00
6b6605a2b0
fix
2026-03-11 14:35:00 +01:00
5ece2192a2
add fiscord webhook
2026-03-11 14:21:43 +01:00
0fea0f4537
fix
2026-03-11 11:05:47 +01:00
49744acc59
fix
2026-03-10 17:12:23 +01:00
c46994d192
docs: update README with full documentation
2026-03-10 17:07:39 +01:00
8c9b57a3d7
add custom commands config settings
2026-03-10 16:58:51 +01:00
fe64b3d51f
fix command and refactoring config
2026-03-10 16:58:10 +01:00
b922f588d0
fix: Fix hex colors not displaying in tablist, scoreboard and items
...
- Use LegacyComponentSerializer for proper color parsing
- Fixed TablistManager to deserialize colors
- Fixed ScoreboardManager to deserialize colors
- Fixed ItemBuilder to use Adventure API for item names/lore
- All hex colors (&#RRGGBB) now work correctly in 1.21.1
2026-02-24 14:21:02 +01:00
0a5acdecb0
fix: Fix Sound.valueOf compatibility for 1.21.1
...
- Added null checks in SoundAction.execute()
- Added fallback for Sound enum compatibility
- Fixed IncompatibleClassChangeError on PlayerJoinEvent
- Added SpaceLegacy ready config (spacelegacy-config.yml)
2026-02-24 14:17:44 +01:00
6e99cf9390
feat: Add server switch broadcast messages
...
LoVelocity:
- Track server switches (player moving between servers)
- Send plugin messages to hub about switches
- Log server switches
LoHub:
- Receive server switch messages via plugin messaging
- Broadcast to hub chat when player switches servers
- Configurable server display names
- Message format: 'Player connected to Server'
Config:
- server_switch_messages.enabled
- server_switch_messages.switch_message
- server_switch_messages.server_names (hub, grief, survival, etc)
Example: 'Player connected to Grief' when switching from hub to grief server
2026-02-24 14:03:49 +01:00
3ba41c18e7
feat: Update join/leave messages for Velocity network
...
LoHub:
- Changed join message to 'connected to hub' (Russian)
- Changed quit message to 'left' (Russian)
- Messages show only on actual join/leave, not server switches
LoVelocity:
- Added ServerSwitchListener
- Velocity handles server switches silently
- Backend servers (LoHub) show join/leave messages
Result: Clean join/leave messages across the network
2026-02-24 14:00:41 +01:00
1e5e8d8638
feat(lohub): Add complete configuration system with 6 config files
...
- 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
2026-02-24 13:27:18 +01:00
102341bb2c
Complete LoHub implementation: ETAP 4-10 (Custom Items, Launchpad, Double Jump, Player Hider, Scoreboard, Tablist, Announcements)
2026-02-24 00:19:05 +01:00
e78d8a2de4
Update to Minecraft 1.21.8, add checkstyle, fix compilation errors
...
- Update Paper API: 1.20.1 -> 1.21.4
- Update plugin version: 1.5.5-1.20.1 -> 1.5.5-1.21.8
- Add checkstyle plugin with reasonable rules
- Fix Enchantment.LUCK -> Enchantment.UNBREAKING
- Fix EntityType.FIREWORK -> EntityType.FIREWORK_ROCKET
- Remove unused imports
- Add temp_*/ to .gitignore
- 118 files changed, 1633 insertions(+), 1301 deletions(-)
2026-02-24 00:04:03 +01:00
6a4c8a7886
feat: LoHub Action system + Join system implementation
2026-02-23 17:27:34 +01:00
69cae99476
feat: Add Paper Chat API with hover/click/mentions/emojis/URLs + custom nicknames
2026-02-23 15:40:48 +01:00
7658f6f3e6
fix: Use correct placeholder format {prefix} {player} {message} instead of angle brackets
2026-02-23 14:11:30 +01:00
874835cb97
fix: Use FoliaUtil for AutoMessageManager timer (Folia compatibility)
2026-02-23 14:06:53 +01:00
0d74dbacbf
fix: Add try-catch for LuckPerms initialization in GradientModule
2026-02-23 14:02:40 +01:00
542a4c8ef9
fix: Enable Folia support in plugin.yml
2026-02-23 13:32:27 +01:00
4ee5393a5e
refactor: Remove all legacy managers, complete SOLID migration
2026-02-23 12:17:37 +01:00