如何每隔xx分钟将自动随机消息发送到特定的服务器和频道ID。
async def randommessage():
response = random.choice(["one", "two", "three"])
await bot.say(response)
await asyncio.sleep(120)
答案 0 :(得分:2)
timeout = 60*5 # 5 minutes
@bot.command(pass_context=True)
async def randommessage(ctx, *messages):
while True:
await bot.say(random.choice(messages))
await asyncio.sleep(timeout)
在这里,我们接受任意数量的参数作为潜在消息,以回显当前通道。调用看起来像
!randommessage test1 test2 "Messages with spaces go in quotes"
功能更全的版本将是
@bot.command(pass_context=True)
async def randommessage(ctx, channel: discord.Channel, timeout: int, *messages):
while True:
await bot.send_message(channel, random.choice(messages))
await asyncio.sleep(timeout*60) # timeout minutes
可以像
那样调用!randommessages #default 5 test1 test2 "Messages with spaces go in quotes"
编辑:
如果您已经收到其他机制的响应,则可以接受等待时间和目标频道,并使用合理的默认值。
@bot.command(pass_context=True)
async def randommessage(ctx, channel: discord.Channel=None, timeout: int=5):
channel = channel or ctx.message.channel # default to the channel from the invocation context
while True:
await bot.send_message(channel , random.choice(response))
await asyncio.sleep(timeout*60) # timeout minutes
这假设response
列表在某些范围内可用。