@frykktik

Как сделать что бы бот в дискорде выдавал роли после правильного ответа на вопрос?

Смотрите как работает бот, ты в канале пишешь команду, после этого бот тебе в личные сообщения задает вопрос, и после правильного ответа он должен выдать роль в канале, но роль на время. Вот я не понимаю как сделать этот момент чтобы после дачи правильного ответа в личные сообщения, бот автоматом выдавал роль на время.
  • Вопрос задан
  • 165 просмотров
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Нужно хранить базу пользователей, и для каждого пользователя хранить id, состояние и метку времени.
Состояние может быть одно из указанных:
* стартовое - пользователь ничего не сделал
* пользователю был задан вопрос
* пользователь получил роль, тогда поле времени хранит момент, когда роль была получена.

Тогда при реакции на команду или на сообщение ты ищешь ID пользователя в базе, и проверяешь, что он находится в корректном состоянии. Т.е. если реагируешь на личку, то пользователь должен быть в состоянии "задан вопрос". В нужные моменты сохраняешь в базу новое состояние, например, "задан вопрос" -> "выдана роль".
Чтобы снять роль, время от времени ищешь в базе пользователей в состоянии "выдана роль", у которых с момента выдачи прошло достаточно много времени, снимаешь им роль и записываешь в базу новое состояние (стартовое).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы