首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Discord.js TypeError:无法读取未定义的属性'id‘

Discord.js TypeError:无法读取未定义的属性'id‘
EN

Stack Overflow用户
提问于 2018-04-30 20:59:06
回答 1查看 7.6K关注 0票数 2

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

另外,如果有帮助,也可以使用let serversInfo = JSON.parse(fs.readFileSync('./data/servers.json', 'utf8'));

代码语言:javascript
复制
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时,我的其他事件运行正常。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-30 21:17:18

client.on('guildBanAdd')返回一个行会和一个用户,而不是两者都返回。

而且用户不再是行会成员,所以使用user.guild没有多大意义。

代码语言:javascript
复制
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)}

});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50101090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档