Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const Discord = require('discord.js')
- const client = new Discord.Client()
- const config = require("./config.json")
- const Enmap = require('enmap')
- client.balance = new Enmap({ name: "balance"}) //To add money: client.balance.math(key, "+", (amount), "balance").
- client.balance.defer.then( () => {
- console.log(client.balance.size + " keys loaded.")
- })
- client.on('ready', () => {
- console.log("Connected as " + client.user.tag)
- client.user.setActivity("my job.")
- console.log("Servers:")
- client.guilds.forEach((guild) => {
- console.log(" - " + guild.name)
- })
- console.log("Channels:")
- client.channels.forEach((channel) => {
- console.log(` --- ${channel.name} (${channel.type}) - ${channel.id}`)
- })
- var generalChannel = client.channels.get("509925667664560129")
- generalChannel.send("Bot has started!")
- })
- client.on('message', (receivedMessage) => {
- if (receivedMessage.guild) {
- if (receivedMessage.author == client.user) { //Ignore own messages.
- return
- }
- const key = `${receivedMessage.guild.id} - ${receivedMessage.author.id}`
- client.balance.ensure(key, {
- user: receivedMessage.author.id,
- guild: receivedMessage.guild.id,
- balance: 0
- })
- if (receivedMessage.content.includes(client.user.toString())) { //Don't ping the bot.
- receivedMessage.channel.send("If you ping me, you'll make me angry! You wont like me when I'm angry!")
- }
- if (receivedMessage.content.startsWith(config.prefix)) { //Listen for commands.
- processCommand(receivedMessage)
- }
- } else {
- return
- }
- })
- function processCommand(receivedMessage) {
- let fullCommand = receivedMessage.content.substr(1)
- let splitCommand = fullCommand.split(" ")
- let primaryCommand = splitCommand[0]
- let arguments = splitCommand.slice(1)
- console.log("Command received: " + primaryCommand)
- console.log("Arguments: " + arguments)
- switch(primaryCommand) {
- case "help" :
- helpCommand(arguments, receivedMessage)
- break;
- case "ping" :
- pingCommand(arguments, receivedMessage)
- break;
- case "balance" :
- balanceCommand(arguments, receivedMessage)
- break;
- case "bal" :
- balanceCommand(arguments, receivedMessage)
- break;
- case "leaderboard" :
- leaderboardCommand(arguments, receivedMessage)
- break;
- default:
- helpCommand(arguments, receivedMessage)
- }
- }
- function helpCommand(arguments, receivedMessage) {
- switch(arguments) {
- case "ping" :
- receivedMessage.channel.send("You dont know what ping pong is?")
- break;
- case "leaderboard" :
- receivedMessage.channel.send("Displays the top ten richest members in your guild.")
- break;
- case "balance":
- receivedMessage.channel.send("This is your wallet. How much money do you have?")
- break;
- default:
- receivedMessage.channel.send("Not working properly!")
- }
- }
- function pingCommand(arguments, receivedMessage) {
- receivedMessage.channel.send("Pong!")
- }
- function balanceCommand(arguments, receivedMessage) {
- const key = `${receivedMessage.guild.id} - ${receivedMessage.author.id}`
- receivedMessage.channel.send(`You currently have ${client.balance.get(key, "balance")} dollars!`)
- }
- function leaderboardCommand(arguments, receivedMessage) {
- const filtered = client.balance.filter( p => p.guild === receivedMessage.guild.id ).array()
- const sorted = filtered.sort((a, b) => a.balance - b.balance)
- const top10 = sorted.splice(0, 10)
- const embed = new Discord.RichEmbed()
- .setTitle("Leaderboard")
- .setAuthor(client.user.username, client.user.avatarURL)
- .setDescription("The top ten richest members!")
- .setColor(0x00AE86)
- for(const data of top10) {
- embed.addField(client.users.get(data.user).tag, `${data.balance} money!`)
- }
- receivedMessage.channel.send({embed})
- }
- client.login(config.token)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement