#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:
поскольку вы всегда повторно инициализируете счетчик, вы можете объявить счетчик вне функции в глобальной области, а затем изменить его внутри