错误发生在if(serversInfo[user.guild.id].modlog_enabled
另外,如果有帮助,也可以使用let serversInfo = JSON.parse(fs.readFileSync('./data/servers.json', 'utf8'));
。
client.on('guildBanAdd', user => {
if (serversInfo[user.guild.id].modlog_enabled == true && serversInfo[user.guild.id].modlog_channel !== null) {
var d = Date.now()
d = new Date(d)
d = d.getMonth() + 1 + '/' + d.getDate() + '/' +
d.getFullYear() + ' ' +
(d.getHours() > 12 ? d.getHours() - 12 : d.getHours()) + ':' + d.getMinutes() + ' ' + (d.getHours() >= 12 ? 'PM' : 'AM')
client.channels
.get(serversInfo[user.guild.id].modlog_channel)
.send(`${user}**//**${user.id} was banned on **${d}**.`)
} else if (err) {
console.log(err)
}
})
我试着只使用guild.id
,但似乎不起作用,因为我会得到一个错误的guild is not defined
。在.json文件中,modlog_enabled
已设置为true,但它看不到它。在检查modlog_enabled
时,我的其他事件运行正常。
发布于 2018-04-30 21:17:18
client.on('guildBanAdd')
返回一个行会和一个用户,而不是两者都返回。
而且用户不再是行会成员,所以使用user.guild
没有多大意义。
client.on('guildBanAdd', (guild, user) => {
if(serversInfo[guild.id].modlog_enabled == true && serversInfo[guild.id].modlog_channel !== null){
var d = Date.now();
d = new Date(d);
d = (d.getMonth()+1)+'/'+d.getDate()+'/'+d.getFullYear()+' '+(d.getHours() > 12 ? d.getHours() - 12 : d.getHours())+':'+d.getMinutes()+' '+(d.getHours() >= 12 ? "PM" : "AM");
client.channels.get(serversInfo[guild.id].modlog_channel).send(`${user}**//**${user.id} was banned on **${d}**.`)
} else if (err){console.log(err)}
});
https://stackoverflow.com/questions/50101090
复制相似问题