Installation
With npm
npm i easy-discord-economy
With yarn
yarn add easy-discord-economy
Documentation
Settings
We need to include the module to our project
const Eco = require('easy-discord-economy');
And set the mongodb url
Eco.setUrl('mongodb://...'); //You only need to set this up once
Methods
createUser
Creates an entry in database for that user if it doesnt exist.
Eco.createUser(userId: string, guildId: string);
- Output:
Promise<Object>
deleteUser
If the entry exists, it deletes it from database.
Eco.deleteUser(userId: string, guildId: string);
- Output:
Promise<Object>
add
Add a specific amount of money to wallet or bank in the database
Eco.add(userId: string, guildId: string, amount: number);
- Output:
Promise<Boolean>
subtract
Subtract specific amount of money in wallet or bank in the database
Eco.subtract(userId: string, guildId: string, amount: number);
- Output:
Promise<Boolean>
setMoney
Set a specific amount of money for a user
Eco.setMoney(userId: string, guildId: string, amount: number);
- Output:
Promise<Boolean/Object>
setBank
Set a specific amount of money for a user
Eco.setBank(userId: string, guildId: string, amount: number);
- Output:
Promise<Boolean/Object>
fetch
Retrives selected entry from the database, if it exists.
Eco.fetch(userId: string, (guildId: string);
- Output:
Promise<Object>
fetchLeaderboard
It gets a specified amount of entries from the database, ordered from higgest to lowest within the specified limit of entries.
Eco.fetchLeaderboard(guildId: string, limit: number);
- Output:
Promise<Array [Objects]>
computeLeaderboard
It returns a new array of object that include money, bank, guild id, user id, leaderboard position, username and discriminator.
Eco.computeLeaderboard(client: Your discord client, guildId: string);
// Yes ik i borrowed some code from https://github.com/MrAugu/discord-xp
- Output:
Promise<Array [Objects]>
work
A built in work command kinda useless :l
Eco.work(userId: string, guildId: string);
- Output:
Promise<Boolean>
deleteAll
Delete all data from current guild
Eco.deleteAll(guild: string);
- Output:
Promise<Boolean>
Example
const { Client } = require('discord.js')
const Eco = require('easy-discord-economy');
const client = new Client()
client.on('ready', () => {
console.log(`Logged in as ${client.user.tag}`)
})
client.on('message' async message => {
const args = message.content
.slice('eco '.length),
.trim()
.split(/ +/g)
const command = args
.shift()
.toLowerCase()
switch (command) {
case 'addmoney':
const user = message.mentions.users.first();
const amount = args[0];
if (!user) return message.channel.send('You need to mentions a user first.')
if (!amount) return message.channel.send('You need to provide an amount to add.')
await Eco.add(user.id, message.guild.id, amount) // Add money the user data.
return message.channel.send(`Added ${amount} coins in ${user} wallet.`)
case 'deposit':
const money = args[0]
await Eco.add(user.id, message.guild.id, money, 'bank') // Add money to the bank
await Eco.subtract(user.id, message.guild.id, money) // Remove money from the bank.
return message.channel.send(`Successfully deposited ${amount} coins to the bank.`)
case 'withdraw':
const withdraw = args[0]
await Eco.subtract(user.id, message.guild.id, money, 'bank') // Remove money from the bank.
await Eco.add(user.id, message.guild.id, money) // Add the money back to wallet.
return message.channel.send(`Successfully withdrawed ${withdraw} coins from the bank.`)
case 'balance':
case 'bal':
const bal = await Eco.fetch(user, guild) // This return an object { money: amount, bank: amount }
return message.channel.send(`**Wallet**: ${bal.money} coins.\n**Bank**: ${bal.bank} coins.`)
default:
return message.channel.send(`\`${command}\` is not a command.`)
}
})
client.login('You discord token')