【问题标题】:Discord.js - remove all roles that start with * (asterisk)Discord.js - 删除所有以 *(星号)开头的角色
【发布时间】:2020-04-05 22:56:46
【问题描述】:

我需要创建一个命令,首先从所有以星号开头的角色中删除该成员,然后分配一个将在命令参数中传递的角色。

exports.run = (client, message, [where]) => {
    var role = message.guild.roles.cache.find(role => role.name === where);

    if (role && where.substring(0, 1) == '*') {
        //remove all roles that start with * from the member, probably some kind of for loop?

        message.member.roles.add(role);
        message.channel.send(message.member.nickname + ' entered the channel ' + where + '.');
    }
    else message.channel.send('Channel' + where + ' does not exist or does not start with *.');
};

你能帮我解决那个 for 循环吗?谢谢。

【问题讨论】:

  • 您是否遇到任何错误?如果有,它们是什么?
  • 不,这段代码很好用,但我不知道如何执行 for 循环来查找所有以 * 开头的角色,然后将它们从成员中删除。

标签: javascript discord discord.js


【解决方案1】:

您的解决方案是:

const roles = message.member.roles.cache.array();

for (var i = 0; i < roles.length; i++) {
      if (roles[i].name.substring(0, 1) == "*") {
            message.member.roles.remove(roles[i]);
      }

}

【讨论】:

    猜你喜欢
    • 2021-11-03
    • 2020-08-24
    • 2020-11-03
    • 2018-11-29
    • 2021-06-28
    • 1970-01-01
    • 2020-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多