Таймер обратного отсчета в голосовом канале (Discord.py)

#python #discord.py

Вопрос:

Я пытаюсь создать бота на python, который каждый час редактирует название голосового канала в обратном отсчете и сбрасывает его, как только он достигает 0. Это для сброса сервера в установленное время. У меня есть редактирование голосового канала, но я застрял на том, как заставить счетчик уменьшаться на единицу каждый раз, когда он обновляется. В настоящее время бот обновляет имя vc каждый час, но счетчик никогда не снижается. Он всегда застревает на 24 или 23.

Кто-нибудь может мне здесь помочь?

Вот код, который у меня есть до сих пор:

 from discord.ext import commands, tasks

token = 'token'
bot = commands.Bot(command_prefix='!')

@bot.event
async def on_ready():
    change_status.start()
    print('bot is active')

@tasks.loop(seconds=3600)
async def change_status():
    channel = bot.get_channel(id)
    counter = 24
    counterint = counter - 1
    if counterint == 0:
        await channel.edit(name=f"NA reset: {counter}h")
    else:
        await channel.edit(name=f"NA reset: {counterint}h")
    print('timer down 1')

bot.run(token)
 

Ответ №1:

поскольку вы всегда повторно инициализируете счетчик, вы можете объявить счетчик вне функции в глобальной области, а затем изменить его внутри