refactor: generator minigame system (gui + text), fix color codes, holograms, messages, & config

This commit is contained in:
loki5512344 2026-06-14 16:04:25 +02:00
parent 957ab4a5a2
commit 7c7562a8d4
48 changed files with 1628 additions and 733 deletions

View file

@ -1,113 +1,314 @@
# ============================================
# Mdbd Plugin - Сообщения
# Поддерживаются цвета в формате &#rrggbb
# %prefix% - глобальный префикс (DBD в красном)
# %admin-prefix% - префикс для админ-команд
# %setup-prefix% - префикс для команд установки
# ============================================
# Префикс всех сообщений плагина
prefix: "&#FF6B00&l[DBD]&r "
prefix: "&#FF2121D&#E81F1FB&#D11E1ED &7| "
admin-prefix: "&#FF2121D&#E81F1FB&#D11E1ED &7| &7» "
setup-prefix: "&#FF2121D&#E81F1FB&#D11E1ED &7| &7▶ "
# ── Команды ─────────────────────────────────────
cmd:
no-permission: "%admin-prefix%&cНет прав!"
players-only: "%admin-prefix%&cТолько игроки!"
# ── /dbd ────────────────────────────────────────
dbd:
join:
success: "%prefix%&aВы присоединились к игре!"
fail: "%prefix%&cНе удалось присоединиться. Возможно, игра уже идёт."
not-in-game: "%prefix%&cВы не в игре."
leave:
success: "%prefix%&eВы покинули игру."
create:
usage: "%prefix%&cИспользование: /dbd create <имя> [пароль] [private]"
delete:
usage: "%prefix%&cИспользование: /dbd delete <имя>"
forcestart:
success: "%prefix%&aИгра форсирована!"
fail: "%admin-prefix%&cНельзя форсировать сейчас."
no-game: "%admin-prefix%&cНет активной игры!"
stop:
success: "%prefix%&eИгра остановлена."
reload:
success: "%admin-prefix%&aКонфиги перезагружены!"
map:
save-success: "%prefix%&aКарта «%s» сохранена в plugins/Mdbd/maps/"
save-fail: "%prefix%&cНе удалось сохранить карту."
load-success: "%prefix%&aКарта «%s» загружена!"
load-warn: "%prefix%&eПерезагрузите карту или перезапустите сервер для применения."
load-not-found: "%prefix%&cКарта «%s» не найдена."
save-usage: "%admin-prefix%&cИспользование: /dbd save <название>"
load-usage: "%admin-prefix%&cИспользование: /dbd load <название>"
lobby:
teleport: "%prefix%&aТелепорт в лобби!"
setlobby:
success: "%admin-prefix%&aТочка лобби установлена!"
# ── /dbd admin ──────────────────────────────────
dbdadmin:
no-session: "%admin-prefix%&cНет активной игровой сессии."
heal:
target: "%prefix%&aАдмин вылечил вас."
sender: "%admin-prefix%&a%s → HEALTHY"
state:
sender: "%admin-prefix%&e%s → %s"
usage: "%admin-prefix%&c/dbd admin state <игрок> <HEALTHY|INJURED|DOWNED|HOOKED|...>"
unknown: "%admin-prefix%&cНеизвестный статус."
hooks:
usage: "%admin-prefix%&c/dbd admin hooks <игрок> <0-3>"
sender: "%admin-prefix%&a%s hooks=%d"
invalid: "%admin-prefix%&cЧисло 0–3."
kill:
sender: "%admin-prefix%&c%s → DEAD"
resolve:
no-player: "%admin-prefix%&cУкажите игрока."
offline: "%admin-prefix%&cИгрок не в сети."
not-in-game: "%admin-prefix%&cИгрок не в этой игре или не выживший."
jump:
sender: "%admin-prefix%&6Прыжки %s"
unknown-type: "%admin-prefix%&cНеизвестный тип: %s"
# ── /dbdadmin (список объектов) ─────────────────
dbdadmin-list:
header: "%setup-prefix%=== Все установленные объекты ==="
none: "&7%s: нет"
count: "&6%s (&e%s&6):"
entry: "&#00CED1 #%d %s [%.1f, %.1f, %.1f]"
world-usage: "%setup-prefix%&cИспользование: /dbdadmin world <game|название мира>"
world-not-found: "%setup-prefix%&cМир game не загружен!"
world-not-exist: "%setup-prefix%&cМир не найден: %s"
world-teleport: "%setup-prefix%&aТелепортирован в мир: &6%s"
# ── /dbdsetup ───────────────────────────────────
setup:
wand-given: "%setup-prefix%&aПолучен DBD Setup Wand"
set-usage: "%setup-prefix%&cИспользование: /dbdsetup set <тип> [номер]"
set-types: "&6Типы: hook, chest, generator, killer-spawn, survivor-spawn, gate"
set-spawn-info: "&6Для спавнов можно указать номер: /dbdsetup set killer-spawn 0"
gate-usage: "%setup-prefix%&cУкажи: /dbdsetup set gate A (или B)"
gate-invalid: "%setup-prefix%&cВорота могут быть только A или B"
unknown-type: "%setup-prefix%&cНеизвестный тип: %s"
survivor-spawn-range: "%setup-prefix%&cНомер спавна выжившего должен быть от 1 до 4"
killer-spawn-range: "%setup-prefix%&cНомер спавна киллера должен быть >= 0"
invalid-number: "%setup-prefix%&cНомер спавна должен быть числом: %s"
mode-off: "&eРежим установки &6%s &eвыключен"
mode-on-spawn: "%setup-prefix%&aРежим установки: &6%s%s\n&aСломай блок чтобы установить спавн (блок восстановится)\n&eПовторно введи команду для выключения"
mode-on: "%setup-prefix%&aРежим установки: &6%s%s\n&aСломай блок чтобы установить (блок восстановится)\n&eВведи команду снова чтобы выключить режим"
gate-need-points: "%setup-prefix%&cСначала выбери оба угла топориком! (ЛКМ=точка 1, ПКМ=точка 2)"
gate-same-world: "%setup-prefix%&cТочки должны быть в одном мире!"
gate-placed: "%setup-prefix%&aВорота &f%s &aустановлены: %s"
hook-placed: "%setup-prefix%&aКрюк установлен: %s"
chest-placed: "%setup-prefix%&aСундук добавлен: %s"
generator-placed: "%setup-prefix%&aГенератор добавлен: %s"
killer-spawn-exists: "%setup-prefix%&cСпавн киллера уже установлен! Используй /dbdsetup clear-spawns для сброса."
killer-spawn-placed: "&#FF4444Спавн киллера установлен: %s"
survivor-spawn-limit: "%setup-prefix%&cДостигнут лимит спавнов выживших (4)! Используй /dbdsetup clear-spawns для сброса."
survivor-spawn-placed: "%setup-prefix%&aСпавн для &6%s &aвыжившего установлен! (всего: %d/4) %s"
wand-point: "%setup-prefix%&a[Wand] Точка %d: %s"
map-cleared: "%setup-prefix%&aКарта очищена!"
spawns-cleared: "%setup-prefix%&aВсе спавны (киллер + выжившие) очищены!"
lobby-set: "%setup-prefix%&aЛобби установлено: %s"
# ── Игровой процесс ─────────────────────────────
# Сообщения игры
game:
# Старт/конец
start: "&#00FF00Игра началась! Бегите от Киллера!"
end-victory-escape: "&#FFD700Выжившие сбежали! Победа!"
end-victory-killer: "&#DC143CКиллер победил!"
# Ожидание
waiting: "&#FFFF00Ожидание игроков... (%s/%s)"
countdown: "&#FFA500До начала: %s секунд"
countdown-short: "&#FF0000%s..."
# Роли
role-killer: "&#DC143CВы Киллер! Поймайте всех выживших."
role-survivor: "&#00CED1Вы Выживший! Почините генераторы и сбегите."
start: "%prefix%&aИгра началась! Выжившие, чините генераторы!"
end: "&6&l=== РЕЗУЛЬТАТЫ ==="
killer-win: "%prefix%&4Маньяк победил! Все выжившие мертвы!"
survivors-win: "%prefix%&aВыжившие победили!"
killer-disconnect: "%prefix%&aМаньяк покинул игру! Выжившие победили!"
no-survivors: "%prefix%&4В игре нет выживших! Маньяк победил!"
all-incapacitated: "%prefix%&4Все выжившие обезврежены!"
all-dead: "%prefix%&4Все выжившие мертвы. Киллер победил!"
time-up: "%prefix%&4Время вышло! Маньяк победил!"
roles-assigned: "%prefix%&aРоли назначены!"
# ── Лобби ──────────────────────────────────────
lobby:
opened: "%prefix%&aЛобби открыто! Ожидание игроков..."
waiting: "&e⏳ Ожидание игроков: %d/%d"
all-ready: "&a[DBD] Все игроки вошли! Старт через %d сек!"
countdown: "&e[DBD] До начала: %d сек."
starting: "&a[DBD] Игра начинается!"
actionbar-waiting: "&e>>> Начало через: %dс (%d/%d)"
player-joined: "&e[DBD] %s присоединился! (%d/%d)"
# ── Роли ───────────────────────────────────────
role:
killer: "%prefix%&4Вы — Маньяк! Поймайте всех выживших!"
survivor: "%prefix%&bВы — Выживший! Почините генераторы и сбегите!"
# ── Генераторы ─────────────────────────────────
# Генераторы
generator:
repair-start: "&#00CED1Вы начали чинить генератор..."
repair-stop: "&#87CEEBВы остановились."
repair-complete: "&#00FF00✓ Генератор активирован! (%s/%s)"
repair-progress: "&#FFD700Прогресс: %s%%"
skillcheck-success: "&#00FF00Отлично! +%s%%"
skillcheck-super: "&#FFD700Великолепно! +%s%%"
skillcheck-fail: "&#FF0000✗ Провал! -%s%%"
explosion: "&#FF4500⚠ Взрыв генератора!"
regression: "&#FF6347Генератор откатывается..."
kicked: "&#FF4500Киллер пнул генератор!"
repair:
start: "&bВы начали чинить генератор..."
stop: "&eВы остановились."
complete: "&a✔ Генератор активирован!"
broadcast: "&aГенератор починен! &7(%d/%d)"
cannot: "&cГенератор не может быть починен!"
busy: "&cКто-то уже чинит этот генератор!"
actionbar: "&7Починка: %s"
skillcheck-title: "&eSkill Check! %s"
skillcheck-success: "&a✓ Отлично! +%d%%"
skillcheck-fail: "&c✗ Ошибка! -%d%%. Продолжай чинить."
kicked:
begin: "%prefix%&cДержите Shift для разрушения генератора..."
cooldown: "%prefix%&cКулдаун удара: %d сек"
already-broken: "%prefix%&eГенератор уже сломан! Нечего разрушать."
actionbar: "&c⚡ Разрушение: %d%%"
success: "%prefix%&cГенератор поврежден! -%d%% прогресса"
broadcast: "%prefix%&4⚡ Маньяк разрушил генератор! -%d%%"
complete: "&aГенератор починен!\n%e"
all-done: "%prefix%&aВсе генераторы починены! Открывайте ворота!"
notification: "&4[DBD] ⚡ Выживший допустил ошибку! Компас укажет на генератор!"
# ── Маньяк ─────────────────────────────────────
# Киллер
killer:
terror-near: "&#8B0000Сердце колотится..."
terror-medium: "&#FF4500Опасно рядом..."
terror-far: "&#FFA500Киллер где-то рядом"
chase-start: "&#FF0000⚠ Киллер преследует вас!"
chase-stop: "&#00FF00Вы ушли от погони."
hit: "&#DC143CВы ранены! Ищите укрытие!"
down: "&#8B0000Вы в нокдауне! Ползите!"
pickup: "&#800080Киллер поднял вас..."
hook: "&#4B0082Вас повесили на крюк!"
carried-escape: "&6Попытка вырваться: %d%%"
# ── Выжившие ───────────────────────────────────
# Выжившие
survivor:
heal-self-start: "&#00FA9AЛечите себя..."
heal-self-complete: "&#00FF00Вылечены!"
heal-other-start: "&#00FA9AЛечите союзника..."
heal-other-complete: "&#00FF00Союзник вылечен!"
heal-interrupt: "&#FFD700Лечение прервано!"
sprint-exhausted: "&#FF8C00Вы устали... (Истощение)"
sprint-ready: "&#00FF00Можно бежать!"
vault-fast: "&#00CED1Быстрый прыжок!"
vault-slow: "&#87CEEBМедленный прыжок..."
rescue-start: "&#00CED1Спасаете с крюка..."
rescue-complete: "&#00FF00Союзник спасён!"
heal:
limit: "%prefix%&cЛимит лечений исчерпан!"
too-far: "%prefix%&cСлишком далеко!"
self-start: "&aЛечение себя: %s"
other-start: "&7Лечение союзника: %s"
self-done: "&aВы полностью вылечились!"
other-done: "&eВы встали на ноги!"
complete: "%prefix%&aСоюзник вылечен!"
interrupted: "%prefix%&eЛечение прервано!"
medkit:
need-shift: "%prefix%&eЗажмите Shift и стойте на месте для лечения."
not-injured: "%prefix%&cВы не ранены!"
empty: "%prefix%&cМедкит пуст!"
start: "%prefix%&aСамолечение... держите Shift и не двигайтесь."
actionbar: "&a⚕ %s %d%%"
done: "%prefix%&a✔ Вы вылечились!"
cancelled: "%prefix%&eЛечение прервано."
depleted: "&cYour medkit has been depleted!"
# ── Крюки ──────────────────────────────────────
# Крюки
hook:
stage1: "&#FFFF00Крюк: Фаза 1 — Не двигайтесь"
stage2: "&#FFA500Крюк: Фаза 2 — БОРИТЕСЬ!"
struggle-success: "&#00FF00Успех! Держитесь!"
struggle-fail: "&#FF0000Провал! Этап ускорен!"
sacrifice: "&#8B0000☠ Вы жертвованы..."
# Предметы
item:
found: "&#FFD700Найдено: %s"
medkit-use: "&#00FA9AИспользуете аптечку..."
medkit-depleted: "&#FF6347Аптечка закончилась"
flashlight-blind: "&#FFFF00Ослепили киллера! Уходите!"
flashlight-depleted: "&#FF6347Батарейка села"
key-hatch: "&#00CED1Ключ открывает люк!"
map-reveal: "&#87CEEBОбъекты показаны на карте"
chest-opening: "&#FFD700Открываете сундук..."
chest-found: "&#00FF00Нашли: %s"
sabotage:
start: "%prefix%&eДержите Shift для саботажа крюка..."
need-cutter: "%prefix%&cДля саботажа крюка нужны ножницы!"
actionbar: "&e⚙ Саботаж крюка: %d%%"
done: "%prefix%&aКрюк сломан!"
broadcast: "%prefix%&e⚙ Крюк был сломан выжившим!"
recovery: "%prefix%&7🔧 Крюк восстановлен."
rescue:
start: "%prefix%&eСпасаем... держите Shift!"
too-far: "%prefix%&cСлишком далеко! Спасение прервано."
victim-saved: "%prefix%&aВас спасли! Бегите!"
rescuer-actionbar: "%prefix%&aСоюзник спасён!"
rescuer-done: "%prefix%&aСпасение завершено!"
struggle:
hold-shift: "%prefix%&eДержите Shift чтобы вырваться с крюка..."
subtitle: "&eПрисядь когда будешь в зоне!"
actionbar: "&6Попытка вырваться: %d%%"
success: "%prefix%&aВы вырвались с крюка!"
fail: "%prefix%&cПопытка не удалась! (%d/%d)"
sacrifice: "%prefix%&4Сущность поглотила вас!"
sacrifice:
message: "%prefix%&4Вы были принесены в жертву. Наблюдайте за матчем."
title: "☠"
subtitle: "&cYou have been sacrificed"
broadcast: "%s has been sacrificed to the Entity"
# Эндгейм
endgame:
gates-powered: "&#00FF00Ворота запитаны! Бегите!"
gates-opening: "&#FFD700Открываете ворота..."
hatch-open: "&#4B0082Люк открыт! Сбегите!"
hatch-escape: "&#00FF00✓ Вы сбежали через люк!"
escape: "&#00FF00✓ ПОБЕГ!"
# ── Сундуки ────────────────────────────────────
# Ошибки
error:
no-permission: "&#FF0000У вас нет прав!"
not-in-game: "&#FF6347Вы не в игре!"
already-in-game: "&#FF6347Вы уже в игре!"
game-full: "&#FF6347Игра заполнена!"
no-game: "&#FF6347Нет активной игры!"
not-survivor: "&#FF6347Только для выживших!"
not-killer: "&#FF6347Только для киллера!"
chest:
empty: "&cThis chest is empty!"
opening: "&eOpening chest..."
cancelled: "&cOpening cancelled!"
too-far: "%prefix%&cСлишком далеко!"
actionbar: "&6Открытие: %s %d%%"
found: "%prefix%&aВы нашли: %s"
door-open: "&aОткрываем ворота... (зажмите ПКМ)"
door-opened: "&aВорота открыты!"
door-nearby: "&cНет ворот поблизости!"
door-no-power: "&cВорота обесточены!"
door-already: "&aВорота уже открыты!"
door-interrupted: "&7Открытие прервано!"
door-actionbar: "&aОткрываем ворота... (зажмите ПКМ)"
# ── Люк ────────────────────────────────────────
hatch:
too-far: "&cПодойдите ближе к люку!"
hidden: "&7Люк скрыт..."
closed: "&cЛюк закрыт!"
open-notify: "&e&lЛюк открыт!"
escape-title: "&a&lПОБЕГ!"
escape-subtitle: "&7Вы сбежали через люк!"
reward: "&a+5000 Очков — Побег через люк!"
# ── Игрок вышел ────────────────────────────────
quit:
killer-disconnect: "%prefix%&cКиллер покинул игру. Игра завершена."
survivor-left: "%prefix%&eВыживший покинул игру. Осталось живых: %d"
# ── Мини-игры ──────────────────────────────────
minigames:
generator-roulette:
title: "⚡ Skill Check!"
success-label: "✓ Нажми!"
text-skillcheck:
subtitle: "&eНажми ПКМ или отпусти шифт в зоне!"
# ── Использование команд ───────────────────────
usage:
dbd-header: "&6=== DBD Команды ==="
dbd-join: "&7/dbd join [name] — присоединиться к игре/лобби"
dbd-leave: "&7/dbd leave — покинуть игру"
dbd-lobby: "&7/dbd lobby — телепорт в лобби"
dbd-create: "&7/dbd create — создать лобби"
dbd-list: "&7/dbd list — список лобби"
dbd-delete: "&7/dbd delete — удалить лобби"
dbd-admin: "&e/dbd admin — управление игроками в матче"
dbd-forcestart: "&e/dbd forcestart — форс старт"
dbd-stop: "&e/dbd stop — остановить игру"
dbd-reload: "&e/dbd reload — перезагрузить конфиги"
dbd-setlobby: "&e/dbd setlobby — установить точку лобби"
dbd-save: "&e/dbd save — сохранить карту"
dbd-load: "&e/dbd load — загрузить карту"
admin-header: "&6=== /dbd admin ==="
admin-heal: "&6/dbd admin heal [игрок]"
admin-down: "&6/dbd admin down [игрок]"
admin-unhook: "&6/dbd admin unhook [игрок]"
admin-state: "&6/dbd admin state <игрок> <статус>"
admin-hooks: "&6/dbd admin hooks <игрок> <0-3>"
admin-kill: "&6/dbd admin kill [игрок]"
admin-jump: "&6/dbd admin jump [on/off] — вкл/выкл прыжки"
setup-header: "&6=== DBD Setup ==="
setup-wand: "&6/dbdsetup wand — Получить ванд (ЛКМ/ПКМ для ворот)"
setup-hook: "&6/dbdsetup set hook — Установить крюк (ломай блок)"
setup-chest: "&6/dbdsetup set chest — Установить сундук"
setup-generator: "&6/dbdsetup set generator — Установить генератор"
setup-killer-spawn: "&6/dbdsetup set killer-spawn — Спавн киллера (только 1)"
setup-survivor-spawn: "&6/dbdsetup set survivor-spawn — Спавн выжившего (до 4)"
setup-gate: "&6/dbdsetup set gate A|B — Установить ворота (из точек ванда)"
setup-clear-spawns: "&6/dbdsetup clear-spawns — Очистить все спавны"
setup-lobby: "&6/dbdsetup lobby — Установить точку лобби"
admin-list-header: "&6=== DBD Admin ==="
admin-list-list: "&6/dbdadmin list — Список всех объектов"
admin-list-type: "&6/dbdadmin list <тип> — Список по типу"
admin-world: "&6/dbdadmin world <game|мир> — Телепорт в мир"