Discord.js 检查用户是否已拥有该角色,如果已拥有,则会将其删除

Discord.js 检查用户是否已拥有该角色,如果已拥有,则会将其删除,discord.js,Discord.js,因此,我尝试创建一个代码,如果用户已经拥有该角色,它将删除该角色,如果他们没有,那么它将添加该角色。我想出了简单的方法,但它删除了它,然后又添加了它。代码中没有错误。该命令的运行方式类似于“s!role” 您可以尝试以下方法: const roleName = message.guild.roles.cache.find(r => (r.name === args[1].toString()) || (r.id === args[1].toString().replace(/[^\w\s

因此,我尝试创建一个代码,如果用户已经拥有该角色,它将删除该角色,如果他们没有,那么它将添加该角色。我想出了简单的方法,但它删除了它,然后又添加了它。代码中没有错误。该命令的运行方式类似于“s!role”

您可以尝试以下方法:

 const roleName = message.guild.roles.cache.find(r => (r.name === args[1].toString()) || (r.id === args[1].toString().replace(/[^\w\s]/gi, '')));

    const alreadyHasRole = member._roles.includes(roleName.id);

     if(alreadyHasRole) {
    member.roles.remove(roleName).then(() => message.channel.send(removeEmbed))
    client.channels.cache.get(`${process.env.MSGLOG}`).send(logEmbed2);
    return;
    } 

这将检查是否存在角色。您可以随时更改roleName变量。

这不是它的工作方式。我们不会去其他网站获取有关您问题的信息。根据指南,所有相关信息必须在问题本身中。请将您的帖子以.Edited的形式包含在这里,对此表示抱歉。
 const roleName = message.guild.roles.cache.find(r => (r.name === args[1].toString()) || (r.id === args[1].toString().replace(/[^\w\s]/gi, '')));

    const alreadyHasRole = member._roles.includes(roleName.id);

     if(alreadyHasRole) {
    member.roles.remove(roleName).then(() => message.channel.send(removeEmbed))
    client.channels.cache.get(`${process.env.MSGLOG}`).send(logEmbed2);
    return;
    }