User Data
Setting individual's user data
When you start up your bot, MongoDB will automatically connect. If and error doesn't show up, you can continue. When writing a command, you can get the data of the person who sent the command by adding ds.getUserData();
It will look like this:
new ds.Command({
name: 'ping',
aliases: ['p'],
async execute({send, label}) {
const myData = await ds.getUserData();
console.log(myData);
//send(`Pong! (${label})`);
}
});
when we run this command, you should get an empty object ({}
) this is because we haven't set a default data, you can do this by adding (before the command) ds.defaultUserData();
Like this:
ds.defaultUserData({
money: 0,
name: 'unkown'
});
anything that you put in the defultUserData
will be set whenever a new user is saved to the database.
you can set user data by running ds.setUserData();
ds.setUserData({
money: 3,
name: 'example-person'
});
if you don't add one of the parts, it will still be there in the database! adding more after setting the money to 3 will do this:
ds.setUserData({
money: 3,
name: 'example-person'
});
// after
ds.setUserData({
money: 12
});
// logging data
console.log(await ds.getUserData());
you will get this output:
{
money: 3,
name: 'example-person'
}
both ds.getUserData();
and ds.setUserData();
are promises, so you might want to add await
before them.
You can also add another argument for the user's id. this will be at the end, like this:
await ds.setUserData({
money: 153,
name: 'amazing-example'
}, 'USER-ID');
// and
const data = await ds.getUserData('USER-ID');
You can also get all user data by running ds.getAllUserData();
(also a promise) it will come in a form like this:
[
{
_id: 'USER-ID', // the user's id
data: { // the data that you game them
money: 153,
name: 'amazing-example'
},
__v: 0 // useless data
},
{
_id: 'USER-ID',
data: {
money: 3,
name: 'example-person'
},
__v: 0
}
]
Last updated
Was this helpful?