javascript - Discord.js 类型错误 : Cannot read property 'id' of undefined

标签 javascript node.js discord.js

错误发生在 if(serversInfo[user.guild.id].modlog_enabled

此外,让 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 的错误。 modlog_enabled 已在 .json 文件中设置为 true,但它看不到它。我的其他事件在检查 modlog_enabled 时工作正常。

最佳答案

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)}

});

关于javascript - Discord.js 类型错误 : Cannot read property 'id' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50101090/

相关文章:

javascript - 为什么我无法登录 Discord.js 客户端?

javascript - 某些 Bootstrap 类不工作(Bootstrap 4、Navbar 和 bg-)

javascript - Angular 中虚拟列表的性能优化

javascript - 如果你用 express js 重载同一条路线会发生什么?

node.js - 从消息中获取图像 URL

Discord Js 为具有默认头像的服务器成员提供 null avatarURL

Javascript 替换字符串中的内容(如果存在)

javascript - 仅当第一个字段有值时启用日期选择器

javascript - 通过 JavaScript 函数调用 Web API

node.js - Winston-记录堆栈错误