Привязка Steam ↔ Discord

Некоторые scope (например, economy:coins:write) оперируют Discord-пользователем, а не SteamID — DayZ-мод знает только SteamID игрока. Чтобы связать их, у бота есть команда привязки аккаунта.

Как это работает

  1. Игрок пишет в чате DayZ-сервера !flink (без аргументов).
  2. Мод определяет его SteamID на сервере (сам, из данных подключения — не через чат) и запрашивает у бэкенда код.
  3. Бэкенд генерирует одноразовый 4-символьный код и присылает его игроку приватным системным уведомлением — тем же каналом, что промокоды и баунти. Код никогда не попадает в чат, поэтому его не может подсмотреть другой игрок рядом.
  4. Игрок идёт в Discord и вводит /dayz-link — открывается модальное окно (тоже приватное, не видно другим участникам канала) с полем для кода.
  5. После ввода бот проверяет код и создаёт привязку SteamID ↔ Discord-аккаунт.

Ограничения

  • Код действует 10 минут и одноразовый.
  • Один SteamID — один Discord-аккаунт (глобально, не по гильдиям).
  • Если аккаунт уже привязан, команда сразу покажет текущую привязку вместо повторной попытки.

Эндпоинты, которым нужна привязка (например economy:coins:write), возвращают 404 Not Found, если целевой SteamID ещё не привязан.