【发布时间】:2021-04-14 15:03:33
【问题描述】:
目的:禁止未经授权的用户将成员踢出我的服务器。
代码:
client.on("guildMemberRemove", async member => {
const FetchingLogs = await member.guild.fetchAuditLogs({
limit: 1,
type: "MEMBER_KICK",
});
const kickLog = FetchingLogs.entries.first();
if (!kickLog) {
return console.log(red(`${member.user.tag} was kicked in ${member.guild.name} but nothing was registered in the audit log...`));
}
const { executor, target, createdAt } = kickLog
if (target.id === member.id) {
console.log(greenBright(`${member.user.tag} got kicked in ${member.guild.name}, by ${executor.tag}`));
} else if (target.id === executor.id) {
return
}
if (executor.id !== client.user.id) {
member.guild.member(executor).ban({
reason: `Unauthorised Kick`
}).then(member.guild.owner.send(`**Unauthorised Kick By:** ${executor.tag} \n**Victim:** ${target.tag} \n**Time:** ${createdAt.toDateString()} \n**Sentence:** Ban.`)).catch();
}
})
结果: 它禁止执行器,但仍然抛出此错误:
(node:10272) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'ban' of null
您能否告诉我为什么会发生这种情况以及我可以如何消除此错误。感谢所有帮助;)
【问题讨论】:
标签: discord discord.js