繁体   English   中英

Discord.js - 删除所有以 *(星号)开头的角色

[英]Discord.js - remove all roles that start with * (asterisk)

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

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循环吗? 谢谢。

您的解决方案是:

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]);
      }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM