Как стать админом на своём сервере CounterStrikeSharp
Админские команды в плагинах CounterStrikeSharp, такие как kick, ban или смена карты, работают только у игроков с нужным флагом прав. Эти права хранятся в нескольких JSON-файлах на сервере. Когда вы разберётесь в трёх файлах, выдать права админа себе или другу можно минут за две.
Найдите папку configs
Откройте на сервере addons/counterstrikesharp/configs. Важны три файла: admins.json содержит людей и то, что им разрешено, admin_groups.json описывает повторно используемые группы прав, а admin_overrides.json меняет право, которое требуется для конкретной команды.
Узнайте свой SteamID64
Список админов опознаёт вас по аккаунту Steam. Проще всего формат SteamID64 — 17-значное число, начинающееся с 7656119. Его можно получить, вставив ссылку на свой профиль Steam на любом сайте для поиска SteamID. Старый формат STEAM_0:X:Y тоже поддерживается.
Добавьте себя с полными правами
Откройте admins.json и добавьте запись с вашим именем, SteamID и нужными флагами. Флаг @css/root даёт доступ ко всему, поэтому выдавайте его только себе и тем, кому полностью доверяете.
{
"MyName": {
"identity": "76561198000000001",
"flags": ["@css/root"]
}
}
Флаги должны начинаться с @
Каждый флаг пишется с @ впереди, точно как @css/kick. Флаг без @ не распознаётся, и игрок просто остаётся без прав, без явной ошибки. Чаще всего используются @css/generic для базовых админских команд, @css/kick, @css/ban, @css/changemap, @css/vip и @css/root.
Используйте группы, если админов несколько
Если у нескольких админов одинаковые права, опишите их один раз в admin_groups.json и сошлитесь на группу из admins.json. Имена групп начинаются с #. Изменив группу позже, вы обновите всех админов, которые её используют.
{
"#css/simple-admin": {
"flags": ["@css/generic", "@css/kick", "@css/ban"]
}
}
{
"MyName": {
"identity": "76561198000000001",
"groups": ["#css/simple-admin"]
}
}
Тонкая настройка через overrides
admin_overrides.json позволяет изменить флаг, который требует команда, не трогая сам плагин. Например, можно решить, что команду, которой обычно нужен @css/ban, смогут использовать обладатели @css/kick. Это необязательно, и многим серверам это никогда не нужно.
Если не работает
Перезапустите сервер после правки файлов и посмотрите в консоли при запуске, нет ли ошибок JSON. Затем зайдите на сервер и попробуйте команду, требующую этот флаг. Обычные причины: неверный SteamID, флаг без @, синтаксическая ошибка JSON или правка копии файла не в той папке.
Для разработчиков: защита собственных команд
Если вы пишете плагины, проверять флаги вручную не нужно. Поставьте атрибут RequiresPermissions над методом команды, и CounterStrikeSharp откажет в выполнении любому, у кого нет этого флага.
[RequiresPermissions("@css/kick")]
public void OnKickCommand(CCSPlayerController? player, CommandInfo commandInfo)
{
// ...
}
Было ли это руководство полезным?
Barlap для сообщества.