WorldGuard и WorldEdit: защита регионов на сервере Minecraft
Как выделить территорию через WorldEdit, сделать регион в WorldGuard, выдать права соседям и закрыть ломание блоков и PvP. С командами и примерами.
Содержание 19
- Коротко
- Как работают регионы
- Шаги
- 1. Установите WorldGuard и WorldEdit
- 2. Выделите территорию
- 3. Создайте регион
- 4. Задайте флаги
- 5. Добавьте участников
- 6. Ограничьте команды через LuckPerms
- Как сделать в панели EGN
- Частые ошибки
- Пример: защита спавна и магазина
- Таблица частых флагов
- Итог
- Вопросы и ответы
- Нужен ли WorldEdit, если есть WorldGuard?
- Как запретить ломание блоков во всём мире?
- Может ли участник региона менять его флаги?
- Что будет с регионом, если удалить игрока с сервера?
Первый же строитель, который пришёл на сервер, любит своё здание. Второй игрок может не знать, что на этом месте уже чей-то дом, и снести его одним взрывом. Чтобы такого не происходило, на 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 и другие.
Важны три вещи.
- Владелец (owner) может менять регион и выдавать права. Обычно это тот, кто создал регион.
- Участник (member) может строить и ломать, если флаги этого разрешают.
- Приоритет решает, какой регион главный, когда области перекрываются. Чем выше число, тем важнее регион.
Есть и глобальный регион __global__, который покрывает весь мир. Правила в нём действуют везде, где нет более приоритетного региона.
Схема выше показывает логику. Спавн защищён, и в его пределах запрещено ломать блоки. Дом 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 нужен только как инструмент выделения.
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 trueworldedit.* включает все команды WorldEdit, worldguard.region.define разрешает /rg define, worldguard.region.claim — /rg claim (его обычно дают игрокам, если они сами заявляют участки). Полный список прав WorldGuard приведён на worldguard.enginehub.org (раздел Permissions): сверяйтесь с ним, прежде чем что-то выдавать. Проверить результат для игрока можно командой lp user <ник> permission check worldedit.wand. Подробнее про группы в статье LuckPerms.
Как сделать в панели EGN
- «Моды и плагины» → «Каталог» → установите WorldGuard и WorldEdit, затем «Перезапустить сервер».
- «Файлы» →
plugins/WorldGuard/worlds/<мир>/regions.yml: здесь хранятся регионы (при хранилище по умолчанию). Не правьте файл при работающем сервере: плагин держит регионы в памяти и может перезаписать ваши изменения. Меняйте регионы командами либо сначала остановите сервер. - «Консоль» — выполняйте
/rgи LuckPerms-команды. - «Бэкапы» — перед удалением регионов или массовой правкой сделайте снимок. Откат вернёт файлы регионов.
Частые ошибки
| Симптом | Причина | Решение |
|---|---|---|
/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
Читать далее
Вся рубрика →Обновление плагинов Minecraft без поломок: порядок действий
Как читать changelog, обновлять плагины по одному, проверять лог после запуска и откатываться через историю в панели EGN. С таблицей симптомов и причин.
Offline-режим Minecraft: плагин авторизации и чем это опасно
Что меняет online-mode=false, как работает плагин авторизации вроде AuthMe, почему пиратский вход открывает кражу ников и как защититься правами и белым списком.
Прокси Minecraft и защита от ботов: что закрыть и как проверить
Как защитить сеть Minecraft за прокси от ботов и подмены игроков: online-mode, секрет передачи данных, закрытые бэкенды и проверка через тестовый вход.