Discord.js 无法读取属性';角色';未定义的

Discord.js 无法读取属性';角色';未定义的,discord.js,Discord.js,我正在做一个机器人,我有一个错误,我不明白在这个代码:pas const Discord=require(“Discord.js”); const client=new Discord.client(); const token=“”; client.login(令牌) client.on(“message”,异步(message)=>{ 让staffRole=message.guild.roles.find(“name”、“Staff”); 让staff=message.guild.membe

我正在做一个机器人,我有一个错误,我不明白在这个代码:pas

const Discord=require(“Discord.js”);
const client=new Discord.client();
const token=“”;
client.login(令牌)
client.on(“message”,异步(message)=>{
让staffRole=message.guild.roles.find(“name”、“Staff”);
让staff=message.guild.member(message.author);
if(message.author.id==“424974772959444993”| | message.member.roles.has(staffRole.id)){
返回;
}
var坏话=[
“asd”,
“军团动物”,
“verga”,
“vrga”,
“nmms”,
“alv”,
“电动马达”,
“翻拍”
];
var words=message.content.toLowerCase().trim().match(/\w+|\s+|[^\s\w]+/g);
var containsBadWord=words.some(word=>{
返回坏单词。包括(单词);
});
if(containsBadWord){
message.delete();
message.author.send({embed:{
颜色:3447003,
描述:`有一座宫殿没有许可证吗`
}
message.channel.send(`${prefix}tempmute${message.author}`+“5m palabra prohibida”)
}
});
这是我得到的一个错误:

(节点:4952)未处理的PromisejectionWarning:TypeError:无法读取属性
null的“角色”
在Client.Client.on(C:\Users\Francisco\Desktop\role\app.js:8:33)

有人能帮我吗?
我不擅长调试错误。

消息。公会
可能返回
null
,因为消息是在dm对话中发送的,而不是公会

您可以通过以下方式避免此问题:

if(message.channel.type!=“text”)返回;

另外,自
discord.js
v12+以来,一些方法发生了一些变化。您应该替换:

让staffRole=message.guild.roles.find(“name”、“Staff”);
与:

让staffRole=message.guild.roles.cache.find(role=>role.name==“Staff”);
并替换:

message.member.roles.has(staffRole.id)
与:

message.member.roles.cache.has(staffRole.id)

如果您刚开始编程,我建议您格式化您的代码,这样更容易查看,也更容易发现错误。似乎该消息不是在公会中发送的,如果您看到该消息是一个