Подсчет времени, сколько человек провел в голосовом канале дискорд
Я хочу реализовать функцию, при которой пользователю будет засчитываться 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 секунд.