refactor: split god classes, fix OCP/ISP/SRP, migrate commands to BaseCommand hierarchy
This commit is contained in:
parent
793924c9ba
commit
90c3cac5cf
244 changed files with 1677 additions and 1570 deletions
|
|
@ -1,225 +1,166 @@
|
|||
# ╔══════════════════════════════════════════════════════════════════════════════╗
|
||||
# ║ LoChat — messages.yml ║
|
||||
# ║ Default palette (Spacelegacy): #7858E9 (dusty rose) → #7858E9 (violet) ║
|
||||
# ╚══════════════════════════════════════════════════════════════════════════════╝
|
||||
#
|
||||
# Color roles (reference when editing strings below):
|
||||
# ẲE9 — primary labels / body (dusty rose)
|
||||
# ⚖C9 — accents / separators (mid violet)
|
||||
# ẲE9 — emphasis / values (deep violet)
|
||||
# &f / #E8E0F0 — message body white
|
||||
# &#CF6679 — errors (muted red, fits the palette)
|
||||
# LoChat player messages
|
||||
# All messages sent to players. Supports & color codes and placeholders.
|
||||
|
||||
prefix: "ẲE9[⚖C9LB6BD6oẲE9CⅵDChB6BD6a⚖C9tẲE9]"
|
||||
prefix: "&8[&3LoChat&8]"
|
||||
|
||||
# ┌─────────────────────────────────────────────────────────────────────────────┐
|
||||
# │ Global chat (toggle messages, server-disabled notice) │
|
||||
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||
# ── Global Chat ────────────────────────────────────────────────────────────────
|
||||
|
||||
global:
|
||||
toggled-on: "⚖C9Глобальный чат ẲE9включён"
|
||||
toggled-off: "⚖C9Глобальный чат ẲE9отключён"
|
||||
disabled: "&#CF6679Глобальный чат отключён на этом сервере"
|
||||
toggled-on: "&aGlobal chat enabled"
|
||||
toggled-off: "&cGlobal chat disabled"
|
||||
disabled: "&cGlobal chat is disabled on this server"
|
||||
|
||||
# ┌─────────────────────────────────────────────────────────────────────────────┐
|
||||
# │ Local chat (no recipients nearby) │
|
||||
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||
# ── Local Chat ─────────────────────────────────────────────────────────────────
|
||||
|
||||
local:
|
||||
no-players: "ẲE9Рядом нет игроков"
|
||||
nobody-heard: "⚖C9Вас никто не услышал ẲE9— рядом нет игроков"
|
||||
no-players: "&cNo players nearby"
|
||||
nobody-heard: "&7Nobody heard you — no players nearby"
|
||||
|
||||
# ┌─────────────────────────────────────────────────────────────────────────────┐
|
||||
# │ Private messages (/msg, /reply) │
|
||||
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||
# ── Private Messages ───────────────────────────────────────────────────────────
|
||||
|
||||
pm:
|
||||
format-sent: "ẲE9[⚖C9→ẲE9] ⚖C9Вы ẲE9→ {receiver_display}ẲE9: &f{message}"
|
||||
format-received: "ẲE9[⚖C9←ẲE9] {sender_display} ẲE9→ ⚖C9ВыẲE9: &f{message}"
|
||||
use-gradient-names: true
|
||||
sent: "ẲE9[⚖C9→ẲE9] ⚖C9Вы ẲE9→ &f{player}ẲE9: &f{message}"
|
||||
received: "ẲE9[⚖C9←ẲE9] &f{player} ẲE9→ ⚖C9ВыẲE9: &f{message}"
|
||||
no-reply: "&#CF6679Некому ответить"
|
||||
ignored: "&#CF6679Этот игрок вас игнорирует"
|
||||
player-offline: "&#CF6679Игрок не в сети"
|
||||
self: "&#CF6679Нельзя писать самому себе"
|
||||
format-sent: "&8[&a\u2192&8] &7You &a\u2192 &f{receiver_display}&8: &f{message}"
|
||||
format-received: "&8[&e\u2190&8] &f{sender_display} &e\u2192 &7You&8: &f{message}"
|
||||
no-reply: "&cNobody to reply to"
|
||||
ignored: "&cThis player is ignoring you"
|
||||
player-offline: "&cPlayer is not online"
|
||||
self: "&cYou cannot message yourself"
|
||||
|
||||
# ┌─────────────────────────────────────────────────────────────────────────────┐
|
||||
# │ Ignore list │
|
||||
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||
# ── Ignore List ────────────────────────────────────────────────────────────────
|
||||
|
||||
ignore:
|
||||
added: "⚖C9Игрок ẲE9{player} ⚖C9добавлен в игнор"
|
||||
removed: "⚖C9Игрок ẲE9{player} ⚖C9убран из игнора"
|
||||
already-ignored: "ẲE9Игрок ẲE9{player} ẲE9уже в игноре"
|
||||
not-ignored: "ẲE9Игрок ẲE9{player} ẲE9не в игноре"
|
||||
self: "&#CF6679Нельзя игнорировать самого себя"
|
||||
list-empty: "ẲE9Ваш список игнора пуст"
|
||||
list-header: "ẲE9▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬"
|
||||
list-footer: "ẲE9Всего: ẲE9{count} ẲE9игроков"
|
||||
added: "&aPlayer &f{player} &ais now ignored"
|
||||
removed: "&aPlayer &f{player} &ais no longer ignored"
|
||||
already-ignored: "&7Player &f{player} &7is already ignored"
|
||||
not-ignored: "&7Player &f{player} &7is not ignored"
|
||||
self: "&cYou cannot ignore yourself"
|
||||
list-empty: "&7Your ignore list is empty"
|
||||
list-header: "&8\u2500\u2500\u2500\u2500\u2500 Ignored Players \u2500\u2500\u2500\u2500\u2500"
|
||||
list-footer: "&7Total: &f{count} &7players"
|
||||
|
||||
# ┌─────────────────────────────────────────────────────────────────────────────┐
|
||||
# │ Announcements │
|
||||
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||
# ── Announcements ──────────────────────────────────────────────────────────────
|
||||
|
||||
announce:
|
||||
reloaded: "⚖C9Конфигурация ẲE9перезагружена"
|
||||
reloaded: "&aConfiguration reloaded"
|
||||
|
||||
# ┌─────────────────────────────────────────────────────────────────────────────┐
|
||||
# │ Chat spy (moderation) │
|
||||
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||
# ── Chat Spy ───────────────────────────────────────────────────────────────────
|
||||
|
||||
spy:
|
||||
enabled: "⚖C9Режим шпиона ẲE9включён"
|
||||
disabled: "⚖C9Режим шпиона ẲE9отключён"
|
||||
format: "ẲE9[⚖C9SPYẲE9] ẲE9{sender} ẲE9→ ⚖C9{receiver}ẲE9: &f{message}"
|
||||
chat-format: "ẲE9[⚖C9SPYẲE9] ẲE9{type} ẲE9{sender}ẲE9: &f{message}"
|
||||
enabled: "&aSpy mode enabled"
|
||||
disabled: "&cSpy mode disabled"
|
||||
format: "&8[&4SPY&8] &f{sender} &8\u2192 &7{receiver}&8: &f{message}"
|
||||
chat-format: "&8[&4SPY&8] &f{sender}&8: &f{message}"
|
||||
|
||||
# ┌─────────────────────────────────────────────────────────────────────────────┐
|
||||
# │ Message filters │
|
||||
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||
# ── Filters ────────────────────────────────────────────────────────────────────
|
||||
|
||||
filter:
|
||||
blocked: "&#CF6679Сообщение заблокировано"
|
||||
warning: "ẲE9Предупреждение"
|
||||
blocked: "&cMessage blocked"
|
||||
warning: "&6Warning"
|
||||
|
||||
# ┌─────────────────────────────────────────────────────────────────────────────┐
|
||||
# │ Cooldowns │
|
||||
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||
# ── Cooldowns ──────────────────────────────────────────────────────────────────
|
||||
|
||||
cooldown:
|
||||
wait: "ẲE9Подождите ẲE9{time} ẲE9сек"
|
||||
wait: "&cPlease wait &f{time} &cseconds"
|
||||
|
||||
# ┌─────────────────────────────────────────────────────────────────────────────┐
|
||||
# │ Anti-spam (caps, repeat, similar messages) │
|
||||
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||
# ── Anti-Spam ──────────────────────────────────────────────────────────────────
|
||||
|
||||
antispam:
|
||||
caps: "&#CF6679Не кричите в чате"
|
||||
repeat: "&#CF6679Не повторяйте символы"
|
||||
similar: "&#CF6679Не отправляйте одинаковые сообщения"
|
||||
caps: "&cPlease don't shout"
|
||||
repeat: "&cPlease don't repeat characters"
|
||||
similar: "&cPlease don't send the same message"
|
||||
|
||||
# ┌─────────────────────────────────────────────────────────────────────────────┐
|
||||
# │ Clear chat │
|
||||
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||
# ── Clear Chat ─────────────────────────────────────────────────────────────────
|
||||
|
||||
clearchat:
|
||||
cleared: "⚖C9Чат очищен ẲE9администратором ẲE9{player}"
|
||||
cleared: "&aChat cleared by &f{player}"
|
||||
|
||||
# ┌─────────────────────────────────────────────────────────────────────────────┐
|
||||
# │ Command / usage errors │
|
||||
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||
# ── Errors ─────────────────────────────────────────────────────────────────────
|
||||
|
||||
errors:
|
||||
no-permission: "&#CF6679Нет прав"
|
||||
player-not-found: "&#CF6679Игрок не найден"
|
||||
invalid-usage: "ẲE9Использование: ẲE9{usage}"
|
||||
no-permission: "&cNo permission"
|
||||
player-not-found: "&cPlayer not found"
|
||||
invalid-usage: "&cUsage: &f{usage}"
|
||||
|
||||
# ┌─────────────────────────────────────────────────────────────────────────────┐
|
||||
# │ General (permissions, reload, hub, etc.) │
|
||||
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||
# ── General ────────────────────────────────────────────────────────────────────
|
||||
|
||||
general:
|
||||
no-permission: "&#CF6679У вас нет прав!"
|
||||
players-only: "&#CF6679Только для игроков!"
|
||||
config-reloaded: "⚖C9Конфиг ẲE9перезагружен!"
|
||||
invalid-player: "&#CF6679Игрок ẲE9{player} &#CF6679не найден!"
|
||||
cooldown-active: "ẲE9Подождите ẲE9{time}с"
|
||||
command-disabled: "&#CF6679Команда отключена!"
|
||||
no-permission: "&cYou don't have permission!"
|
||||
players-only: "&cThis command is for players only!"
|
||||
config-reloaded: "&aConfiguration reloaded!"
|
||||
invalid-player: "&cPlayer &f{player} &cnot found!"
|
||||
cooldown-active: "&cPlease wait &f{time}&cs"
|
||||
command-disabled: "&cCommand disabled!"
|
||||
|
||||
# ── Hub ────────────────────────────────────────────────────────────────────────
|
||||
|
||||
hub:
|
||||
connecting: "⚖C9Подключение к ẲE9{server}⚖C9..."
|
||||
connecting: "&aConnecting to &f{server}&a..."
|
||||
|
||||
# ┌─────────────────────────────────────────────────────────────────────────────┐
|
||||
# │ Mutes │
|
||||
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||
# ── Mute ───────────────────────────────────────────────────────────────────────
|
||||
|
||||
mute:
|
||||
muted: "⚖C9Игрок ẲE9{player} ⚖C9замучен на ẲE9{time}"
|
||||
unmuted: "⚖C9Игрок ẲE9{player} ⚖C9размучен"
|
||||
already-muted: "ẲE9Игрок ẲE9{player} ẲE9уже замучен"
|
||||
not-muted: "ẲE9Игрок ẲE9{player} ẲE9не замучен"
|
||||
you-muted: "&#CF6679Вы замучены! ẲE9Осталось: ẲE9{time}"
|
||||
permanent: "&#CF6679Вы замучены навсегда!"
|
||||
muted: "&aPlayer &f{player} &amuted for &f{time}"
|
||||
unmuted: "&aPlayer &f{player} &aunmuted"
|
||||
already-muted: "&7Player &f{player} &7is already muted"
|
||||
not-muted: "&7Player &f{player} &7is not muted"
|
||||
you-muted: "&cYou are muted! &7Remaining: &f{time}"
|
||||
permanent: "&cYou are permanently muted!"
|
||||
|
||||
# ┌─────────────────────────────────────────────────────────────────────────────┐
|
||||
# │ Gradient nick module (LoPreff) │
|
||||
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||
# ── Gradients ──────────────────────────────────────────────────────────────────
|
||||
|
||||
gradient:
|
||||
color-set: "⚖C9Градиент ẲE9установлен!"
|
||||
color-enabled: "⚖C9Градиентный ник ẲE9включён"
|
||||
color-disabled: "ẲE9Градиентный ник ⚖C9отключён"
|
||||
color-reset: "ẲE9Градиент сброшен"
|
||||
prefix-set: "⚖C9Префикс ẲE9установлен!"
|
||||
prefix-reset: "ẲE9Префикс сброшен"
|
||||
prefix-reset-success: "⚖C9Префикс успешно ẲE9сброшен!"
|
||||
prefix-enabled: "⚖C9Префикс ẲE9включён"
|
||||
prefix-disabled: "ẲE9Префикс ⚖C9отключён"
|
||||
invalid-hex: "&#CF6679Неверный HEX цвет: ẲE9{color}"
|
||||
invalid-color: "&#CF6679Неверный цвет: ẲE9{color}"
|
||||
too-many-colors: "&#CF6679Слишком много цветов! Максимум: ẲE9{max}"
|
||||
too-few-colors: "&#CF6679Слишком мало цветов! Минимум: ẲE9{min}"
|
||||
not-enough-colors: "&#CF6679Слишком мало цветов! Минимум: ẲE9{min}"
|
||||
cooldown: "ẲE9Подождите ẲE9{time} ẲE9сек"
|
||||
not-enough-points: "&#CF6679Недостаточно поинтов! Нужно: ẲE9{price}"
|
||||
not-enough-points-color: "&#CF6679Недостаточно поинтов! Нужно: ẲE9{price}"
|
||||
not-enough-points-prefix: "&#CF6679Недостаточно поинтов! Нужно: ẲE9{price}"
|
||||
player-not-found: "&#CF6679Игрок не найден"
|
||||
color-help: "ẲE9Использование: ẲE9/color <HEX1> <HEX2>"
|
||||
color-success: "⚖C9Градиент успешно ẲE9установлен!"
|
||||
color-no-colors: "ẲE9У вас нет установленных цветов"
|
||||
color-copy-usage: "ẲE9Использование: ẲE9/color copy <игрок>"
|
||||
color-copy-no-colors: "ẲE9У игрока ẲE9{player} ẲE9нет цветов"
|
||||
prefix-help: "ẲE9Использование: ẲE9/prefix <текст> ẲE9или ẲE9/prefix reset"
|
||||
prefix-success: "⚖C9Префикс установлен! ẲE9Стоимость: ẲE9{price} ẲE9поинтов"
|
||||
prefix-success-free: "⚖C9Префикс ẲE9установлен!"
|
||||
prefix-no-prefix: "ẲE9У вас нет префикса"
|
||||
prefix-too-long: "&#CF6679Префикс слишком длинный! Максимум: ẲE9{max}"
|
||||
prefix-no-colors: "&#CF6679Префикс не может содержать цветовые коды!"
|
||||
prefix-invalid-chars: "&#CF6679Недопустимые символы в префиксе!"
|
||||
prefix-blacklisted: "&#CF6679Этот префикс запрещён!"
|
||||
only-player: "&#CF6679Только для игроков!"
|
||||
no-permission: "&#CF6679Нет прав!"
|
||||
reload-success: "⚖C9Конфигурация ẲE9перезагружена!"
|
||||
info-header: "ẲE9▬▬▬▬▬▬▬▬ ẲE9{player} ẲE9▬▬▬▬▬▬▬▬"
|
||||
info-prefix: "ẲE9Префикс: &f{prefix}"
|
||||
info-prefix-enabled: "ẲE9Префикс активен: &f{enabled}"
|
||||
info-colors: "ẲE9Цвета: &f{colors}"
|
||||
info-color-enabled: "ẲE9Цвет активен: &f{enabled}"
|
||||
info-prefix-purchased: "ẲE9Куплен: &f{purchased}"
|
||||
color-set: "&aGradient set!"
|
||||
color-enabled: "&aGradient nickname enabled"
|
||||
color-disabled: "&7Gradient nickname disabled"
|
||||
color-reset: "&7Gradient reset"
|
||||
prefix-set: "&aPrefix set!"
|
||||
prefix-reset: "&7Prefix reset"
|
||||
prefix-enabled: "&aPrefix enabled"
|
||||
prefix-disabled: "&7Prefix disabled"
|
||||
invalid-hex: "&cInvalid hex color: &f{color}"
|
||||
invalid-color: "&cInvalid color: &f{color}"
|
||||
too-many-colors: "&cToo many colors! Maximum: &f{max}"
|
||||
too-few-colors: "&cToo few colors! Minimum: &f{min}"
|
||||
cooldown: "&cPlease wait &f{time} &cseconds"
|
||||
not-enough-points: "&cNot enough points! Need: &f{price}"
|
||||
player-not-found: "&cPlayer not found"
|
||||
color-help: "&cUsage: &f/color <hex1> <hex2> ..."
|
||||
color-success: "&aGradient applied!"
|
||||
color-no-colors: "&7You have no colors set"
|
||||
prefix-help: "&cUsage: &f/prefix <text>"
|
||||
prefix-success: "&aPrefix set!"
|
||||
prefix-success-free: "&aPrefix set!"
|
||||
prefix-no-prefix: "&7You have no prefix"
|
||||
prefix-too-long: "&cPrefix too long! Max: &f{max}"
|
||||
prefix-no-colors: "&cPrefix cannot contain color codes"
|
||||
only-player: "&cPlayers only!"
|
||||
no-permission: "&cNo permission!"
|
||||
reload-success: "&aConfiguration reloaded!"
|
||||
info-header: "&8\u2500\u2500\u2500\u2500\u2500 &f{player} &8\u2500\u2500\u2500\u2500\u2500"
|
||||
info-prefix: "&7Prefix: &f{prefix}"
|
||||
info-colors: "&7Colors: &f{colors}"
|
||||
|
||||
# ┌─────────────────────────────────────────────────────────────────────────────┐
|
||||
# │ Custom nicknames (/nick) │
|
||||
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||
# ── Custom Nicknames ───────────────────────────────────────────────────────────
|
||||
|
||||
nick:
|
||||
current: "ẲE9Ваш ник: ẲE9{nick}"
|
||||
usage: "ẲE9Использование: ẲE9/nick <ник> ẲE9или ẲE9/nick reset"
|
||||
reset-usage: "ẲE9Используйте ẲE9/nick reset ẲE9для сброса"
|
||||
set-usage: "ẲE9Используйте ẲE9/nick <ник> ẲE9для установки"
|
||||
no-nick: "ẲE9У вас нет кастомного ника"
|
||||
reset-success: "⚖C9Ник ẲE9сброшен!"
|
||||
set-success: "⚖C9Ник изменён на: &f{nick}"
|
||||
invalid: "&#CF6679Невалидный ник!"
|
||||
requirements-header: "ẲE9Требования:"
|
||||
requirements-length: "⚖C9◆ &fДлина: 3-16 символов"
|
||||
requirements-chars: "⚖C9◆ &fБуквы, цифры, _, русские буквы"
|
||||
requirements-colors: "⚖C9◆ &fЦвета: ẲE9&#RRGGBBẲE9текст"
|
||||
taken: "&#CF6679Этот ник уже занят!"
|
||||
error: "&#CF6679Не удалось установить ник!"
|
||||
current: "&7Your nickname: &f{nick}"
|
||||
usage: "&cUsage: &f/nick <name> &7or &f/nick reset"
|
||||
no-nick: "&7You have no custom nickname"
|
||||
reset-success: "&aNickname reset!"
|
||||
set-success: "&aNickname changed to: &f{nick}"
|
||||
invalid: "&cInvalid nickname!"
|
||||
taken: "&cThis nickname is already taken!"
|
||||
error: "&cFailed to set nickname!"
|
||||
|
||||
# ┌─────────────────────────────────────────────────────────────────────────────┐
|
||||
# │ Roleplay commands (/me, /try, /do, /roll) │
|
||||
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||
# ── RP Commands ────────────────────────────────────────────────────────────────
|
||||
|
||||
rp:
|
||||
me: "<color:#7858E9>* {player} {action}</color>"
|
||||
try-format: "<color:#7858E9>* {player} пытается {action}...</color> {result}"
|
||||
try-success: "<color:#9878C9><bold>[Успех!]</bold></color>"
|
||||
try-fail: "<color:#CF6679><bold>[Провал!]</bold></color>"
|
||||
do-format: "<color:#7858E9>[<color:#7858E9>Сцена</color>]</color> <white>{description}</white> <color:#9878C9>({player})</color>"
|
||||
roll-format: "<color:#7858E9>* {player} бросает кубик и получает </color><color:#7858E9><bold>{result}</bold></color><color:#7858E9> из </color><color:#9878C9>{max}</color>"
|
||||
roll-min-error: "<color:#CF6679>Минимальное значение кубика: 2</color>"
|
||||
roll-max-error: "<color:#CF6679>Максимальное значение: 1000000</color>"
|
||||
roll-invalid-number: "<color:#CF6679>Укажите число: /roll [максимум]</color>"
|
||||
me: "&7* {player} {action}"
|
||||
try-format: "&7* {player} tries {action}... &f{result}"
|
||||
try-success: "&a[Success!]"
|
||||
try-fail: "&c[Fail!]"
|
||||
do-format: "&8[Scene] &f{description} &7({player})"
|
||||
roll-format: "&7* {player} rolls &f{result} &7out of &f{max}"
|
||||
roll-min-error: "&cMinimum dice value: 2"
|
||||
roll-max-error: "&cMaximum dice value: 1000000"
|
||||
roll-invalid-number: "&cPlease specify a number: /roll [max]"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue