在开始之前,我想先说一下,我绝不是开发人员/脚本作者/编码人员,或者任何您想称呼的人。无论如何,我试图发出一个踢命令,它有效,但是它说:Cannot read property 'hasPermission' of null.
而且我担心它会让任何人踢人,即使它还没有发生,那就是看起来像什么。这是代码:
client.on('message', message => {
if(message.member.hasPermission("KICK_MEMBERS"))
if(message.content.startsWith(`${prefix}kick`)) {
let member = message.mentions.members.first();
member.kick().then(member)
message.channel.send(member.displayName + " was kicked.")
}
})
答案 0 :(得分:1)
您正在hasPermission
上呼叫message.member
。这表明message.member
是null
,至少在某些时候被称为。
您可以尝试更改为:
if(message.member && message.member.hasPermission("KICK_MEMBERS")) {
,这应确保message.member
具有一个值,然后再尝试对其取消引用。如果没有member
,那么它什么也不会做。
我不确定不一致的API的工作方式,因此我不知道这是否处于预期状态(或者member
是要查看的正确字段),所以如果这一直在发生,那么您应该确保这是正确的。
此外,我怀疑这是错误的:
member.kick().then(member)
message.channel.send(member.displayName + " was kicked.")
,可能应该是:
member.kick().then(member =>
message.channel.send(member.displayName + " was kicked."));