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

Как создать свои команды и макросы администратора Valheim

Alias и alias.yaml, подстановка $$, цепочки с wait, ввод через UI и кавычки: создание и удаление своей команды администратора.
Версия не проверена

Server Devcommands позволяет создать короткую команду с параметрами, запросить значение через окно ввода и выполнить несколько действий по порядку. Aliases хранятся в alias.yaml и управляются командой alias. Это возможности мода JereKuusela, для которых нужен его обработчик команд.

Подготовьте доступ и исходную команду

Автор требует установить мод на клиент администратора; полные возможности требуют также установки на сервер. SteamID64 администратора должен быть в adminlist.txt. Alias не выдаёт прав: после его развёртывания проверяются существование и разрешение каждой команды.

  1. Сохраните копию имеющегося alias.yaml из папки конфигурации BepInEx, если он уже существует. Это позволит сверить прежнее определение при изменении.
  2. Проверьте доступную базовую команду отдельно. Для примеров ниже используются сообщения и вывод текущего ветра, а не создание предметов или изменение мира.
  3. Введите alias без аргументов и убедитесь, что новое короткое имя не заменит нужное существующее определение.

Создание, просмотр и удаление

Синтаксис в консоли · Действие
Синтаксис в консолиДействие
alias [name] [command]Добавляет определение или обновляет существующее
aliasВыводит список aliases
alias [name]Удаляет указанное определение

Для короткого имени сообщения пример по синтаксису автора: alias notice broadcast center. После этого notice "Работы завершены" передаёт фразу команде broadcast center. Это составленный учебный пример; в работающей игре он не проверялся. Broadcast отправляет сообщение всем игрокам, поэтому выберите подходящий момент для проверки.

Параметр в середине команды

Подстановка $$ вставляет переданные параметры в середину определения. Например, alias notice_at broadcast $$ "Работы завершены" оставляет место для позиции сообщения. Вызов notice_at center должен разворачиваться в broadcast center "Работы завершены". Здесь center — значение параметра, а заключённая в кавычки фраза — фиксированная часть определения.

Автор допускает несколько $$ и вложенные aliases. Начните с одного параметра и проверьте развёрнутую базовую команду перед усложнением. Не используйте короткое имя, совпадающее с нужной вам исходной командой, и не рассчитывайте, что alias автоматически исправит недостающий аргумент.

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

Несколько команд разделяются точкой с запятой. Учебная диагностическая цепочка: alias wind_twice wind; wait 1000; wind. Вызов wind_twice запрашивает текущий ветер, ждёт 1000 миллисекунд и запрашивает его снова. Это демонстрация порядка и wait, а не измерение погоды в рамках подготовки гайда.

Обработчик сначала разворачивает alias, затем разделяет цепочку и выполняет команды последовательно. Поэтому точка с запятой внутри определения задаёт несколько действий. Пауза измеряется миллисекундами: wait 10000 означает десять секунд.

Запрос значения через окно ввода

Маркер <input> в выполняемой строке вызывает окно ввода и откладывает выполнение до получения значения. Например, broadcast center "<input_Message>" использует именованный запрос. Для <input_Player_name> документация указывает заголовок Player Name. Если запросов несколько, они разрешаются по порядку появления.

Информация
В документированном порядке запросы UI обрабатываются до развёртывания aliases. Поэтому здесь показана прямая строка с <input_Message>: размещение такого маркера только внутри сохранённого alias не объявляется гарантированным способом открыть окно.

Кавычки и ошибки разбора

Кавычки объединяют текст с пробелами в один параметр. В первичном примере broadcast center "<color=red>Hello world</color>" форматированная фраза передаётся целиком. Если сообщение или имя содержит пробелы, проверяйте границы кавычек; не добавляйте лишние кавычки вокруг всей цепочки команд.

  • Неизвестное имя: выведите alias и проверьте определение, затем выполните базовую команду отдельно.
  • Отказ в доступе: проверьте административные права и разрешение исходной команды. Alias не обходит ограничения.
  • Цепочка не разделяется: проверьте настройку multiple_commands; для aliases — aliasing, для $$ — substitution, для кавычек — wrapping.
  • Неверный параметр: сначала сократите определение до одной команды и одного значения, затем возвращайте подстановки и паузы.

Обновите или удалите макрос

Повторный alias notice [новая команда] заменяет определение. Для удаления введите alias notice без тела команды, затем проверьте список через alias. Не путайте это с unbind: отдельная система клавиш мода хранится в binds.yaml. Здесь для запуска используется имя команды в консоли, а не назначение клавиши.

Информация
Сохранённые первичные документы не привязаны к конкретному релизному тегу; установленная версия и серверная совместимость не тестировались. Настройка auto_exec_dev_on не используется: в README для неё противоречиво указан ключ auto_exec_dev_off. Команды и изменения конфигурации в реальной игре не выполнялись.

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