如何用Discord.py实现机器人消息发送与复读功能?
实现Discord机器人复读消息功能
没问题!我来帮你搞定机器人的复读功能。你的基础代码已经能正常接收并打印消息了,只需要在on_message事件里添加几行关键代码就行,还要注意一个容易踩坑的点——一定要让机器人跳过自己发的消息,不然会触发无限循环,不停发送消息哦。
修改后的完整代码
import discord client = discord.Client() token = 'My token' # Bot ready event @client.event async def on_ready(): try: print(client.user.name) print(client.user.id) print('Discord.py Version: {}'.format(discord.__version__)) except Exception as e: print(e) @client.event async def on_message(message): # 跳过机器人自己发送的消息,防止无限循环 if message.author == client.user: return # 打印消息到终端(保留你原来的功能) print(message.content) # 实现复读功能:将收到的消息发回同一个频道 await message.channel.send(message.content) client.run(token)
关键修改说明
- 跳过自身消息:
if message.author == client.user: return这行代码会判断发送消息的是不是机器人自己,如果是就直接结束函数,不执行后续逻辑,完美避免无限循环问题。 - 发送复读消息:
await message.channel.send(message.content)调用频道的send方法,把收到的消息内容原封不动发送回消息所在的频道,这样就实现了复读效果。
测试的时候,你可以在Discord服务器里随便发一条消息,机器人就会立刻重复这条消息啦!
内容的提问来源于stack exchange,提问作者Odd's Adventures
相关产品推荐
相关产品推荐

