首页 > 解决方案 > Discord 机器人添加角色

问题描述

我正在尝试添加静音命令

这是我当前的代码:

if (message.member.roles.cache.some(role => role.name === 'Admin')) {
   let target = message.mentions.members.first;
   let role = message.member.guild.roles.cache.find(role => role.name === "muted");

   target.roles.add(role);

   message.channel.send('${user} has been muted by ${message.author.username}');
}

我收到此错误:

(节点:11052)UnhandledPromiseRejectionWarning:TypeError:无法读取未定义的属性“添加”

标签: discorddiscord.jsbots

解决方案


  1. 我建议您Roles#has用于搜索成员角色
if (message.member.roles.cache.has('role-id') { ... }
  1. Collection#first是一个方法,而不是一个属性,添加()first
let target = message.mentions.members.first();

你得到Cannot read property 'add' of undefined是因为你没有正确访问第一次提及

这是所有固定并放在一起的代码:

if (message.member.roles.cache.has('ROLE-ID-HERE')) {
   let target = message.mentions.members.first();
   let role = message.member.guild.roles.cache.find(role => role.name === "muted");

   target.roles.add(role);

   message.channel.send('${user} has been muted by ${message.author.username}');
}

推荐阅读