1

I'm making a Discord bot using discord.js, and I'm starting to add JSON stuff to it, so that I can store info for individual users, in a separate file. However, I keep getting an error that says planet is not defined, at the line that says if (bot.log[mentionedGuyName].planet == undefined) {. There are some variables, modules etc. in here that haven't been declared or whatnot, but that's only because if I put all my code on here, it would be pages long. My JSON file is called log.json.

The general purpose of this code block, if it helps, is to see if the user already has a "planet". If so, the bot finds gets that value from the JSON file, and sends it to the channel. If not, then it picks a random one (code I didn't put here because of size)

I think I understand at least kind of why the error is occurring (the planet property isn't defined), but I'm not sure how to fix it. If anyone knows how to declare a JSON property or whatever is going on here, I and my server would be most grateful. Thanks in advance!

Here's my JavaScript file:

let mentionedGuy = message.mentions.members.first();
let mentionedGuyName = null;
let noMentions = message.mentions.members.first() == false || 
message.mentions.members.first() == undefined;
if (noMentions) return;
else mentionedGuyName = mentionedGuy.user.username;

if (message.content.startsWith(prefix + "planet")) {
    if (message.content.length > 7) {
        if (bot.log[mentionedGuyName].planet == undefined) {
            bot.log[mentionedGuyName] = {
                planet: jMoon
                }
                fs.writeFile('./log.json', JSON.stringify(bot.log, null, 4), err => {
                    if (err) throw err;
                });
                message.channel.send(targeting);
                message.channel.send(coords);
        } else {
            message.channel.send(bot.log[mentionedGuyName].planet);
        }
    }
}
SuperNunb
  • 133
  • 2
  • 13

1 Answers1

0

Change it so it checks the typeof

if(typeof <var> == 'undefined') //returns true if undefined

Noting that typeof returns a string Source

Saddy
  • 1,515
  • 1
  • 9
  • 20
  • Thanks, but it still gave me the same error. Do you have any ideas on how to fix it saying "planet is undefined"? – SuperNunb Jun 30 '18 at 12:07