首页 > 解决方案 > Discord.js role not getting added with no errors

问题描述

I'm trying to add a role to a user, but I’m getting no errors. I’m using a slash command.

let role = interaction.member.guild.roles.cache.find(r => r.name == "Amazing")
interaction.member.roles.add(role)

// interaction is from the interactionCreate event

标签: javascriptdiscord.js

解决方案


在 discord.js v13interaction.member中没有添加角色的功能。我会获取guildMember对象然后添加角色。

例子:

let guild = await client.guilds.fetch(interaction.guild_id)
let member = guild.members.cache.get(interaction.member.user.id);
let role = guild.roles.cache.find(r => r.name == "Amazing");
if (!role)
    return console.log("the role doesn't exist");
member.roles.add(role);

完整示例:

const Discord = require("discord.js");
const client = new Discord.Client();

client.on("interactionCreate", async (interaction) => {
    ...
    let guild = await client.guilds.fetch(interaction.guild_id)
    let member = guild.members.cache.get(interaction.member.user.id);
    let role = guild.roles.cache.find(r => r.name == "Amazing");
    if (!role)
        return console.log("the role doesn't exist");
    member.roles.add(role);
});

client.login('Your-token');

推荐阅读