Как сделать проверку, сколько времени человек находится в голосовых каналах на сервере дискорд?

Пишу бота на Python, библиотека discord.py.
  • Вопрос задан
  • 3260 просмотров
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
1. Читаешь https://discordpy.readthedocs.io/en/latest/api.htm.... Там перечислены все события, которые можно отлавливать через discord.py. Нас интересует discord.on_voice_state_update(member, before, after), он позволяет реагировать на вход и выход пользователей на голосовых каналах. Также важно: потребуется при запуске бота указать интент Intents.voice_states, иначе события не получим.
2. Разбираешься, как сравнивать параметры `before` и `after`, чтобы понять вошел пользователь или вышел. Оба - структура VoiceState.
3. Описываешь структуру данных, где хранишь время последнего входа пользователя в голосовой канал. Например, словарь, где id пользователя на сервере - ключ, а время - значение. Если нужна независимая регистрация по каналам, то тогда id канала должно входить в состав ключа.
4. На входе пользователя вносишь запись в этот словарь. На выходе пользователя - ищешь запись, находишь разность между запомненным временем входа и текущим временем, удаляешь запись. Предусмотри случай если записи нет.
5. PROFIT. С этой разностью уже делаешь что хочешь, в БД заносишь, или ещё что.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы