A discord economy package that use mongo database for beginner
npm install easy-discord-economyjs
npm i easy-discord-economy
`
With yarn
`js
yarn add easy-discord-economy
`
Documentation
Settings
We need to include the module to our project
`js
const Eco = require('easy-discord-economy');
`
And set the mongodb url
`js
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.
`js
Eco.createUser(userId: string, guildId: string);
`
- Output:
`
Promise`
deleteUser
If the entry exists, it deletes it from database.
`js
Eco.deleteUser(userId: string, guildId: string);
`
- Output:
`
Promise`
add
Add a specific amount of money to wallet or bank in the database
`js
Eco.add(userId: string, guildId: string, amount: number);
`
- Output:
`
Promise
`
subtract
Subtract specific amount of money in wallet or bank in the database
`js
Eco.subtract(userId: string, guildId: string, amount: number);
`
- Output:
`
Promise
`
setMoney
Set a specific amount of money for a user
`js
Eco.setMoney(userId: string, guildId: string, amount: number);
`
- Output:
`
Promise
`
setBank
Set a specific amount of money for a user
`js
Eco.setBank(userId: string, guildId: string, amount: number);
`
- Output:
`
Promise
`
fetch
Retrives selected entry from the database, if it exists.
`js
Eco.fetch(userId: string, (guildId: string);
`
- Output:
`
Promise`
fetchLeaderboard
It gets a specified amount of entries from the database, ordered from higgest to lowest within the specified limit of entries.
`js
Eco.fetchLeaderboard(guildId: string, limit: number);
`
- Output:
`
Promise
`
computeLeaderboard
It returns a new array of object that include money, bank, guild id, user id, leaderboard position, username and discriminator.
`js
Eco.computeLeaderboard(client: Your discord client, guildId: string);
// Yes ik i borrowed some code from https://github.com/MrAugu/discord-xp
`
- Output:
`
Promise
`
work
A built in work command kinda useless :l
`js
Eco.work(userId: string, guildId: string);
`
- Output:
`
Promise
`
deleteAll
Delete all data from current guild
`js
Eco.deleteAll(guild: string);
`
- Output:
`
Promise
`
Example
`js
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.\nBank: ${bal.bank} coins.)
default:
return message.channel.send(\${command}\ is not a command.)
}
})
client.login('You discord token')
``