Advertisement
Guest User

Untitled

a guest
Nov 12th, 2018
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.99 KB | None | 0 0
  1. const Discord = require('discord.js')
  2. const client = new Discord.Client()
  3. const config = require("./config.json")
  4. const Enmap = require('enmap')
  5. client.balance = new Enmap({ name: "balance"}) //To add money: client.balance.math(key, "+", (amount), "balance").
  6.  
  7. client.balance.defer.then( () => {
  8. console.log(client.balance.size + " keys loaded.")
  9. })
  10.  
  11. client.on('ready', () => {
  12. console.log("Connected as " + client.user.tag)
  13.  
  14. client.user.setActivity("my job.")
  15.  
  16. console.log("Servers:")
  17.  
  18. client.guilds.forEach((guild) => {
  19. console.log(" - " + guild.name)
  20. })
  21.  
  22. console.log("Channels:")
  23. client.channels.forEach((channel) => {
  24. console.log(` --- ${channel.name} (${channel.type}) - ${channel.id}`)
  25. })
  26.  
  27. var generalChannel = client.channels.get("509925667664560129")
  28. generalChannel.send("Bot has started!")
  29.  
  30. })
  31.  
  32. client.on('message', (receivedMessage) => {
  33.  
  34. if (receivedMessage.guild) {
  35.  
  36. if (receivedMessage.author == client.user) { //Ignore own messages.
  37. return
  38. }
  39.  
  40. const key = `${receivedMessage.guild.id} - ${receivedMessage.author.id}`
  41.  
  42. client.balance.ensure(key, {
  43. user: receivedMessage.author.id,
  44. guild: receivedMessage.guild.id,
  45. balance: 0
  46. })
  47.  
  48. if (receivedMessage.content.includes(client.user.toString())) { //Don't ping the bot.
  49. receivedMessage.channel.send("If you ping me, you'll make me angry! You wont like me when I'm angry!")
  50. }
  51.  
  52. if (receivedMessage.content.startsWith(config.prefix)) { //Listen for commands.
  53. processCommand(receivedMessage)
  54. }
  55. } else {
  56. return
  57. }
  58. })
  59.  
  60. function processCommand(receivedMessage) {
  61. let fullCommand = receivedMessage.content.substr(1)
  62. let splitCommand = fullCommand.split(" ")
  63. let primaryCommand = splitCommand[0]
  64. let arguments = splitCommand.slice(1)
  65.  
  66. console.log("Command received: " + primaryCommand)
  67. console.log("Arguments: " + arguments)
  68.  
  69. switch(primaryCommand) {
  70. case "help" :
  71. helpCommand(arguments, receivedMessage)
  72. break;
  73. case "ping" :
  74. pingCommand(arguments, receivedMessage)
  75. break;
  76. case "balance" :
  77. balanceCommand(arguments, receivedMessage)
  78. break;
  79. case "bal" :
  80. balanceCommand(arguments, receivedMessage)
  81. break;
  82. case "leaderboard" :
  83. leaderboardCommand(arguments, receivedMessage)
  84. break;
  85. default:
  86. helpCommand(arguments, receivedMessage)
  87. }
  88. }
  89.  
  90. function helpCommand(arguments, receivedMessage) {
  91. switch(arguments) {
  92. case "ping" :
  93. receivedMessage.channel.send("You dont know what ping pong is?")
  94. break;
  95. case "leaderboard" :
  96. receivedMessage.channel.send("Displays the top ten richest members in your guild.")
  97. break;
  98. case "balance":
  99. receivedMessage.channel.send("This is your wallet. How much money do you have?")
  100. break;
  101. default:
  102. receivedMessage.channel.send("Not working properly!")
  103. }
  104. }
  105.  
  106. function pingCommand(arguments, receivedMessage) {
  107. receivedMessage.channel.send("Pong!")
  108. }
  109.  
  110. function balanceCommand(arguments, receivedMessage) {
  111. const key = `${receivedMessage.guild.id} - ${receivedMessage.author.id}`
  112. receivedMessage.channel.send(`You currently have ${client.balance.get(key, "balance")} dollars!`)
  113. }
  114.  
  115. function leaderboardCommand(arguments, receivedMessage) {
  116. const filtered = client.balance.filter( p => p.guild === receivedMessage.guild.id ).array()
  117. const sorted = filtered.sort((a, b) => a.balance - b.balance)
  118. const top10 = sorted.splice(0, 10)
  119. const embed = new Discord.RichEmbed()
  120. .setTitle("Leaderboard")
  121. .setAuthor(client.user.username, client.user.avatarURL)
  122. .setDescription("The top ten richest members!")
  123. .setColor(0x00AE86)
  124.  
  125. for(const data of top10) {
  126. embed.addField(client.users.get(data.user).tag, `${data.balance} money!`)
  127. }
  128. receivedMessage.channel.send({embed})
  129. }
  130.  
  131. client.login(config.token)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement