discord 每隔1秒钟在特定频道发消息
时间: 2024-03-12 17:43:53 浏览: 21
如果你想让机器人每隔一秒钟在特定频道发一条消息,可以使用 `asyncio` 模块来实现。以下是一个示例代码:
```python
import discord
import asyncio
TOKEN = 'YOUR_BOT_TOKEN_HERE'
CHANNEL_ID = 'YOUR_CHANNEL_ID_HERE'
MESSAGE = 'YOUR_MESSAGE_HERE'
client = discord.Client()
async def send_message():
await client.wait_until_ready()
channel = client.get_channel(CHANNEL_ID)
while not client.is_closed():
await channel.send(MESSAGE)
await asyncio.sleep(1)
client.loop.create_task(send_message())
client.run(TOKEN)
```
在该代码中,我们定义了一个名为 `send_message` 的异步函数,用于每隔一秒钟向指定频道发送一条消息。在函数中,我们使用 `client.wait_until_ready()` 等待机器人登录成功,然后使用 `client.get_channel(CHANNEL_ID)` 获取指定频道的对象。在一个无限循环中,我们使用 `await channel.send(MESSAGE)` 发送消息,然后等待一秒钟,直到下一次循环开始。最后,我们使用 `client.loop.create_task(send_message())` 将异步函数添加到事件循环中,并使用 `client.run(TOKEN)` 启动机器人。
你需要将代码中的 `YOUR_BOT_TOKEN_HERE` 替换为你的 Discord 机器人的令牌,`YOUR_CHANNEL_ID_HERE` 替换为指定频道的 ID,`YOUR_MESSAGE_HERE` 替换为要发送的消息内容。你也可以在 `send_message` 函数中添加其他逻辑来实现更复杂的功能。