Подсчет времени, сколько человек провел в голосовом канале дискорд

Я хочу реализовать функцию, при которой пользователю будет засчитываться 1 монета, за каждую минуту в голосовом канале. Правда, я не знаю, как реализовать подсчет времени в голосовом чате дискорд (любом голосовом чате).


Ответы (1 шт):

Автор решения: Cookie Eater

Я решил проблему, создав bot.event функцию, под названием on_voice_state_update , а после сделал цикл, который каждые 10 секунд, засчитывает 10 секунд пользователю.

@bot.event
async def on_voice_state_update(member, before, after):
    if after.channel!=None:
        while True:
            #здесь зачисляете секунды, а после пишите await asyncio.sleep(кол-во секунд), например a+=10 await asyncio.sleep(10) , зачисляется 10 секунд.
→ Ссылка