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

Discord bot无法仅响应指定用户特定消息问题求助

问题排查与修复方案
  • 核心错误1:startswith是字符串内置方法,需要传入匹配前缀作为参数调用,你当前代码错误将方法对象直接与字符串'Yo'做相等判断,该判断永远返回False,触发条件实际永远不会生效。
  • 核心错误2:如果你实际运行的代码中#await message.channel.send(message.content)这行的注释被移除,那么所有非机器人自身发送的消息都会被原样转发,就会出现“无论发送什么内容bot都响应”的现象。
  • 附加校验点:确认你填写的用户ID和你要匹配的目标用户ID完全一致,且discord.py版本中message.author.id返回的是整数类型,避免字符串和整数比较不匹配的问题。

修复后的完整代码如下:

@client.event
async def on_message(message):
    # 过滤机器人自身发送的消息
    if message.author == client.user:
        return
    
    # 正确的触发条件写法:校验用户ID+消息前缀匹配
    if message.author.id == 103001222035981612 and message.content.startswith('Yo'):
        await message.channel.send(f'Hello {message.author.name}')
    
    # 不需要原样转发所有消息就保持这行注释即可
    # await message.channel.send(message.content)

client.run(TOKEN)

内容的提问来源于stack exchange,提问作者Abel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 11:45:03