Advertisement
Guest User

index

a guest
Mar 1st, 2018
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.28 KB | None | 0 0
  1. const Discord = require('discord.js');
  2. const bot = new Discord.Client();
  3. const fs = require('fs')
  4. const moment = require('moment');
  5. const mysql = require('mysql');
  6.  
  7. const con = mysql.createConnection({
  8. host: 'localhost',
  9. user: 'root',
  10. password: "",
  11. database: 'j4f_tokens',
  12. });
  13.  
  14. con.connect((err) => {
  15. if (err) throw err;
  16. console.log('Connected to mySQL Server.');
  17. console.log('DATABASE = j4f_tokens');
  18. });
  19.  
  20. bot.login('MyID');
  21.  
  22. require('events').EventEmitter.defaultMaxListeners = 150;
  23.  
  24. let userData = JSON.parse(fs.readFileSync('Storage/userData.json', 'utf8'));
  25.  
  26. const modRole = "administrator";
  27.  
  28.  
  29. bot.on('message', message => {
  30.  
  31. let sender = message.author;
  32. let msg = message.content.toUpperCase();
  33. let prefix = '$';
  34.  
  35. if (bot.user.id === message.author.id) {return}
  36.  
  37. let userData = JSON.parse(fs.readFileSync('Storage/userData.json', 'utf8'));
  38.  
  39. if (!userData[sender.id + message.guild.id]) userData[sender.id + message.guild.id] = {}
  40. if (!userData[sender.id + message.guild.id].money) userData[sender.id + message.guild.id].money = 0;
  41. if (!userData[sender.id + message.guild.id].lastDaily) userData[sender.id + message.guild.id].lastDaily = "Not collected";
  42. if (!userData[sender.id + message.guild.id].username) userData[sender.id + message.guild.id].username = message.author.username;
  43.  
  44. if (message.content == prefix + "ping") {
  45. message.channel.sendMessage('Pong!');
  46. }
  47.  
  48. if (message.content == prefix + "give") {
  49.  
  50. if (!message.member.hasPermission('ADMINISTRATOR')) return message.channel.sendMessage("You need the role '" + modRole + "' to use this command!");
  51.  
  52. const userMention = message.mentions.users.first();
  53.  
  54. let definedUser = '';
  55. if (!userMention) {
  56. definedUser = message.author.id;
  57.  
  58.  
  59. userData[message.author.id + message.guild.id].money + 1;
  60. message.channel.sendMessage("You gave " + message.author.username + " 1 extra J4Token!");
  61.  
  62. return;
  63. } else {
  64. definedUser = firstMentioned.id;
  65. userData[firstMentioned.id + message.guild.id].money + 1;
  66. message.channel.sendMessage("You gave 1 " + definedUser + " extra J4Token!");
  67.  
  68. }
  69. }
  70. if (message.content == prefix + 'balance'){
  71. message.channel.sendMessage({"embed":{
  72. title: "J4Tokens",
  73. color: 0xa9ef27,
  74. fields: [{
  75. name:"Player",
  76. value:message.author.username,
  77. inline:true
  78. },
  79. {
  80. name:"J4Tokens",
  81. value:userData[sender.id + message.guild.id].money,
  82. inline:true
  83. }]
  84. }});
  85. }
  86.  
  87. if (message.content == prefix + 'daily') {
  88. if (userData[sender.id + message.guild.id].lastDaily != moment().format('L')) {
  89. userData[sender.id + message.guild.id].lastDaily = moment().format('L');
  90. userData[sender.id + message.guild.id].money += 1;
  91. const pointsRandom = (Math.floor(Math.random() * 18) + 5);
  92.  
  93. let fromUserPointsSQL = 'SELECT * FROM tokens WHERE name = ?';
  94. const name = [message.author.id];
  95. fromUserPointsSQL = mysql.format(fromUserPointsSQL, name);
  96.  
  97. let setPointsSQL = `UPDATE tokens SET points = points + 1 WHERE name = ?`;
  98. setPointsSQL = mysql.format(setPointsSQL, name);
  99.  
  100. con.query(fromUserPointsSQL, (err0, resultName) => {
  101. if (err0) throw err0;
  102. if (resultName.length > 0) {
  103. con.query(setPointsSQL, (err1) => {
  104. if (err1) throw err1;
  105. message.channel.sendMessage({embed:{
  106. title:"Daily Token",
  107. color: 0xa9ef27,
  108. description:"You received a shiny golden j4token. (We added it to your account!)"
  109. }})
  110. console.log(`${message.author} got 1 points!`);
  111. if (err2) throw err2;
  112. });
  113. } else {
  114. const newUser = [
  115. [`${message.author.id}`, `${message.author.tag}`, 1],
  116. ];
  117. con.query('INSERT INTO tokens (`name`, `username`, `points`) VALUES ?', [newUser], (err3) => {
  118. if (err3) throw err3;
  119. console.log('1 record inserted');
  120. message.channel.sendMessage({embed:{
  121. title:"Daily Token",
  122. color: 0xa9ef27,
  123. description:"You received a shiny golden j4token. (We added it to your account!)"
  124. }})
  125. });
  126. }
  127. });
  128. } else {
  129. message.channel.sendMessage({embed:{
  130. title:"Daily Token",
  131. color: 0xa9ef27,
  132. description:"Mmmm... Seems like you already got your daily J4Token. Check back in " + moment().endOf('day').fromNow() + '.'
  133. }})
  134. }
  135. }
  136.  
  137. if(message.content == prefix + "global") {
  138.  
  139. var globalMoney = 0;
  140. var globalUsers = 0;
  141. var globalRichest = '';
  142. var globalRichest$ = 0;
  143.  
  144. for (var i in userData) {
  145. globalMoney += userData[i].money;
  146. globalUsers += 1;
  147. if (userData[i].money > globalRichest$) {
  148. globalRichest$ = userData[i].money;
  149. globalRichest = userData[i].username;
  150. }
  151. }
  152. message.channel.sendMessage({"embed":{
  153. title: "Global Overview.",
  154. color: 0xa9ef27,
  155. fields: [{
  156. name:"J4Tokens in existence:",
  157. value:globalMoney,
  158. inline:true
  159. }]
  160. }});
  161.  
  162. }
  163.  
  164. fs.writeFile('Storage/userData.json', JSON.stringify(userData), (err) => {
  165. if (err) console.error(err);
  166. });
  167.  
  168. bot.on('ready', () => {
  169. console.log('Economy launched...');
  170. });
  171.  
  172. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement