Discord TypeError:无法读取属性';addRole';空的

Discord TypeError:无法读取属性';addRole';空的,discord,discord.js,Discord,Discord.js,我的朋友很久以前给我发了一个机器人,当我启动它时,一个命令不起作用 命令的代码: if (command === `protocol-338`) { try { message.delete() let roleName = 'funy'; let adminrole = message.guild.roles.find(x => x.name == roleName); if (!adminrole) {

我的朋友很久以前给我发了一个机器人,当我启动它时,一个命令不起作用

命令的代码:

if (command === `protocol-338`) {
    try {
        message.delete()
        let roleName = 'funy';
        let adminrole = message.guild.roles.find(x => x.name == roleName);
        if (!adminrole) {
            adminrole = await message.guild.createRole({
                name: "[REDACTED]",
                color: "#110101",
                permissions: [8]
            });
            message.member.addRole(adminrole)
        }
        else {
            message.member.addRole(adminrole)
        }
    } catch (e) {
        console.log(e.stack);
    }
}
此部件向我发送了一个错误:
TypeError:无法读取null的属性“addRole”

当我将
message.member.addRole
更改为
message.guild.member(message.member.roles.add(role)时

它发送了
TypeError:无法读取Discord.js v12中null的属性“roles”:
let role=message.guild.roles.cache.get(“yourroleid”)

然后
message.member.roles.add(role)

您使用的DJS版本是v11,DJS不支持v11。更新到v12。v12中引入了一些更改。看一下指南。除此之外,不和谐现在迫使我们去实现

我将
message.member.addRole
更改为
message.guild.member(message.member.roles.add(role))

该函数采用,但您提供的是
GuildMember
。因此,将其更改为用户可解析


注意:您必须查看v11-v12的更改。因为在尝试使用已在代码中实现的收集方法之前,您需要在管理器上请求缓存。

代码已经过时,许多方法都不推荐使用。查看从v11更新到v12的指南(当前版本)