You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 07:23:14