You need to enable JavaScript to run this app. Discord机器人DM命令发送消息仅显示单个词的修复求助
优惠活动
大模型
产品
解决方案
定价
更多

Discord机器人DM命令发送消息仅显示单个词的修复求助

DM命令内容不完整故障修复指南

根因定位

当前命令的参数定义不符合discord.py前缀命令的解析规则:定义为message=None的普通参数,只会匹配用户输入中第一个空格分隔的文本片段,后续带空格的完整消息内容会被解析器直接丢弃,最终导致接收方只能收到单个词语。

修复操作点

  • 修改message参数的收集规则,在参数前加*标记,让解析器将目标用户之后的所有输入文本作为整体赋值给message变量,不会按空格拆分内容,即修改为*, message: str = None
  • 补全空内容兜底逻辑:如果用户调用命令时没有附带任何私信文本,直接提示调用者补全内容,避免发送空私信
  • 修正原提示文本的拼写错误:原代码中recieved为拼写错误,正确拼写为received

修复后可正常运行的代码参考

@client.command(pass_context=True)
@commands.cooldown(1, 10, commands.BucketType.user)
async def dm(ctx, target: discord.User, *, message: str = None):
    # 空消息校验
    if not message:
        await ctx.send("❌ 请在指令后补充需要发送的完整私信内容")
        return
    await target.send(message)
    await ctx.send(
        "{0} 已收到你的消息,{1} :envelope:".format(target.mention, ctx.author.mention)
    )

异常适配补充(可选)

  • 增加发送私信的异常捕获逻辑:如果目标用户关闭了陌生人私信、屏蔽了机器人,直接给命令调用者返回提示,避免机器人运行崩溃
  • 可以加个权限校验,禁止普通用户给机器人所有者发恶意私信

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.30 14:36:06