微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Discord.JS - 使用角色将 Discord 中的用户移动到您的 VC

如何解决Discord.JS - 使用角色将 Discord 中的用户移动到您的 VC

我正在尝试从具有特定角色的 VC 中转移所有用户,例如:!summon @role

这样,所有具有该特定角色的用户都应该进入用户键入该命令的 VC

目前我的代码是这样的:

else if (command === 'summon') {
                    const channel = message.member.voice.channel;
                    message.guild.members.cache.forEach(member => {
                        member.voice.setChannel(channel);
                    });
                    message.channel.send(`${message.author} users moved to your channel!`);
                }

目前我正在移动所有用户,但我只想要具有知情角色的用户

我尝试使用:

                    message.mentions.roles.forEach(member => {
                        member.setChannel(channel);
                    });

但是没有成功……有人可以帮我解决这个问题吗?

解决方法

您可以尝试更换

message.guild.members.cache.forEach(member => {
    member.voice.setChannel(channel);
});

message.guild.members.cache.forEach(member => {
    if(member.roles.cache.has(message.mentions.roles.first()) {
        member.voice.setChannel(channel);
    }
}

因为 member.roles.cache 是一个 Collection,所以它有一个函数 .has。我们使用 message.mentions.roles.first() 从消息中获取第一个角色提及,并使用 member.roles.cache.has() 检查它是否存在于用户的当前角色中。如果用户确实具有消息中提到的第一个角色,则该函数返回 true,我们可以将其移动到指定的频道。希望这会有所帮助,不要忘记 https://discord.js.org/#/docs 的一些文档,它非常有用?。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。