WorldGuard и WorldEdit: защита регионов на сервере Minecraft

Как выделить территорию через WorldEdit, сделать регион в WorldGuard, выдать права соседям и закрыть ломание блоков и PvP. С командами и примерами.

Команда EGN 9 мин чтения
WorldGuard и WorldEdit: защита регионов на сервере Minecraft
Содержание 19
  1. Коротко
  2. Как работают регионы
  3. Шаги
  4. 1. Установите WorldGuard и WorldEdit
  5. 2. Выделите территорию
  6. 3. Создайте регион
  7. 4. Задайте флаги
  8. 5. Добавьте участников
  9. 6. Ограничьте команды через LuckPerms
  10. Как сделать в панели EGN
  11. Частые ошибки
  12. Пример: защита спавна и магазина
  13. Таблица частых флагов
  14. Итог
  15. Вопросы и ответы
  16. Нужен ли WorldEdit, если есть WorldGuard?
  17. Как запретить ломание блоков во всём мире?
  18. Может ли участник региона менять его флаги?
  19. Что будет с регионом, если удалить игрока с сервера?

Первый же строитель, который пришёл на сервер, любит своё здание. Второй игрок может не знать, что на этом месте уже чей-то дом, и снести его одним взрывом. Чтобы такого не происходило, на Paper используют два плагина вместе. WorldEdit выделяет территорию и умеет массово менять блоки. WorldGuard превращает выделенный кусок мира в регион, для которого вы задаёте правила: кто может ломать блоки, есть ли PvP, кто владелец.

Разберём установку, выделение, создание региона, флаги, участников и права. Примеры для Paper 1.21.1 и ветки WorldGuard 7.0.x с WorldEdit 7.x: оба плагина есть в каталоге Modrinth, а значит и в каталоге панели EGN.

Коротко

Чтобы защитить территорию на Paper 1.21.1, выделите её в WorldEdit: //wand, затем левой кнопкой блок первого угла и правой — второго. Потом выполните /rg claim <имя> — регион создан и принадлежит вам. Запрет ломания ставится флагом: /rg flag <имя> block-break deny, а соседей добавляют командой /rg addmember <имя> <ник>.

Как работают регионы

WorldGuard хранит регионы для каждого мира отдельно, в файлах plugins/WorldGuard/worlds/<мир>/regions.yml. Регион — это объём: прямоугольник по осям X, Y и Z. Внутри него действуют флаги — правила: block-break, pvp, mob-spawning и другие.

Важны три вещи.

  1. Владелец (owner) может менять регион и выдавать права. Обычно это тот, кто создал регион.
  2. Участник (member) может строить и ломать, если флаги этого разрешают.
  3. Приоритет решает, какой регион главный, когда области перекрываются. Чем выше число, тем важнее регион.

Есть и глобальный регион __global__, который покрывает весь мир. Правила в нём действуют везде, где нет более приоритетного региона.

Регионы WorldGuard: глобальный регион, спавн с приоритетом 10 и дом игрока с приоритетом 20
Регионы WorldGuard: глобальный регион, спавн с приоритетом 10 и дом игрока с приоритетом 20

Схема выше показывает логику. Спавн защищён, и в его пределах запрещено ломать блоки. Дом Steve_EGN имеет приоритет выше, поэтому внутри него действуют его собственные флаги, даже если они мягче глобальных.

Шаги

1. Установите WorldGuard и WorldEdit

Откройте «Моды и плагины» → «Каталог», выберите «Paper — плагины» и версию 1.21.1. Найдите WorldGuard и WorldEdit, установите оба и нажмите «Перезапустить сервер». WorldGuard 7 требует WorldEdit как обязательную зависимость и без него не загрузится, а команды /rg claim и /rg define берут границы из выделения WorldEdit.

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

2. Выделите территорию

Выдайте себе инструмент выделения командой //wand: по умолчанию это деревянный топор. Нужно право worldedit.wand (у оператора оно есть, остальным выдаётся через LuckPerms).

