DiscordEco
A easy npm package for making economy bots.
Updates
Added support for MongoDB v6
Installation
npm i @jcauman23/discordnsfw
Starting
Start off by connecting DiscordEco to MongoDB.
async function ecoInit(){
const ecoDB = require('@jcauman23/discordeco');
ecoDB.connect('mongodb+srv://example:example@example.mongodb.net/example');
await console.log("Connected to the database!");
}
ecoInit()
All Methods
createUser(userId, guildId)
Adds a user to the database.
deleteUser(userId, guildId)
Deletes a user from the database.
deposit(userId, guildId, amount)
Deposits a certain amount in the database. (Has integrated checking for account, just throw the error and it should work!)
giveCoins(userId, guildId, amount)
Gives coins to a user. Adds the user to the database if the user is saved to the database.
deductCoins(userId, guildId, amount)
Deducts coins from a user.
findUser(userId, guildId)
Finds the user in the database.
giveBankSpace(userId, guildId, amount)
Gives bank space to a user.
generateLeaderboard(guildId, amount)
Generates a leaderboard. See examples for an example on how to use.
withdraw(userId, guildId, amount)
Withdraws a certain amount from the users bank(also has integrated checking.)
Command Examples
Balance Command
const ecoDB = require('@jcauman23/discordeco');
const { MessageEmbed } = require('discord.js');
const member = message.mentions.members.first() || message.member;
const user = await ecoDB.findUser(member.id, message.guild.id); // Get the user from the database.
const embed = new MessageEmbed()
.setTitle(`${member.user.username}'s Balance`)
.setDescription(`Wallet: ${user.coinsInWallet}
Bank: ${user.coinsInBank}/${user.bankSpace}
Total: ${user.coinsInBank + user.coinsInWallet}`);
message.channel.send(embed);
Beg Command
const ecoDB = require('@jcauman23/discordeco');
const randomCoins = Math.floor(Math.random() * 99) + 1; // Random amount of coins.
await ecoDB.giveCoins(message.member.id, message.guild.id, randomCoins);
Leaderboard Command
const ecoDB = require('@jcauman23/discordeco');
const { MessageEmbed } = require('discord.js');
const leaderboard = await ecoDB.generateLeaderboard(message.guild.id, 10);
if (leaderboard.length < 1) return message.channel.send("Nobody's on the leaderboard.");
const mappedLeaderboard = leaderboard.map(i => `${client.users.cache.get(i.userId).tag ? client.users.cache.get(i.userId).tag : "Nobody"} - ${i.coinsInWallet}`);
const embed = new MessageEmbed()
.setTitle(`${message.guild.name}\'s Leaderboard`)
.setDescription(`${mappedLeaderboard.join('\n')}`);
message.channel.send(embed);
Coming Soon
- Work
- Rob
- Gamble commands.