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

Discord.js v13禁言命令报错:TypeError无法读取undefined的'users'属性

错误原因与修复方案

报错TypeError: Cannot read properties of undefined (reading 'users')出现在第5行const target = message.mentions.users.first(),本质是访问mentions.users时,message.mentions的值为undefined

核心触发原因与修复方法

  • 原因1:命令执行时传参顺序错误
    你定义的execute函数参数顺序为(message, args, client),如果调用该函数时传参顺序不对(比如写成了execute(client, message, args)),就会导致参数message拿到的不是真正的消息对象,自然没有mentions属性。
    修复:找到你注册命令执行的逻辑,确认传参顺序和定义的完全一致。
  • 原因2:错误接收了交互命令对象
    如果你开发的是斜杠命令(应用命令),触发时收到的是Interaction对象而非Message对象,Interaction本身没有mentions属性,就会触发该报错。
    修复:如果是前缀消息命令,确认触发逻辑筛选的是消息事件;如果是斜杠命令,将获取提及用户的逻辑改为:
    const target = interaction.options.getUser('target')
    
    同时调整execute的入参和后续调用消息/交互相关方法的逻辑。

额外代码优化建议

你当前的代码存在几个潜在崩溃点,可以同步调整:

  1. 逻辑依赖服务器存在名为Member的角色,若服务器没有该角色会触发后续删角色的报错。实际上禁言不需要删除普通成员角色,仅需要给目标用户添加Muted角色即可,提前给Muted角色配置各频道禁止发消息的权限就可以实现禁言效果。
  2. 获取成员时优先用fetch拉取避免缓存缺失问题,优化后的可运行代码参考:
module.exports = {
  name: 'mute',
  description: 'Mute users',
  // 加async方便调用异步方法
  execute: async (message, args, client) => {
    // 提前校验权限,减少无效逻辑执行
    if (!message.member?.permissions.has('MANAGE_CHANNELS', true)) return message.reply('❌ You dont have permission to use this command!');
    const target = message.mentions.users.first()
    if (target) {
      // 支持多词原因,args[1]只能拿到第一个词的原因
      const reason = args.slice(1).join(' ') || 'no reason provided';
      const MutedRole = message.guild.roles.cache.find(role => role.name === 'Muted');
      if (!MutedRole) return message.channel.send('There is no muted role in this guild!');
      // 用fetch拉取成员,避免缓存不存在的问题
      let memberTarget;
      try {
        memberTarget = await message.guild.members.fetch(target.id);
      } catch (e) {
        return message.channel.send('获取目标成员信息失败');
      }
      await memberTarget.roles.add(MutedRole.id);
      message.channel.send(`<@${target.id}> has been muted because ${reason}`);
      return;
    } else {
      message.channel.send('Unknown user :<');
    }
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 22:27:06