Терминал
//wand
  • Левый клик по блоку — первый угол выделения (//pos1).
  • Правый клик по противоположному углу — второй (//pos2).

Выделение видно в игре подсветкой. Если нужно точно задать углы, введите координаты командами //pos1 x,y,z и //pos2 x,y,z (координаты через запятую без пробелов).

Для быстрого изменения блоков в выделении используйте //set <блок>, например //set stone. Ошиблись — //undo отменит последнюю правку в вашей сессии. Для защиты территории WorldEdit нужен только как инструмент выделения.

Порядок выделения в WorldEdit и отмена правки
Порядок выделения в WorldEdit и отмена правки

3. Создайте регион

Когда выделение готово, выполните:

Терминал
/rg claim spawn

Регион spawn создан, владелец — вы. Если имя уже занято, выберите другое или удалите старый регион командой /rg remove <имя>. Проверить параметры региона можно через /rg info <имя>, а список всех регионов мира — /rg list.

Регион, созданный через /rg claim, привязан к вашему нику: команда рассчитана на игроков с правом worldguard.region.claim. Для серверных территорий, которыми владеет администрация, есть команда /rg define <имя>: она создаёт регион по выделению без владельца (право worldguard.region.define), а владельцев и участников вы добавляете позже. Команды /rg требуют выделения, поэтому из консоли сервера их не выполнить, делайте это в игре.

4. Задайте флаги

Флаги включают правила внутри региона. Базовый набор для спавна:

Терминал
/rg flag spawn block-break deny
/rg flag spawn block-place deny
/rg flag spawn pvp deny
/rg flag spawn mob-spawning deny
/rg flag spawn greeting "Добро пожаловать на спавн"

deny запрещает действие, allow разрешает его даже там, где глобально запрещено. Флаг greeting выводит приветствие при входе в регион, а farewell — при выходе.

Чтобы убрать флаг, используйте /rg flag spawn block-break без значения. Тогда действует правило из родительского региона или глобального.

5. Добавьте участников

Соседи и друзья получают права через участников:

Терминал
/rg addmember spawn Alex_EGN
/rg addowner spawn Admin_EGN
/rg removemember spawn Alex_EGN

Участник может строить там, где флаги разрешают строить участникам. Владелец получает больше: может менять флаги и добавлять других людей. Выдавайте владельца только тем, кому доверяете полностью.

6. Ограничьте команды через LuckPerms

WorldEdit и WorldGuard — мощные инструменты. Игрок с правом //set может заменить здание в один клик. Поэтому базовым игрокам эти команды не выдают. Пример для группы default и группы admin:

Терминал
lp group default permission unset worldedit.*
lp group admin permission set worldedit.* true
lp group admin permission set worldguard.region.define true
lp group default permission set worldguard.region.claim true

worldedit.* включает все команды WorldEdit, worldguard.region.define разрешает /rg define, worldguard.region.claim — /rg claim (его обычно дают игрокам, если они сами заявляют участки). Полный список прав WorldGuard приведён на worldguard.enginehub.org (раздел Permissions): сверяйтесь с ним, прежде чем что-то выдавать. Проверить результат для игрока можно командой lp user <ник> permission check worldedit.wand. Подробнее про группы в статье LuckPerms.

Как сделать в панели EGN

  1. «Моды и плагины» → «Каталог» → установите WorldGuard и WorldEdit, затем «Перезапустить сервер».
  2. «Файлы» → plugins/WorldGuard/worlds/<мир>/regions.yml: здесь хранятся регионы (при хранилище по умолчанию). Не правьте файл при работающем сервере: плагин держит регионы в памяти и может перезаписать ваши изменения. Меняйте регионы командами либо сначала остановите сервер.
  3. «Консоль» — выполняйте /rg и LuckPerms-команды.
  4. «Бэкапы» — перед удалением регионов или массовой правкой сделайте снимок. Откат вернёт файлы регионов.

Частые ошибки

Симптом Причина Решение
/rg claim пишет «Сначала выделите территорию» Не выполнен //pos1 и //pos2 или выделение в другом мире Выделите заново в нужном мире и повторите команду
Игрок пишет «Вы не можете строить здесь» Регион защищён флагом block-place deny для его группы Добавьте игрока участником или поменяйте флаг
Флаги «не работают» после правки regions.yml Сервер перезаписал файл из памяти Меняйте регион командами или остановите сервер перед правкой
Флаги «не работают» только для вас У оператора и у обладателей * автоматически есть права обхода защиты Проверяйте защиту тестовым аккаунтом без op и без *
Регионы перекрываются, а правило не то Приоритет у другого региона Проверьте /rg info <имя> и поменяйте приоритет через /rg setpriority
Ломают блоки за пределами региона Флаг стоит только в регионе, а глобально разрешено Задайте флаг в __global__ или расширьте регион
Игрок вырезал чужое здание через WorldEdit У группы есть worldedit.* Ограничьте права LuckPerms и проверьте permission check

Заметьте: //undo отменяет только вашу сессию WorldEdit. Если вы ошиблись сутки назад, понадобится откат блоков. Для этого подходит CoreProtect, и о нём статья CoreProtect: откат гриферства.

Пример: защита спавна и магазина

Возьмём типичный сервер: спавн с торговыми лавками и отдельный общий мир для добычи. Задача — запретить ломать лавки и PvP на спавне, но оставить добычу свободной.

Сначала создаём регион спавна и отключаем всё лишнее:

Терминал
/rg claim spawn
/rg flag spawn pvp deny
/rg flag spawn block-break deny
/rg flag spawn block-place deny
/rg flag spawn mob-spawning deny
/rg setpriority spawn 10

Затем регион магазина внутри спавна. Он должен иметь приоритет выше, иначе правила спавна перекроют его:

Терминал
/rg claim shop_1
/rg flag shop_1 chest-access allow
/rg flag shop_1 block-break deny
/rg setpriority shop_1 20
/rg addmember shop_1 Seller_EGN

Флаг chest-access разрешает открывать сундуки и тем, кто не является участником. Так покупатели смогут пользоваться магазином, но не ломать сам блок. Проверьте результат двумя тестовыми аккаунтами: один должен мочь открыть лавку, второй — не мочь ломать её.

Для добычи отдельного мира достаточно глобальных правил: регионов в нём нет, а __global__ оставляет его открытым. Если нужно ограничить и его, задайте флаги в __global__ командами /rg flag __global__ <флаг> <значение>.

Таблица частых флагов

Флаг Что делает Пример значения
block-break ломание блоков deny
block-place установка блоков deny
pvp урон между игроками deny
mob-spawning появление мобов deny
chest-access доступ к сундукам allow или deny
greeting сообщение при входе "Вы на спавне"

Полный список флагов зависит от версии WorldGuard. Если нужного флага нет, сверьтесь со справкой плагина.

Итог

Работа с регионами складывается из четырёх действий: выделить WorldEdit, создать регион /rg claim, задать флаги и добавить участников. Если вы ограничили WorldEdit через LuckPerms, посторонние не смогут менять территорию, даже случайно. Регионы удобно проверять через /rg info и permission check, а файлы держать под бэкапами.

Если игроки должны сами заявлять приваты на участки, посмотрите GriefPrevention: он решает ту же задачу «заявками» и часто заменяет WorldGuard целиком. Про остальные меры читайте в статье Защита от гриферов.

Вопросы и ответы

Нужен ли WorldEdit, если есть WorldGuard?

Да, WorldEdit обязателен: WorldGuard 7 использует его как зависимость и выделение берёт у него. Без WorldEdit WorldGuard не запустится.

Как запретить ломание блоков во всём мире?

Выполните /rg flag __global__ block-break deny: запрет действует в мире везде, где регион не задаёт своё значение флага. Если в вашей версии поведение для участников регионов отличается, проверьте результат тестовым аккаунтом, а не по описанию.

Может ли участник региона менять его флаги?

Нет, участник только строит. Менять флаги могут администраторы с соответствующими правами WorldGuard, а владелец региона — только если вы выдали ему права на команду /rg flag (их перечень есть в разделе Permissions документации WorldGuard).

Что будет с регионом, если удалить игрока с сервера?

Регион останется в regions.yml вместе со списком владельцев. Если игрок больше не играет, добавьте нового владельца командой /rg addowner и снимите старого /rg removeowner.

Сервер под Minecraft за пару минут — egnetwork.ru

Читать далее

Вся рубрика →