如何为特定公会中的用户添加角色

时间:2021-01-31 17:17:27

标签: javascript node.js discord.js

所以我有这个当前代码:

const mutualGuilds = bot.guilds.cache.filter((guild) => {
  return guild.members.cache.has(message.author.id);
});

if (mutualGuilds.roles.cache.has("guildid")) {
  if (mutualGuilds.users.cache.has(user.id)) {
    let userInGuild = mutualGuilds.users.cache.find(user.id).roles.add("roleid");
  }
}

当我尝试命令时,它输出:Cannot read property 'cache' of undefined

如果有人能提供帮助那就太棒了,因为我的机器人今天发布了。

1 个答案:

答案 0 :(得分:0)

如果您使用 .filter 方法获取 mutualGuilds,它将返回一个集合。您只能访问单个公会的 .roles 属性,因此您需要获取 .first() 属性,例如:

const mutualGuilds = bot.guilds.cache.filter((guild) => {
  return guild.members.cache.has(message.author.id);
});

if (mutualGuilds.first().roles.cache.has("guildid")) {
  // ...

或者您可以使用 .each() 方法为每个相互公会执行一次提供的函数:

const mutualGuilds = bot.guilds.cache.filter((guild) => {
  return guild.members.cache.has(message.author.id);
});

mutualGuilds.each((guild) => {
  if (guild.roles.cache.has("guildid")) {
  // ...
});
相关问题