0

This is my code and the values keep being undefined https://cdn.discordapp.com/attachments/501784044649054231/509529437419732994/unknown.png

This code is suppose to be

!rebirth 1 1 1 

and it should reply in embed

Collective cash 1
Lifecoins 1
Tokens 1

exports.run = (_client, message, args) => {
let {Cash} = args[0]; // Remember arrays are 0-based!.
let {Tokens} = args[1];
let {LifeCoins} = args[2];
const Discord = require('discord.js')

var embed = new Discord.RichEmbed()
    .setTitle("Rebirth")
    .setAuthor("Author Name", `${message.author.avatarURL}`)
    .setTimestamp()
    .addField("Collective Cash", `${Cash}`)
    .addField("Lifecoins", `${LifeCoins}`)
    .addField("Tokens", `${Tokens}`)
    .addBlankField(true)

message.channel.send({
    embed
})
}
Alpha1229
  • 11
  • 1
  • 8

2 Answers2

1
exports.run = (_client, message, args) => {
    let rest_of_the_string = message.content.slice('embed'.length); //removes the first part
    let array_of_arguments = rest_of_the_string.split(' '); //[Cash LifeCoints Tokens]
    const Discord = require('discord.js')

    var embed = new Discord.RichEmbed()
        .setTitle("Rebirth")
        .setAuthor("Author Name", `${message.author.avatarURL}`)
        .setTimestamp()
        .addField("Collective Cash", array_of_arguments[0])
        .addField("Lifecoins", array_of_arguments[1])
        .addField("Tokens", array_of_arguments[2])
        .addBlankField(true)

    message.channel.send({
        embed
    })
    }

Try that

Cursed
  • 988
  • 1
  • 8
  • 24
0

2 issues:

1st problem is with the last line:

message.channel.send({embed});

In JS, {embed} is the same as saying {embed:undefined} as you didn't specify any values.

In discord.js, just doing message.channel.send(embed) does the trick.

2nd problem:

You used object destructuring in the variables, In your code:

let {Cash} = args[0]; // Remember arrays are 0-based!.
let {Tokens} = args[1];
let {LifeCoins} = args[2];

is equal to

let Cash = args[0].Cash; // Remember arrays are 0-based!.
let Tokens = args[1].Tokens;
let LifeCoins = args[2].LifeCoins;

which obviously returns undefined (there is no "Cash" property)

Instead, you should do:

let Cash = args[0]; // Remember arrays are 0-based!.
let Tokens = args[1];
let LifeCoins = args[2];

The code should now look like this:

exports.run = (_client, message, args) => {
let Cash = args[0]; // Remember arrays are 0-based!.
let Tokens = args[1];
let LifeCoins = args[2];
const Discord = require('discord.js')

var embed = new Discord.RichEmbed()
    .setTitle("Rebirth")
    .setAuthor("Author Name", `${message.author.avatarURL}`)
    .setTimestamp()
    .addField("Collective Cash", `${Cash}`)
    .addField("Lifecoins", `${LifeCoins}`)
    .addField("Tokens", `${Tokens}`)
    .addBlankField(true)

message.channel.send(embed)
wyvern
  • 116
  • 1
  • 7