Перейти к содержанию

Как выдать модератору точечные права через Server Devcommands

permissions.yaml, привязка к аккаунту и персонажу, группа moderators и отзыв прав. Почему очистка индивидуального правила не всегда запрещает команду.
Версия не проверена

Server Devcommands имеет дополнительную систему прав для выделенного сервера. Она позволяет разрешать отдельные функции обычным игрокам и ограничивать отдельные команды администраторов. Это функции мода, а не расширение vanilla adminlist.txt; полный набор возможностей требует серверной установки.

Проверьте файл и личность игрока

Правила находятся в permissions.yaml в каталоге BepInEx/config. Мод создаёт файл и добавляет записи персонажей, использующих Server Devcommands. Для выдачи прав сопоставьте id аккаунта/хоста и character: автор предупреждает, что один character id легко подделать. Не выдавайте доступ только по отображаемому имени.

Если character не указан, правило распространяется на всех персонажей соответствующего host id. Для полномочий одному персонажу используйте его отдельную запись. При работе с уже существующим файлом сначала сохраните копию и сверяйтесь с автоматически созданной записью нужного игрока.

Различайте значения правил

Значение · Смысл в системе мода
ЗначениеСмысл в системе мода
yesРазрешить конкретную функцию или команду, в том числе не-администратору
noЗапретить конкретную функцию или команду, в том числе администратору
forceПринудительно включить поддерживаемую функцию; это не гарантия контроля клиента после удаления мода

Функции Server Devcommands находятся в секции serverdevcommands, команды — в commands. Не переносите названия функций из другого плагина: он должен отдельно поддерживать эту систему и документировать свою секцию. Для commands автор описывает работу с консольными командами независимо от мода.

Создайте группу moderators

Группа — обычная запись с name: moderators, но без id и character. В ней можно задать нужные функции и команды, затем добавить имя группы в groups у проверенной записи персонажа. Начните с небольшого набора полномочий вместо admin: yes.

Часть примера · Что задать
Часть примераЧто задать
Группаname: moderators; без id и character
Разрешённая функцияВ serverdevcommands: mapcoordinates: yes
Запрещённая командаВ commands: event: no
УчастникПроверенные id и character; groups содержит moderators

Это пример структуры, а не файл с действующими идентификаторами. Сохраните YAML-вложенность: секции принадлежат своей записи, а не соседнему персонажу. Перед применением проверьте, что редактируете правила нужного сервера и нужной учётной записи.

Проверьте наследование до вывода о доступе

Everyone применяется всегда, даже когда явно не перечислена в groups. Персонаж может состоять в нескольких группах, а группы могут иметь родителей. Индивидуальное правило персонажа перекрывает групповое: если группа разрешает функцию, но в записи персонажа стоит no, она запрещена.

Не угадывайте порядок разрешения конфликтов между несколькими группами: выбранная документация явно подтверждает приоритет персонажа, но не универсальное правило «последняя группа побеждает». При спорном доступе сравните Everyone, группы, индивидуальные правила и исходный статус администратора.

Когда использовать команду permissions

По умолчанию Everyone запрещает команду permissions, чтобы не дать всем редактировать доступ. Владелец может оставить управление через файл или отдельно разрешить команду своему проверенному персонажу. Не включайте её сразу для Everyone или всей группы модераторов без отдельного решения владельца.

Операция permissions · Назначение
Операция permissionsНазначение
add_group <group> <character id or name>Добавить в группу
remove_group <group> <character id or name>Убрать из указанной группы
ban_command <command> <character id or name>Задать запрет команды
clear_command <command> <character id or name>Удалить индивидуальное правило команды
clear_groups <character id or name>Очистить список групп
clear_all <character id or name>Очистить настройки этой записи

Команды действуют и для отсутствующего игрока, если его запись уже есть в файле. При отзыве доступа проверьте итоговые права: clear_command убирает переопределение, но команда может снова разрешаться группой или исходным admin-статусом. Очистка записи не равна гарантированному запрету всего.

Ограничения и восстановление управления

Поле admin: yes или no перекрывает обычный список администраторов. Используйте его осознанно: для точечной роли чаще нужны отдельные правила, а не полный admin. Root users из конфигурации — отдельная настройка владельца; README указывает, что её нельзя менять командой dev_config.

Информация
Ограничения по параметрам поддерживаются не каждой командой. force не превращает мод в защиту от изменённого клиента или удаления плагина. Гайд основан на сохранённых документах сопровождающего; реальные права игроков, сервер и команды здесь не изменялись.

Гайд был полезен?