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的指南(当前版本)