每当有人从服务器被禁止时,我都试图向我的审核日志发送一条消息。当有人加入服务器时,此命令有效,但是当有人被禁止或取消禁止时,该命令不起作用。
这是index.js
文件中的当前代码:
bot.on('guildBanAdd', async (member) => {
let channels = JSON.parse(
fs.readFileSync("././database/moderationChannel.json", "utf8")
);
let modchannel = channels[member.guild.id].channel;
let modChannel = bot.channels.cache.find(channel => channel.id === `${modchannel}`);
modChannel.send(`${member} was banned!`);
});
我想发生的事情是,当该会员被禁止发送邮件到时modCannel
。无论如何,这会发生吗?
正如Caramiriel在其评论中提到的那样,guildAddBan
第一个参数是guild
禁令发生的时间,第二个参数是user
被禁令的时间。没有member
参数。
另一件事,当您将通道ID存储在moderationChannel.json
文件中时。您可以使用channels.cache.get()
代替.find()
。.get()
应该首选,因为它获取具有指定键的元素(在这种情况下为通道ID)。
您还需member
要用user
in替换modChannel.send()
并检查是否modChannel
存在。检查以下代码段:
bot.on('guildBanAdd', async (guild, user) => {
let channels = JSON.parse(
fs.readFileSync('././database/moderationChannel.json', 'utf8')
);
let channelId = channels[guild.id].channel;
let modChannel = bot.channels.cache.get(channelId);
if (!modChannel) {
return console.log(`No moderation channel found with ID ${channelId}`);
}
modChannel.send(`${user} was banned!`);
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句