I'm using quick.db I want to have a little space between each item because if a user bought two items the items would view like "item1,item2" next to each other Is there a way to put space between them?
Inventory command's code
let hats = db.get(`${message.author.id}.userHats`)
if(hats === undefined) hats = "none"
let outfits = db.get(`${message.author.id}.userOutfits`)
if(outfits === undefined) outfits = "none"
let pets = db.get(`${message.author.id}.userPets`)
if(pets === undefined) pets = "none"
const embed = new Discord.MessageEmbed()
.setTitle(`${message.author.tag}\'s inventory`)
.addField(`Hats`, `${hats}` || "none")
.addField(`Outfits`, `${outfits}` || "none")
.addField(`Pets`, `${pets}` || "none")
.setTimestamp()
.setColor('#00ffff')
.setFooter(message.member.user.tag, message.author.avatarURL());
message.channel.send(embed)
How i push the items into "userHats"
db.push(`${message.author.id}.userHats`, args[1])
the args[1]
is the item name
would putting space between the items in the inv command require a different storing way?
EDIT: I store the data like in the sqlite file like this:
{
balance: 2558,
bank: 1898,
skin: 'cyan',
userHats: [ 'plaguedoctor', 'egg' ]
}
I tried to use .join()
and just found it and gives the error "TypeError: outfits.join is not a function" because "outfits" the user doesn't have any of it and he had of "hats" removing the "outfits" and "pets" makes the command works because he only has hats, is there a way to make it ignore the empty or undefined ones? i tried if(outfits === undefined) outfits = "none"
but it doesn't seem to be working and gives the same error
updated code:
let hats = db.get(`${message.author.id}.userHats`)
if(hats === undefined) hats = "none"
let hats2 = hats.join(", ")
let outfits = db.get(`${message.author.id}.userOutfits`)
if(outfits === undefined) outfits = "none"
let outfits2 = outfits.join(", ")
let pets = db.get(`${message.author.id}.userPets`)
if(pets === undefined) pets = "none"
let pets2 = pets.join(", ")
If the items are stored as arrays such as:
then you can use
outfits.join(', ')
to join the array's items with a,
between each one.Alternatively, if your database stores it as a string, you can just do:
which would replace the first instance of
,
in the string with,
. However, since there are likely many items, you'll want to use regex to replace all instances of the comma, so that would instead look like:Either way, no need to worry about restructuring all your data since there are ways to make it display the way you want it to!