我正在尝试制作一个将预定消息发送到特定文本通道的机器人。例如,在我生日那天说“生日快乐”,或者每天早晨说“早安”。该机器人似乎无法正常工作,因为我的文字频道中没有任何内容。
import discord,random,asyncio,os from datetime import datetime from discord.ext import commands token = '#mytokenhere' bot=commands.Bot(command_prefix='!') send_time='01:41' #time is in 24hr format message_channel_id='0000000000000' #channel ID to send images to @bot.event async def on_ready(): print(bot.user.name) print(bot.user.id) async def time_check(): await bot.wait_until_ready() message_channel=bot.get_channel(message_channel_id) while not bot.is_closed: now=datetime.strftime(datetime.now(),'%H:%M') if now.hour() == 1 and now.minute() == 52: message= 'a' await message_channel.send(message) time=90 else: time=1 await asyncio.sleep(time) bot.loop.create_task(time_check()) bot.run('token')
使用扩展程序执行以下操作的方法如下tasks
tasks
from discord.ext import commands, tasks bot = commands.Bot("!") target_channel_id = 1234 @tasks.loop(hours=24) async def called_once_a_day(): message_channel = bot.get_channel(target_channel_id) print(f"Got channel {message_channel}") await message_channel.send("Your message") @called_once_a_day.before_loop async def before(): await bot.wait_until_ready() print("Finished waiting") called_once_a_day.start() bot.run("token")