user9682247
user9682247

Reputation:

Discord.js TypeError: Cannot read property 'id' of undefined

The error happens at if(serversInfo[user.guild.id].modlog_enabled

Also, let serversInfo = JSON.parse(fs.readFileSync('./data/servers.json', 'utf8')); if that helps.

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

I have tried to use just guild.id but that didn't seem to work as I would get an error of guild is not defined. modlog_enabled has been set to true in the .json file but it doesn't see it. My other events work fine when checking modlog_enabled.

Upvotes: 2

Views: 8291

Answers (1)

André
André

Reputation: 4497

client.on('guildBanAdd') returns a guild and a user, not both together.
And the user is not on the guild anymore, so using user.guild wouldn't make much sense.

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

});

Upvotes: 1

Related Questions