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
This commit is contained in:
loki5512344 2026-04-06 00:18:25 +02:00
parent 2d79d2a91d
commit bba480002f
181 changed files with 3455 additions and 2908 deletions

View file

@ -1,20 +1,19 @@
# ╔══════════════════════════════════════════════════════════════════════════════╗
# ║ LoChat Messages ║
# ║ Цветовая гамма: Spacelegacy ║
# ║ #B798A8 (роза) → #7858E9 (фиолет) ║
# ║ LoChat — messages.yml ║
# ║ Default palette (Spacelegacy): #B798A8 (dusty rose) → #7858E9 (violet) ║
# ╚══════════════════════════════════════════════════════════════════════════════╝
# Роли цветов:
# &#B798A8 — основной текст / лейблы (пыльная роза, светлый)
# &#9878C9 — акцент / разделители (средний фиолет)
# &#7858E9 — важные данные / значения (насыщенный фиолет, тёмный)
# &f / #E8E0F0 — белый текст сообщений
# &#CF6679 — ошибки (приглушённый красный, вписывается в гамму)
#
# Color roles (reference when editing strings below):
# &#B798A8 — primary labels / body (dusty rose)
# &#9878C9 — accents / separators (mid violet)
# &#7858E9 — emphasis / values (deep violet)
# &f / #E8E0F0 — message body white
# &#CF6679 — errors (muted red, fits the palette)
prefix: "&#B798A8[&#9878C9L&#8B6BD6o&#7858E9C&#8565DCh&#8B6BD6a&#9878C9t&#B798A8]"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ГЛОБАЛЬНЫЙ ЧАТ │
# │ Global chat (toggle messages, server-disabled notice) │
# └─────────────────────────────────────────────────────────────────────────────┘
global:
@ -23,7 +22,7 @@ global:
disabled: "&#CF6679Глобальный чат отключён на этом сервере"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ЛОКАЛЬНЫЙ ЧАТ │
# │ Local chat (no recipients nearby) │
# └─────────────────────────────────────────────────────────────────────────────┘
local:
@ -31,7 +30,7 @@ local:
nobody-heard: "&#9878C9Вас никто не услышал &#B798A8— рядом нет игроков"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ЛИЧНЫЕ СООБЩЕНИЯ │
# │ Private messages (/msg, /reply) │
# └─────────────────────────────────────────────────────────────────────────────┘
pm:
@ -46,7 +45,7 @@ pm:
self: "&#CF6679Нельзя писать самому себе"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ИГНОРИРОВАНИЕ │
# │ Ignore list │
# └─────────────────────────────────────────────────────────────────────────────┘
ignore:
@ -60,14 +59,14 @@ ignore:
list-footer: "&#B798A8Всего: &#7858E9{count} &#B798A8игроков"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ОБЪЯВЛЕНИЯ │
# │ Announcements │
# └─────────────────────────────────────────────────────────────────────────────┘
announce:
reloaded: "&#9878C9Конфигурация &#7858E9перезагружена"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ШПИОН РЕЖИМ │
# │ Chat spy (moderation) │
# └─────────────────────────────────────────────────────────────────────────────┘
spy:
@ -77,7 +76,7 @@ spy:
chat-format: "&#B798A8[&#9878C9SPY&#B798A8] &#B798A8{type} &#7858E9{sender}&#B798A8: &f{message}"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ФИЛЬТРЫ │
# │ Message filters │
# └─────────────────────────────────────────────────────────────────────────────┘
filter:
@ -85,14 +84,14 @@ filter:
warning: "&#B798A8Предупреждение"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ КУЛДАУНЫ │
# │ Cooldowns │
# └─────────────────────────────────────────────────────────────────────────────┘
cooldown:
wait: "&#B798A8Подождите &#7858E9{time} &#B798A8сек"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ АНТИ-СПАМ │
# │ Anti-spam (caps, repeat, similar messages) │
# └─────────────────────────────────────────────────────────────────────────────┘
antispam:
@ -101,14 +100,14 @@ antispam:
similar: "&#CF6679Не отправляйте одинаковые сообщения"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ОЧИСТКА ЧАТА │
# │ Clear chat │
# └─────────────────────────────────────────────────────────────────────────────┘
clearchat:
cleared: "&#9878C9Чат очищен &#B798A8администратором &#7858E9{player}"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ОШИБКИ │
# │ Command / usage errors │
# └─────────────────────────────────────────────────────────────────────────────┘
errors:
@ -117,7 +116,7 @@ errors:
invalid-usage: "&#B798A8Использование: &#7858E9{usage}"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ОБЩИЕ СООБЩЕНИЯ │
# │ General (permissions, reload, hub, etc.) │
# └─────────────────────────────────────────────────────────────────────────────┘
general:
@ -132,7 +131,7 @@ hub:
connecting: "&#9878C9Подключение к &#7858E9{server}&#9878C9..."
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ СИСТЕМА МУТОВ │
# │ Mutes │
# └─────────────────────────────────────────────────────────────────────────────┘
mute:
@ -144,7 +143,7 @@ mute:
permanent: "&#CF6679Вы замучены навсегда!"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ГРАДИЕНТНЫЕ НИКИ │
# │ Gradient nick module (LoPreff) │
# └─────────────────────────────────────────────────────────────────────────────┘
gradient:
@ -191,7 +190,7 @@ gradient:
info-prefix-purchased: "&#B798A8Куплен: &f{purchased}"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ КАСТОМНЫЕ НИКИ │
# │ Custom nicknames (/nick) │
# └─────────────────────────────────────────────────────────────────────────────┘
nick:
@ -211,7 +210,7 @@ nick:
error: "&#CF6679Не удалось установить ник!"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ROLEPLAY КОМАНДЫ │
# │ Roleplay commands (/me, /try, /do, /roll) │
# └─────────────────────────────────────────────────────────────────────────────┘
rp: