Skip to content

imApeki/ShieldyBlocks

Repository files navigation

ShieldyBlocks

ShieldyBlocks - плагин для привата территорий через установку специальных блоков. Игрок ставит настроенный блок, плагин создаёт регион в WorldGuard, назначает владельца, показывает голограмму и хранит данные в SQLite.

Функции

  • Приват создаётся без команд и без ручной разметки.
  • У разных блоков можно настроить свой радиус, прочность, лимиты и внешний вид.
  • У региона есть владелец и список участников.
  • При разрушении блока привата регион удаляется автоматически.
  • Поддерживаются уникальные блоки, которые нельзя просто так достать из мира.
  • Над регионом отображается голограмма через DecentHolograms.

Требования

  • Сервер на Paper 1.16.5+.
  • Установленный плагин WorldGuard.
  • Установленный плагин DecentHolograms.

Как это работает

  1. Игрок получает или берёт приват-блок.
  2. Ставит его в мире.
  3. ShieldyBlocks проверяет лимит регионов игрока и пересечение с уже существующими регионами WorldGuard.
  4. Если всё корректно, создаётся регион.
  5. Владелец региона становится владельцем в WorldGuard, а данные региона сохраняются в базу .

Если блок привата сломан киркой участником региона или уничтожен взрывом, регион удаляется.
Поршнями двигать приват-блоки нельзя.

Что важно знать администратору

Конфиг

Основной файл: plugins/ShieldyBlocks/config.yml

В конфиге настраиваются:

  • глобальные лимиты регионов;
  • тексты сообщений;
  • текст и параметры голограмм;
  • список приват-блоков.

Каждый блок в секции blocks имеет свой уникальный ключ, например common или silent. Именно этот ключ используется в командах и хранится в базе.

Настройка блока

Для каждого блока можно задать:

  • display-name - отображаемое название блока/типа региона;
  • material - материал блока;
  • unique - требуется ли специальный выданный блок с PDC-меткой;
  • radius - радиус привата по всем координатам, включая y;
  • durability - максимальная прочность региона;
  • hologram.member-view-distance - дальность показа голограммы участникам;
  • hologram.other-view-distance - дальность показа голограммы всем остальным.

Если unique: true, обычный блок такого материала не подойдёт. Такой регион можно поставить только блоком, выданным через /ps give.

Лимиты

Лимиты задаются в секции limits:

  • default - базовый лимит для всех игроков;
  • overrides - лимиты по правам.

Пример в дефолтном конфиге:

  • shieldyblocks.limit.vip -> 3 региона
  • shieldyblocks.limit.premium -> 5 регионов

Прочность региона

У каждого типа блока есть прочность.
При взрыве динамитом прочность уменьшается на 1.

База данных

Используется SQLite. База создаётся автоматически при запуске.

В регионах хранятся:

  • внутренний id;
  • ник владельца;
  • список никнеймов участников;
  • block_id из конфига;
  • мир и координаты блока;
  • текущее и максимальное значение прочности.

Команды

Основная команда: /shieldyblocks
Алиас: /ps

Игрокам

  • /ps add [номер] <ник> - добавить игрока в свой регион.
  • /ps remove [номер] <ник> - удалить игрока из своего региона.
  • /ps list - показать список своих регионов.

Если номер региона не указан, плагин пытается взять регион, в котором стоит игрок.
Нумерация регионов у каждого игрока своя и строится по возрастанию внутренних id.

Администраторам

Право: shieldyblocks.admin

  • /ps reload - перезагрузить конфиг и runtime-состояние плагина.
  • /ps give <игрок> <block-id> - выдать настроенный приват-блок.

/ps give особенно нужна для блоков с unique: true.

Сборка

Для локальной сборки используется команда:

./gradlew build

Готовый .jar появится в build/libs/.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages