Leukocyte
Серверная, региональная защита, управляемая через API или команды
- Загрузчики
- FabricQuilt
- Скачиваний на Modrinth
- 10,7 тыс.
- Подписчиков на Modrinth
- 45
- версий
- 19
- Обновлён
- 10 октября 202610 окт.
- Опубликован
- в 2021
Коротко о моде
Ставится только на сервер; игрокам ставить не нужно
Leukocyte
Leukocyte — простой мод защиты мира для Fabric с опциональной интеграцией с player-roles.
Основой защиты мира в leukocyte является «авторитет». Авторитет отвечает за применение определённых правил к игрокам в его пределах. У авторитета есть уникальное имя, а также приоритет («уровень») и набор исключений для игроков.
создание авторитетов
Чтобы создать пустой авторитет, выполните: `/protect add `.
Либо авторитет можно создать для применения в определённой области, например:
- `/protect add with universe` (применяется везде)
- `/protect add with ` (применяется в определённом измерении)
- `/protect add with ` (применяется внутри параллелепипеда между двумя координатами блоков)
Позже авторитет можно удалить командой `/protect remove `.
настройка правил
Leukocyte предоставляет различные правила, которые можно применять в авторитетах. Эти правила:
breakуправляет тем, могут ли игроки ломать блокиplaceуправляет тем, могут ли игроки ставить блокиblock_dropsуправляет тем, выпадают ли предметы из блоков при их разрушенииinteract_blocksуправляет тем, могут ли игроки взаимодействовать с блокамиinteract_entitiesуправляет тем, могут ли игроки взаимодействовать с сущностямиinteractуправляет глобальным взаимодействием с блоками и сущностямиattackуправляет тем, могут ли игроки атаковать других сущностейpvpуправляет тем, могут ли игроки атаковать других игроковportalsуправляет тем, могут ли игроки строить порталыcraftingуправляет тем, могут ли игроки создавать предметыfall_damageуправляет тем, получают ли игроки урон от паденияhungerуправляет тем, будут ли игроки испытывать голодthrow_itemsуправляет тем, могут ли игроки выбрасывать предметы из своего инвентаряpickup_itemsуправляет тем, могут ли предметы подбираться игроками или другими сущностямиunstable_tntуправляет автоматическим поджигом tnt при установкеignite_tntуправляет тем, можно ли поджечь tntspawn_withersуправляет тем, можно ли призывать визеровfire_tickуправляет тем, включён ли fire tick в пределах авторитета. По умолчанию используется значение геймрула, если не заданоfluid_flowуправляет тем, текут ли жидкостиice_meltуправляет тем, тают ли лёд и заснеженный лёд
Чтобы задать правило как allow или deny для авторитета, используйте `/protect set rule `.
Например: /protect set example place deny запретит установку блоков в пределах авторитета с именем example.
создание форм
Часто может понадобиться защитить область необычной формы, а не просто простой коробкой. Для этого можно объединить несколько простых форм в более сложную, которая будет использоваться для применения правил.
Для начала выполните: /protect shape start. Это начнёт создание формы.
Затем, чтобы добавить примитивы к этой форме, выполните:
/protect shape add universeчтобы добавить вселенную в эту форму- `/protect shape add ` чтобы добавить измерение в эту форму
- `/protect shape add ` чтобы добавить параллелепипед между двумя координатами блоков в эту форму
Эти команды можно выполнять несколько раз, чтобы составить свою форму.
Когда вы закончите составление формы, можно выполнить: `/protect shape finish to `. Это добавит форму с заданным именем в заданный авторитет.
Эту форму можно будет удалить позже командой `/protect shape remove from `.
настройка уровней
При работе с несколькими авторитетами может понадобиться, чтобы один имел приоритет над другим. Например, может понадобиться глобальный авторитет, запрещающий гриферство везде, кроме определённых зон для строительства.
Вот тут-то и нужны уровни: уровень — это просто любое число, где более высокий уровень означает более высокий приоритет, а более низкий — более низкий приоритет. Если у authority уровень -1, то пересекающийся authority с уровнем 10 переопределит правила первого.
Уровень можно задать для authority командой: `/protect set level `.
добавление исключений
Может быть нежелательно, чтобы правила authority применялись ко всем. В этом случае можно исключить конкретных игроков или целые роли из-под действия данной authority.
Это делается командой: `/protect exclusion add player или/protect exclusion add role `.
Эти исключения впоследствии можно удалить командой /protect exclusion remove.
собираем всё вместе: пример
Это было много всего! Давайте соберём эти знания на простом примере.
Наш пример-сервер захочет иметь глобальную защиту от гриферства, кроме нашего survival-измерения и зон свободной застройки. Дополнительно мы хотим иметь возможность исключать определённых игроков из строительства в зонах свободной застройки с помощью роли.
Рассмотрим два измерения: minecraft:overworld и example:survival, а также роль builders.
Сначала создадим authority с именем global. Поскольку мы в основном хотим защиту везде, логично применить защиту глобально, а затем точечно переопределять её в конкретных областях.
/protect add global with universe
Далее зададим правила для этой authority:
/protect set rule global place deny/protect set rule global break deny
Готово! Теперь переопределим это поведение в нашем survival-измерении.
/protect add survival with example:survival/protect set rule survival place allow/protect set rule survival break allow
Но погодите..! Как мод поймёт, применять правила global или survival, если global тоже действует в survival-измерении? Тут нам пригодятся уровни: уровень authority по умолчанию — 0, и большее значение означает более высокий приоритет.
Итак: зададим уровень нашей authority global равным -1, чтобы всё, что мы добавим в будущем, переопределяло её по умолчанию.
/protect set level global -1
Теперь аналогично добавим наши зоны свободной застройки как исключения! Допустим, у нас есть две зоны свободной застройки, с креативными названиями free_build_1 и free_build_2. Сначала создадим пустую authority, которая применяется к обеим, поскольку у них одинаковые правила.
/protect add free_build/protect set rule free_build place allow/protect set rule free_build break allow
Далее составим форму для free_build_1:
/protect shape start/protect shape add -10 0 -10 10 255 10
... и добавим её в нашу authority/protect shape finish free_build_1 to free_build
И повторим то же самое для free_build_2:
/protect shape start/protect shape add -100 0 -10 90 255 10
... и добавим её в нашу authority/protect shape finish free_build_2 to free_build
Готово! Теперь зоны свободной застройки должны быть доступны для редактирования любому игроку — кроме тех, кого мы хотим исключить, чтобы можно было «забанить» игроков в этих зонах. Сделаем это с помощью роли free_build_banned:
/protect exclusion add free_build role free_build_banned
С этим вся наша защита должна быть настроена как надо! :)
тестирование! запрос и проверка правил
Ладно, мы настроили authority, но как легко проверить, какие правила заданы и кем?
Пара команд может пригодиться:
/protect test: проверяет все правила, действующие в данной точке, и показывает, из какой authority они происходят/protect list: выводит список всех authority в мире- `/protect display `: показывает правила и форму указанной authority
Частые вопросы
Как установить Leukocyte?
Установите Fabric под свою версию Minecraft, скачайте Leukocyte под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть Leukocyte?
У Leukocyte есть сборки для Minecraft 1.21.1, 1.21.3–1.21.5, 1.21.7–1.21.10, 26.1.2–26.3 ….
Нужен ли Leukocyte на сервере?
Ставится только на сервер; игрокам ставить не нужно