Привязка Steam ↔ Discord
Некоторые scope (например, economy:coins:write) оперируют Discord-пользователем, а не SteamID — DayZ-мод знает только SteamID игрока. Чтобы связать их, у бота есть команда привязки аккаунта.
Как это работает
- Игрок пишет в чате DayZ-сервера
!flink(без аргументов). - Мод определяет его SteamID на сервере (сам, из данных подключения — не через чат) и запрашивает у бэкенда код.
- Бэкенд генерирует одноразовый 4-символьный код и присылает его игроку приватным системным уведомлением — тем же каналом, что промокоды и баунти. Код никогда не попадает в чат, поэтому его не может подсмотреть другой игрок рядом.
- Игрок идёт в Discord и вводит
/dayz-link— открывается модальное окно (тоже приватное, не видно другим участникам канала) с полем для кода. - После ввода бот проверяет код и создаёт привязку SteamID ↔ Discord-аккаунт.
Ограничения
- Код действует 10 минут и одноразовый.
- Один SteamID — один Discord-аккаунт (глобально, не по гильдиям).
- Если аккаунт уже привязан, команда сразу покажет текущую привязку вместо повторной попытки.
Эндпоинты, которым нужна привязка (например economy:coins:write), возвращают 404 Not Found, если целевой SteamID ещё не привязан.