提问者:小点点

discord.js TypeError:无法读取未定义的属性“add”,该怎么办?


我想制作/mute command,但在添加角色时有一个问题。 在我的行Await member.roles.add(muterole)。catch(console.error);写入错误:无法读取未定义的属性“add”。 我不知道该怎么办。 请帮帮我。 我的完整代码:

const Discord = require('discord.js');
const Bot = new Discord.Client();

Bot.on("ready", () => {
    console.log(`Bot joined by ${Bot.user.tag}`);
});

Bot.on("message", async msg => {
    if (msg.author.bot) return;
    if (msg.channel.type === "dm") return;

    let Prefix = "/";

    if (msg.content.startsWith(Prefix)) {
        let massive = msg.content.split(" ");
        let cmd = massive[0];
        let args = massive.slice(1);

        if (msg.content.startsWith(`${Prefix}mute`)) {
            let member = msg.mentions.users.first();
            if (member) {
                //let member = msg.guild.member(user);
                let muterole = msg.guild.roles.cache.find(role => role.name === "Muted");

                await member.roles.add(muterole).catch(console.error);
            }
        }
    }
})

Bot.login('my token been hidden :)');

共1个答案

匿名用户

根据discord.js文档类user,它在这里由msg.mentions.users.first()实体表示,它没有属性“roles”

upd:您可能正在查找msg.mentions.members.first(),它是GuildMember的实体。