fix: build — add test dependencies, fix ProGuard, remove obfuscation from default build

This commit is contained in:
loki5512344 2026-06-14 16:21:31 +02:00
parent 7c7562a8d4
commit 183df22d13
6 changed files with 1025 additions and 493 deletions

View file

@ -1,489 +1,489 @@
# Dead by Daylight Plugin — Руководство команд
**Версия:** 1.2
**Обновлено:** Июнь 2026
**Платформа:** Minecraft 1.21.5 (Paper)
---
## Содержание
1. [Фазы игры](#фазы-игры)
2. [Команды игроков — /dbd](#команды-игроков--dbd)
3. [Команды администратора — /dbdadmin](#команды-администратора--dbdadmin)
4. [Команды настройки карты — /dbdsetup](#команды-настройки-карты--dbdsetup)
5. [Права доступа](#права-доступа)
6. [Порядок настройки сервера](#порядок-настройки-сервера)
7. [Таблица всех команд](#таблица-всех-команд)
---
## Фазы игры
```
LOBBY
Игроки делают /dbd join → телепорт в мир lobby
Action bar показывает: ▶ Старт через: 45с ████████░░ (3/5)
Когда набралось минимум игроков — идёт отсчёт 60 сек
При нехватке игроков — таймер сбрасывается
↓
ROLE ASSIGN (5 сек)
Случайно выбирается 1 киллер, остальные — выжившие
Показывается тайтл с ролью
Все телепортируются на свои спавны в мире game
↓
GAMEPLAY
Выжившие чинят генераторы (нужно 5 из 7)
Киллер охотится
При починке всех нужных генераторов — открываются ворота
↓
ENDGAME (2 минуты)
Выжившие открывают ворота и убегают
Или используют люк (если остался 1 выживший)
Коллапс через 120 сек убивает всех оставшихся
```
---
## Команды игроков — /dbd
Все команды ниже доступны любому игроку (`mdbd.player`, по умолчанию `true`).
---
### /dbd join
Присоединиться к игровой очереди.
```
/dbd join
```
- Добавляет игрока в текущую сессию как выжившего (роль назначится позже)
- Телепортирует в мир `lobby`
- В action bar начинает отображаться счётчик и таймер
- Если игра не создана — сообщение об ошибке
```
→ [DBD] Вы присоединились к игре!
→ [DBD] PlayerName присоединился к очереди! (1/5)
```
---
### /dbd leave
Покинуть сессию.
```
/dbd leave
```
- В лобби: просто убирает из очереди, таймер может сброситься
- В игре: выживший считается мёртвым, киллер завершает игру
- Игрок телепортируется обратно в `lobby`
```
→ [DBD] Вы покинули игру
```
---
### /dbd lobby
Телепортироваться в лобби-мир.
```
/dbd lobby
```
- Работает в любой момент, не убирает из сессии
- Телепортирует на точку спавна лобби (из `locations.yml`) или на спавн мира `lobby`
```
→ [DBD] Вы телепортированы в лобби!
```
---
## Команды администратора — /dbd (admin)
Требуют право `mdbd.admin` (по умолчанию только OP).
---
### /dbd create
Создать новую игровую сессию.
```
/dbd create
```
- Создаёт сессию и открывает лобби
- Нельзя создать вторую сессию пока первая активна
```
→ [DBD] Игра создана!
→ [DBD] Игра уже существует (если уже есть)
```
---
### /dbd forcestart
Принудительно запустить игру, пропустив таймер.
```
/dbd forcestart
```
- Работает только если сессия в фазе LOBBY
- Игроков в очереди может быть меньше минимума
```
→ [DBD] Игра форсирована!
```
---
### /dbd stop
Немедленно завершить текущую сессию.
```
/dbd stop
```
- Все игроки телепортируются в `lobby`
- Сессия уничтожается, можно создавать новую
```
→ [DBD] Игра остановлена
```
---
### /dbd reload
Перезагрузить все конфиги без перезапуска сервера.
```
/dbd reload
```
Перезагружает: `config.yml`, `game.yml`, `messages.yml`, `skillcheck.yml`, `locations.yml`, `generators.yml`
```
→ [DBD] Конфиги перезагружены!
```
> Если игра в процессе — сначала `/dbd stop`, иначе новые настройки применятся только к следующей сессии.
---
### /dbd setlobby
Установить текущую позицию игрока как точку спавна лобби.
```
/dbd setlobby
```
- Сохраняется в `locations.yml`
- Эквивалентно `/dbdsetup lobby`
```
→ [DBD] Лобби установлено!
```
---
## Команды администратора — /dbdadmin
Требуют право `mdbd.admin`. Все команды только для игроков (не консоли).
---
### /dbdadmin create generator
Режим расстановки генераторов.
```
/dbdadmin create generator
```
- Включает режим: в action bar оранжевая подсказка
- **Сломай блок** — координаты сохранятся, блок не разрушится
- Повторная команда — отключает режим
- Режим остаётся активным для нескольких генераторов подряд
```
→ Режим выбора генератора включен!
→ Сломайте блок, чтобы установить генератор
(сломал блок)
→ Генератор установлен! Всего: 1
```
**Tab complete:** `generator`
---
### /dbdadmin list
Список всех установленных генераторов.
```
/dbdadmin list
```
```
=== Генераторы (3) ===
[0] game:100.00,64.00,200.00
[1] game:150.00,64.00,150.00
[2] game:200.00,64.00,100.00
```
---
### /dbdadmin remove \<id\>
Удалить генератор по ID из списка.
```
/dbdadmin remove 0
```
**Tab complete:** подсказывает существующие ID (0, 1, 2...)
```
→ Генератор удален: game:100.00,64.00,200.00
→ Генератор с ID 5 не найден (если нет такого)
```
---
### /dbdadmin clear
Удалить все генераторы.
```
/dbdadmin clear
```
> Необратимо.
```
→ Все генераторы удалены
```
---
### /dbdadmin world \<мир\>
Телепортироваться в указанный мир для настройки карты.
```
/dbdadmin world lobby
/dbdadmin world game
/dbdadmin world <любое_название_мира>
```
- `lobby` — телепорт в мир-лобби (void, платформа 7x7)
- `game` — телепорт в игровой мир
- Любое другое название — телепорт в мир с таким именем (если загружен)
```
→ Телепортирован в мир: lobby
→ Мир не найден: abc (если мир не существует)
```
**Tab complete:** `lobby`, `game`
---
## Команды настройки карты — /dbdsetup
Требуют право `mdbd.admin`.
---
### /dbdsetup wand
Выдать топорик для расстановки ворот.
```
/dbdsetup wand
```
- Выдаёт деревянный топорик (WOODEN_AXE) с подписью DBD Setup Wand
- **ЛКМ** по блоку = точка 1 (pos1)
- **ПКМ** по блоку = точка 2 (pos2)
- Только для ворот. Для остальных объектов ванд не нужен.
---
### /dbdsetup set \<тип\>
Войти в режим установки объекта. **Сломай блок** — объект установится на его месте, блок восстановится.
```
/dbdsetup set generator
/dbdsetup set hook
/dbdsetup set pallet
/dbdsetup set chest
/dbdsetup set killer-spawn
/dbdsetup set survivor-spawn
```
| Тип | Описание | Рекомендуемое кол-во |
|-----|----------|---------------------|
| `generator` | Генератор | 7 |
| `hook` | Крюк | 7–10 |
| `pallet` | Паллет | 15–20 |
| `chest` | Сундук | 5–10 |
| `killer-spawn` | Спавн киллера | 1 |
| `survivor-spawn` | Спавн выжившего | 4 |
```
→ Режим установки: hook
→ Сломай блок чтобы установить (блок восстановится)
(ломаешь блок)
→ Крюк установлен: [game, 150, 65, 200]
```
---
### /dbdsetup set gate A|B
Установить ворота через две точки топориком.
```
/dbdsetup wand — получить топорик
ЛКМ по блоку → точка 1 — нижний левый угол
ПКМ по блоку → точка 2 — верхний правый угол
/dbdsetup set gate A — установить ворота A в центре между точками
/dbdsetup set gate B — установить ворота B
```
Центр ворот вычисляется: X = средняя точка, Y = минимальная из двух.
```
→ [Wand] Точка 1: [game, 100, 64, 200]
→ [Wand] Точка 2: [game, 110, 64, 210]
→ Ворота A установлены: [game, 105, 64, 205]
```
---
### /dbdsetup build
Построить карту по шаблону и `locations.yml`.
```
/dbdsetup build
```
```
→ Строительство карты...
→ Карта построена!
```
---
### /dbdsetup clear
Очистить карту.
```
/dbdsetup clear
```
```
→ Очистка карты...
→ Карта очищена!
```
---
### /dbdsetup lobby
Установить спавн лобби на текущую позицию.
```
/dbdsetup lobby
```
Аналог `/dbd setlobby`. Сохраняется в `locations.yml`.
---
## Права доступа
| Право | Кому | Что даёт |
|-------|------|----------|
| `mdbd.player` | Все (`default: true`) | `/dbd join`, `leave`, `lobby` |
| `mdbd.admin` | OP (`default: op`) | Все остальные команды |
---
## Порядок настройки сервера
### Первый запуск
1. Запустить сервер — плагин создаст миры `lobby` и `game` автоматически
2. `/dbdadmin world lobby` — войти в лобби-мир и осмотреться (платформа 7x7)
3. `/dbd setlobby` — встать на нужную точку и сохранить спавн лобби
### Настройка игровой карты
4. `/dbdadmin world game` — перейти в игровой мир
5. Построить или загрузить карту
6. Расставить объекты:
- `/dbdsetup set generator` → ломать блоки для генераторов
- `/dbdsetup set hook` → ломать блоки для крюков
- `/dbdsetup set pallet` → ломать блоки для паллетов
- `/dbdsetup set chest` → ломать блоки для сундуков
7. Установить спавны:
- `/dbdsetup set killer-spawn` → спавн киллера
- `/dbdsetup set survivor-spawn` → 4 раза для выживших
8. Установить ворота:
- `/dbdsetup wand` → получить топорик
- ЛКМ/ПКМ по блокам → отметить углы ворот
- `/dbdsetup set gate A` и `/dbdsetup set gate B`
### Тест
8. `/dbd create` — создать сессию
9. `/dbd join` (5 игроков или меньше с форс-стартом)
10. `/dbd forcestart` — запустить не дожидаясь таймера
---
## Таблица всех команд
| Команда | Право | Описание |
|---------|-------|----------|
| `/dbd join` | player | Войти в очередь |
| `/dbd leave` | player | Покинуть сессию |
| `/dbd lobby` | player | Телепорт в лобби |
| `/dbd create` | admin | Создать сессию |
| `/dbd forcestart` | admin | Принудительный старт |
| `/dbd stop` | admin | Остановить игру |
| `/dbd reload` | admin | Перезагрузить конфиги |
| `/dbd setlobby` | admin | Сохранить спавн лобби |
| `/dbdadmin create generator` | admin | Режим расстановки генераторов |
| `/dbdadmin list` | admin | Список генераторов |
| `/dbdadmin remove <id>` | admin | Удалить генератор |
| `/dbdadmin clear` | admin | Очистить все генераторы |
| `/dbdadmin world <lobby\|game\|мир>` | admin | Телепорт в мир |
| `/dbdsetup wand` | admin | Топорик для ворот (ЛКМ/ПКМ) |
| `/dbdsetup set <тип>` | admin | Установить объект (сломать блок) |
| `/dbdsetup set gate A\|B` | admin | Установить ворота (из точек ванда) |
| `/dbdsetup build` | admin | Построить карту |
| `/dbdsetup clear` | admin | Очистить карту |
| `/dbdsetup lobby` | admin | Сохранить спавн лобби |
---
*Dead by Daylight Minecraft Plugin — актуально для версии 1.1+*
# Dead by Daylight Plugin — Руководство команд
**Версия:** 1.2
**Обновлено:** Июнь 2026
**Платформа:** Minecraft 1.21.5 (Paper)
---
## Содержание
1. [Фазы игры](#фазы-игры)
2. [Команды игроков — /dbd](#команды-игроков--dbd)
3. [Команды администратора — /dbdadmin](#команды-администратора--dbdadmin)
4. [Команды настройки карты — /dbdsetup](#команды-настройки-карты--dbdsetup)
5. [Права доступа](#права-доступа)
6. [Порядок настройки сервера](#порядок-настройки-сервера)
7. [Таблица всех команд](#таблица-всех-команд)
---
## Фазы игры
```
LOBBY
Игроки делают /dbd join → телепорт в мир lobby
Action bar показывает: ▶ Старт через: 45с ████████░░ (3/5)
Когда набралось минимум игроков — идёт отсчёт 60 сек
При нехватке игроков — таймер сбрасывается
↓
ROLE ASSIGN (5 сек)
Случайно выбирается 1 киллер, остальные — выжившие
Показывается тайтл с ролью
Все телепортируются на свои спавны в мире game
↓
GAMEPLAY
Выжившие чинят генераторы (нужно 5 из 7)
Киллер охотится
При починке всех нужных генераторов — открываются ворота
↓
ENDGAME (2 минуты)
Выжившие открывают ворота и убегают
Или используют люк (если остался 1 выживший)
Коллапс через 120 сек убивает всех оставшихся
```
---
## Команды игроков — /dbd
Все команды ниже доступны любому игроку (`mdbd.player`, по умолчанию `true`).
---
### /dbd join
Присоединиться к игровой очереди.
```
/dbd join
```
- Добавляет игрока в текущую сессию как выжившего (роль назначится позже)
- Телепортирует в мир `lobby`
- В action bar начинает отображаться счётчик и таймер
- Если игра не создана — сообщение об ошибке
```
→ [DBD] Вы присоединились к игре!
→ [DBD] PlayerName присоединился к очереди! (1/5)
```
---
### /dbd leave
Покинуть сессию.
```
/dbd leave
```
- В лобби: просто убирает из очереди, таймер может сброситься
- В игре: выживший считается мёртвым, киллер завершает игру
- Игрок телепортируется обратно в `lobby`
```
→ [DBD] Вы покинули игру
```
---
### /dbd lobby
Телепортироваться в лобби-мир.
```
/dbd lobby
```
- Работает в любой момент, не убирает из сессии
- Телепортирует на точку спавна лобби (из `locations.yml`) или на спавн мира `lobby`
```
→ [DBD] Вы телепортированы в лобби!
```
---
## Команды администратора — /dbd (admin)
Требуют право `mdbd.admin` (по умолчанию только OP).
---
### /dbd create
Создать новую игровую сессию.
```
/dbd create
```
- Создаёт сессию и открывает лобби
- Нельзя создать вторую сессию пока первая активна
```
→ [DBD] Игра создана!
→ [DBD] Игра уже существует (если уже есть)
```
---
### /dbd forcestart
Принудительно запустить игру, пропустив таймер.
```
/dbd forcestart
```
- Работает только если сессия в фазе LOBBY
- Игроков в очереди может быть меньше минимума
```
→ [DBD] Игра форсирована!
```
---
### /dbd stop
Немедленно завершить текущую сессию.
```
/dbd stop
```
- Все игроки телепортируются в `lobby`
- Сессия уничтожается, можно создавать новую
```
→ [DBD] Игра остановлена
```
---
### /dbd reload
Перезагрузить все конфиги без перезапуска сервера.
```
/dbd reload
```
Перезагружает: `config.yml`, `game.yml`, `messages.yml`, `skillcheck.yml`, `locations.yml`, `generators.yml`
```
→ [DBD] Конфиги перезагружены!
```
> Если игра в процессе — сначала `/dbd stop`, иначе новые настройки применятся только к следующей сессии.
---
### /dbd setlobby
Установить текущую позицию игрока как точку спавна лобби.
```
/dbd setlobby
```
- Сохраняется в `locations.yml`
- Эквивалентно `/dbdsetup lobby`
```
→ [DBD] Лобби установлено!
```
---
## Команды администратора — /dbdadmin
Требуют право `mdbd.admin`. Все команды только для игроков (не консоли).
---
### /dbdadmin create generator
Режим расстановки генераторов.
```
/dbdadmin create generator
```
- Включает режим: в action bar оранжевая подсказка
- **Сломай блок** — координаты сохранятся, блок не разрушится
- Повторная команда — отключает режим
- Режим остаётся активным для нескольких генераторов подряд
```
→ Режим выбора генератора включен!
→ Сломайте блок, чтобы установить генератор
(сломал блок)
→ Генератор установлен! Всего: 1
```
**Tab complete:** `generator`
---
### /dbdadmin list
Список всех установленных генераторов.
```
/dbdadmin list
```
```
=== Генераторы (3) ===
[0] game:100.00,64.00,200.00
[1] game:150.00,64.00,150.00
[2] game:200.00,64.00,100.00
```
---
### /dbdadmin remove \<id\>
Удалить генератор по ID из списка.
```
/dbdadmin remove 0
```
**Tab complete:** подсказывает существующие ID (0, 1, 2...)
```
→ Генератор удален: game:100.00,64.00,200.00
→ Генератор с ID 5 не найден (если нет такого)
```
---
### /dbdadmin clear
Удалить все генераторы.
```
/dbdadmin clear
```
> Необратимо.
```
→ Все генераторы удалены
```
---
### /dbdadmin world \<мир\>
Телепортироваться в указанный мир для настройки карты.
```
/dbdadmin world lobby
/dbdadmin world game
/dbdadmin world <любое_название_мира>
```
- `lobby` — телепорт в мир-лобби (void, платформа 7x7)
- `game` — телепорт в игровой мир
- Любое другое название — телепорт в мир с таким именем (если загружен)
```
→ Телепортирован в мир: lobby
→ Мир не найден: abc (если мир не существует)
```
**Tab complete:** `lobby`, `game`
---
## Команды настройки карты — /dbdsetup
Требуют право `mdbd.admin`.
---
### /dbdsetup wand
Выдать топорик для расстановки ворот.
```
/dbdsetup wand
```
- Выдаёт деревянный топорик (WOODEN_AXE) с подписью DBD Setup Wand
- **ЛКМ** по блоку = точка 1 (pos1)
- **ПКМ** по блоку = точка 2 (pos2)
- Только для ворот. Для остальных объектов ванд не нужен.
---
### /dbdsetup set \<тип\>
Войти в режим установки объекта. **Сломай блок** — объект установится на его месте, блок восстановится.
```
/dbdsetup set generator
/dbdsetup set hook
/dbdsetup set pallet
/dbdsetup set chest
/dbdsetup set killer-spawn
/dbdsetup set survivor-spawn
```
| Тип | Описание | Рекомендуемое кол-во |
|-----|----------|---------------------|
| `generator` | Генератор | 7 |
| `hook` | Крюк | 7–10 |
| `pallet` | Паллет | 15–20 |
| `chest` | Сундук | 5–10 |
| `killer-spawn` | Спавн киллера | 1 |
| `survivor-spawn` | Спавн выжившего | 4 |
```
→ Режим установки: hook
→ Сломай блок чтобы установить (блок восстановится)
(ломаешь блок)
→ Крюк установлен: [game, 150, 65, 200]
```
---
### /dbdsetup set gate A|B
Установить ворота через две точки топориком.
```
/dbdsetup wand — получить топорик
ЛКМ по блоку → точка 1 — нижний левый угол
ПКМ по блоку → точка 2 — верхний правый угол
/dbdsetup set gate A — установить ворота A в центре между точками
/dbdsetup set gate B — установить ворота B
```
Центр ворот вычисляется: X = средняя точка, Y = минимальная из двух.
```
→ [Wand] Точка 1: [game, 100, 64, 200]
→ [Wand] Точка 2: [game, 110, 64, 210]
→ Ворота A установлены: [game, 105, 64, 205]
```
---
### /dbdsetup build
Построить карту по шаблону и `locations.yml`.
```
/dbdsetup build
```
```
→ Строительство карты...
→ Карта построена!
```
---
### /dbdsetup clear
Очистить карту.
```
/dbdsetup clear
```
```
→ Очистка карты...
→ Карта очищена!
```
---
### /dbdsetup lobby
Установить спавн лобби на текущую позицию.
```
/dbdsetup lobby
```
Аналог `/dbd setlobby`. Сохраняется в `locations.yml`.
---
## Права доступа
| Право | Кому | Что даёт |
|-------|------|----------|
| `mdbd.player` | Все (`default: true`) | `/dbd join`, `leave`, `lobby` |
| `mdbd.admin` | OP (`default: op`) | Все остальные команды |
---
## Порядок настройки сервера
### Первый запуск
1. Запустить сервер — плагин создаст миры `lobby` и `game` автоматически
2. `/dbdadmin world lobby` — войти в лобби-мир и осмотреться (платформа 7x7)
3. `/dbd setlobby` — встать на нужную точку и сохранить спавн лобби
### Настройка игровой карты
4. `/dbdadmin world game` — перейти в игровой мир
5. Построить или загрузить карту
6. Расставить объекты:
- `/dbdsetup set generator` → ломать блоки для генераторов
- `/dbdsetup set hook` → ломать блоки для крюков
- `/dbdsetup set pallet` → ломать блоки для паллетов
- `/dbdsetup set chest` → ломать блоки для сундуков
7. Установить спавны:
- `/dbdsetup set killer-spawn` → спавн киллера
- `/dbdsetup set survivor-spawn` → 4 раза для выживших
8. Установить ворота:
- `/dbdsetup wand` → получить топорик
- ЛКМ/ПКМ по блокам → отметить углы ворот
- `/dbdsetup set gate A` и `/dbdsetup set gate B`
### Тест
8. `/dbd create` — создать сессию
9. `/dbd join` (5 игроков или меньше с форс-стартом)
10. `/dbd forcestart` — запустить не дожидаясь таймера
---
## Таблица всех команд
| Команда | Право | Описание |
|---------|-------|----------|
| `/dbd join` | player | Войти в очередь |
| `/dbd leave` | player | Покинуть сессию |
| `/dbd lobby` | player | Телепорт в лобби |
| `/dbd create` | admin | Создать сессию |
| `/dbd forcestart` | admin | Принудительный старт |
| `/dbd stop` | admin | Остановить игру |
| `/dbd reload` | admin | Перезагрузить конфиги |
| `/dbd setlobby` | admin | Сохранить спавн лобби |
| `/dbdadmin create generator` | admin | Режим расстановки генераторов |
| `/dbdadmin list` | admin | Список генераторов |
| `/dbdadmin remove <id>` | admin | Удалить генератор |
| `/dbdadmin clear` | admin | Очистить все генераторы |
| `/dbdadmin world <lobby\|game\|мир>` | admin | Телепорт в мир |
| `/dbdsetup wand` | admin | Топорик для ворот (ЛКМ/ПКМ) |
| `/dbdsetup set <тип>` | admin | Установить объект (сломать блок) |
| `/dbdsetup set gate A\|B` | admin | Установить ворота (из точек ванда) |
| `/dbdsetup build` | admin | Построить карту |
| `/dbdsetup clear` | admin | Очистить карту |
| `/dbdsetup lobby` | admin | Сохранить спавн лобби |
---
*Dead by Daylight Minecraft Plugin — актуально для версии 1.1+*