44kCabins добавляет кабинки (арены 1v1) прямо на спавне или в любом месте карты.
Игроки заходят в регион кабинки, после чего при достижении минимального количества участников запускается дуэль с таймером старта, закрывающимися дверями, защитой от посторонних и вознаграждением победителя.
Основные возможности:
Особенности:
Игроки с этими правами не ограничиваются анти‑телепортом и анти‑входом, могут контролировать дуэли и отлаживать плагин.
Для некоторых сообщений доступны плейсхолдеры:
Поля:
Игроки заходят в регион кабинки, после чего при достижении минимального количества участников запускается дуэль с таймером старта, закрывающимися дверями, защитой от посторонних и вознаграждением победителя.
Основные возможности:
- неограниченное число кабинок, каждая со своим регионом и настройками;
- автоматический старт дуэли при min_players и блокировка входа/выхода во время боя;
- защита от попадания в кабинку через эндер‑пёрлы, команды, порталы и т.п.;
- кастомные сообщения (чат, title, subtitle, actionbar) через конфиг;
- API для внешних аддонов (выдача наград, статистика и т.д.).
Установка
- Установить
Spigot/Paperподходящей версии (рекомендуется 1.16+). - Скопировать
44kCabins.jarв папкуplugins/. - Запустить сервер, чтобы сгенерировались
config.ymlи базовая структура данных плагина. - При необходимости остановить сервер и отредактировать
config.yml, затем снова запустить.
Команды и права
Команды
| Команда | Описание | Право |
|---|---|---|
| /44kcabins help | Список команд и краткая справка | 44kcabins.admin |
| /44kcabins selector | Выдаёт топор выделения региона кабинки | 44kcabins.admin |
| /44kcabins create <имя> | Создаёт кабинку по текущему выделению | 44kcabins.admin |
| /44kcabins add_door <имя> | Определяет/обновляет дверь для указанной кабинки | 44kcabins.admin |
| /44kcabins reload | Перезагружает конфиг и перечитывает кабинки | 44kcabins.admin |
Особенности:
- При
add_doorплагин автоматически подбирает материал двери: если все не воздушные блоки выделения одного материала, он используется как материал двери.
Права
| Право | По умолчанию | Назначение |
|---|---|---|
| 44kcabins.admin | op | Полный доступ: все команды, настройка кабинок, обход ограничений |
| 44kcabins.bypass | op | Обход защит входа/выхода (можно заходить/выходить в/из кабинок в любой момент) |
Игроки с этими правами не ограничиваются анти‑телепортом и анти‑входом, могут контролировать дуэли и отлаживать плагин.
Настройка конфигурации
Файлconfig.yml управляет:- глобальными сообщениями;
- форматом отображения (чат/title/subtitle/actionbar);
- настройками каждой кабинки (регион, таймеры, лимиты игроков, телепорты, двери).
Формат сообщений
В блокеmessages: каждое сообщение может быть:- одной строкой — тогда оно отправляется в чат;
- списком строк — каждая строка может быть помечена как title/subtitle/actionbar через специальные префиксы.
$$title$$— показать строку как title;$$subtitle$$— показать строку как subtitle;$$actionbar$$— показать строку в actionbar;- Строка без префикса — обычное сообщение в чат (с добавлением префикса из messages.prefix).
Пример [префиксы]:
messages:
duel_you_win:
- "$$title$$&aВы победили в дуэли!"
- "$$subtitle$$&fОтличный бой."
- "$$actionbar$$&eСоберите лут, пока есть время."
- "&7| &fЗаходите ещё!"Для некоторых сообщений доступны плейсхолдеры:
%name%— название кабинки в текстах, связанных с созданием/поиском;%sec%— количество секунд (в таймерах старта дуэли и времени на лут).
Настройки кабинок
Блокcabins: содержит набор кабинок, каждая — отдельная секция: Кабинки:
cabins:
example:
region:
pos1:
world: world
x: 0
y: 64
z: 0
pos2:
world: world
x: 10
y: 70
z: 10
timers:
start: 5 # секунды до начала дуэли после набора min игроков
end: 10 # время на лут после победы
players:
min: 2 # минимальное число игроков для старта
max: 2 # максимальное количество игроков внутри
teleport:
winner:
world: world
x: 0
y: 65
z: 20
yaw: 0
pitch: 0
outside:
world: world
x: 0
y: 65
z: 22
yaw: 0
pitch: 0
doors:
door_1:
material: GLASS
locations:
loc_1:
world: world
x: 0
y: 64
z: 0
loc_2:
world: world
x: 0
y: 65
z: 0- region.pos1/pos2 — два угла кубоида региона кабинки;
- timers.start — обратный отсчёт до начала дуэли (секунд), когда набрано минимум игроков;
- timers.end — время на сбор лута после победы до авто‑телепорта победителя;
- players.min/max — минимальное/максимальное число игроков в кабинке;
- teleport.winner — точка, куда будет телепортирован победитель после окончания времени на лут;
- teleport.outside — точка, куда телепортируются игроки, которых нужно вывести наружу (например, посторонние);
- doors.door_1 — описание двери: material и набор координат блоков двери.
Игровая логика
Жизненный цикл дуэли
- Игроки заходят в регион кабинки (через движение или телепорты).
- При достижении min_players запускается таймер timers.start, который оповещает игроков о времени до старта (чат/actionbar/title, настраивается через messages.duel_starting_countdown).
- По истечении таймера:
- двери закрываются;
- состояние кабинки становится «в бою»;
- урон разрешён только между участниками внутри этой кабинки;
- посторонние не могут войти (ни движением, ни телепортом, включая эндер‑пёрлы).
- При смерти одного игрока второй объявляется победителем:
- выводится сообщение duel_you_win;
- запускается таймер timers.end (время на лут) с отображением duel_loot_timer;
- по окончании победитель телепортируется в teleport.winner, двери открываются, состояние кабинки возвращается в «ожидание».
Защита от посторонних и телепортов [BETA]
- Любой телепорт, перемещающий игрока из‑вне внутрь региона кабинки, проходит проверку:
- если кабина в бою и игрок не участник — телепорт отменяется и выводится сообщение;
- если кабина заполнена (players.max) — телепорт отменяется;
- Телепорты участника дуэли из кабинки наружу во время боя блокируются (команды, эндер‑пёрлы, порталы и т.д.), чтобы нельзя было уйти из боя нечестно;
- Игроки в режиме наблюдателя (/gamemode spectator) не ограничиваются и могут пролётывать через регионы свободно;
- Игроки с 44kcabins.admin или 44kcabins.bypass также не ограничены защитой, что позволяет модераторам контролировать дуэли.
Аддоны и API
Плагин предоставляет простой API, позволяющий другим плагинам интегрироваться с 44kCabins (например, выдавать награды за победу, записывать статистику, интегрировать экономику через Vault и т.п.).Доступ к API
В другом плагине:- В plugin.yml аддона указать зависимость:
depend: [44kCabins] - В коде аддона получить API:
API:
import com.fourkay.cabins.Main;
import com.fourkay.cabins.api.CabinsAPI;
public class MyAddon extends JavaPlugin {
private CabinsAPI cabinsAPI;
@Override
public void onEnable() {
Main cabins = (Main) getServer().getPluginManager().getPlugin("44kCabins");
if (cabins == null || !cabins.isEnabled()) {
getLogger().severe("44kCabins не найден, отключаем аддон.");
getServer().getPluginManager().disablePlugin(this);
return;
}
this.cabinsAPI = cabins.getApi();
}
}Возможности API (основные методы)
Интерфейс CabinsAPI даёт доступ к:- получению кабинки по имени или локации;
- списку всех кабинок;
- определению, в какой кабинке находится игрок и в дуэли ли он;
- чтению/изменению настроек minPlayers/maxPlayers (с автосохранением в конфиге);
- принудительному завершению дуэли в конкретной кабинке.