改成每一秒钟发送一条消息
时间: 2024-02-06 17:02:59 浏览: 128
定时器0定时1秒,每过一秒钟打印输出一个 Hello World
好的,如果你想让机器人每秒钟发送一条消息,可以修改代码中的 `asyncio.sleep(60)` 为 `asyncio.sleep(1)`。这样机器人每发送一条消息后就会等待一秒钟,然后再检查时间是否到达,如果到达了就发送下一条消息,如果没有到达就继续等待。修改后的代码如下:
```python
import discord
import asyncio
import datetime
TOKEN = 'YOUR_BOT_TOKEN_HERE'
CHANNEL_ID = 'YOUR_CHANNEL_ID_HERE'
MESSAGE = 'YOUR_MESSAGE_HERE'
TIME = '12:00' # 发送时间,24小时制,例如 '12:00'
client = discord.Client()
async def send_message():
await client.wait_until_ready()
while not client.is_closed():
now = datetime.datetime.now().strftime('%H:%M')
if now == TIME:
channel = client.get_channel(CHANNEL_ID)
for i in range(60):
await channel.send(MESSAGE)
await asyncio.sleep(1)
await asyncio.sleep(60) # 每60秒检查一次时间
client.loop.create_task(send_message())
client.run(TOKEN)
```
这样修改后的代码会在到达指定时间后,在每秒钟发送一条消息,总共发送60条消息,然后等待下一次到达指定时间后再发送。
阅读全文