在 Discord.py 中,机器人可以通过监听 `on_message` 事件来读取其他机器人的消息。以下是一个基本步骤的概述:
1. 首先,确保你已经在你的项目中安装了 discord.py 库。如果还没有安装,可以通过运行 `pip install discord.py` 来进行安装。
2. 在你的 bot 代码中,导入 discord 模块并创建一个实例。
3. 使用 `@bot.event` 装饰器定义 `on_message` 事件处理函数。这个函数会在接收到任何消息时被调用。
4. 在 `on_message` 函数的实现中,首先检查消息内容。如果不是由其他机器人发送的(可以通过检查消息来源的用户ID来实现),则直接返回。
5. 如果消息是由其他机器人发送的,你可以根据需要处理这个消息。例如,你可以在控制台打印出这条消息的内容。
6. 最后,不要忘记运行你的 bot。
以下是一个简单的示例代码:
```python
import discord
from discord.ext import commands
bot = commands.Bot(command_prefix='!')
@bot.event
async def onMessage(message):
# 检查消息来源是否是机器人
if message.author.bot:
return
print(f'Received a message from {message.author}: {message.content}')
# 添加你的 bot token
with open('token.txt', 'r') as f:
TOKEN = f.read().strip()
bot.run(TOKEN)
```
在这个示例中,我们首先检查了消息的来源是否是机器人(即 `message.author.bot` 是否为 True)。如果是,我们就不进行任何处理。如果不是,我们就打印出这条消息的内容。最后,我们在 `token.txt` 文件中读取了 bot 的 token,并使用它来运行 bot。
测试用例:
- 发送一条由机器人发送的消息给你的 bot,检查你的控制台是否会打印出这条消息。
- 发送一条不是由机器人发送的消息给你的 bot,检查你的控制台是否会打印出这条消息。