Как настроить группы и права доступа в TShock?
Группы и разрешения TShock
Права TShock — это группы, а не стандартный файл ops.json. Откройте Console в panel VeryGames и введите команды ниже. Здесь используется TShock, а не tModLoader. Не загружайте сюда файлы .tmod. Они не будут загружены.
Группы по умолчанию
Каждый игрок состоит в одной группе. Группа определяет, какие команды он может выполнять. В TShock уже есть следующие:
- guest — не вошёл в систему. Это любой игрок, который только что присоединился к миру.
- default — вошёл с учётной записью TShock. Обычные игроки после /login.
- owner / admin — уже есть на server. Оставьте их. Не удаляйте группу, которой принадлежит server.
Сначала выведите список групп, затем просмотрите нужную:
/group list /group info owner /group info default/group info показывает родительскую группу и все разрешения этой группы. Используйте эту команду перед тем, как копировать права в новый ранг.
Создать группу
Создайте пустую группу, затем добавляйте реальные имена разрешений по одному. Пример: ранг vip, который может телепортироваться и кикать игроков.
/group add vip /group addperm vip tshock.tp /group addperm vip tshock.admin.kickУдалить разрешение можно так же:
/group delperm vip tshock.admin.kickПолезные имена разрешений (TShock проверяет именно эту строку, а не команду в чате):
- tshock.tp — телепортировать себя
- tshock.tp.others — телепортировать других игроков
- tshock.warp — использовать warp
- tshock.admin.kick — кикнуть игрока
- tshock.admin.ban — забанить игрока
- tshock.admin.mute — заглушить игрока
- tshock.item — спавнить предметы
Не добавляйте * в публичный ранг. Этот wildcard даёт все разрешения, включая управление пользователями. Оставляйте его только у owner или SuperAdmin. Необязательно: команда /group add vip default создаёт vip с родительской группой default, поэтому vip начнёт не с пустого набора прав, а с набора для вошедших игроков.
Назначить игрока
Группа ничего не делает, пока в неё не добавлен пользователь TShock. Сначала создайте пользователя (см. как добавить администраторов на Terraria TShock server), затем переместите его:
/user group PlayerName vipЗамените PlayerName на имя пользователя TShock, а не на имя персонажа Terraria, если они различаются. Игрок должен снова выполнить /login, если он уже находится в мире.
Оставьте SuperAdmin / owner для человека, который создал server. Не переводите эту учётную запись в vip. Иначе вы потеряете команды для управления группами и пользователями.
REST API
REST API предназначен для инструментов и скриптов (status-ботов, web-панелей, автоматизации). Это не тот адрес, который вы вводите в Terraria для подключения к миру. Игра использует IP и игровой порт из panel. REST использует другой host и port, которые тоже указаны в panel.
- Скопируйте REST host и port из panel. Не придумывайте их.
- Оставьте RestApiPort в конфиге TShock таким, как его установила panel. Изменение этого значения ломает привязку panel. Публичный порт и порт в конфиге перестанут совпадать.
- API token — это пользователь TShock с достаточными правами группы. Создайте такого пользователя, поместите его в группу, которая может выполнять команды, нужные вашему скрипту, а затем запросите token с этим именем пользователя и паролем. Для admin-вызовов группы guest или пустой vip будет недостаточно.
Если скрипт не может подключиться, сначала проверьте REST port в panel. Затем убедитесь, что пользователь TShock может войти на server. Не открывайте второй REST port вручную.
Неизвестная команда
Если Console отвечает, что команды /group или /user неизвестны, значит процесс ещё не запущен под TShock или его плагины не загрузились.
- Убедитесь, что на этом server используется ПО TShock для Terraria, а не vanilla и не tModLoader.
- Перезапустите его из panel и дождитесь, пока server появится online.
- Снова откройте Console и ещё раз попробуйте /group list.
В vanilla Terraria нет групп. Моды tModLoader не будут загружаться в этом ПО. Если вам нужны моды, это уже другой продукт.