easy-discord-economy

1.1.6 • Public • Published

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')

Package Sidebar

Install

npm i easy-discord-economy

Weekly Downloads

11

Version

1.1.6

License

ISC

Unpacked Size

13 kB

Total Files

4

Last publish

Collaborators

  • xviefvs