Advertisement
Guest User

Untitled

a guest
Oct 1st, 2016
264
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. "use strict";
  2.  
  3. const Discord = require("discord.js");
  4. var bot = new Discord.Client({autoReconnect: true, fetch_all_members: true, encoding: null});
  5. var customPrefix = "$"
  6. var globalPrefix = "$"
  7. const CONFIG = require("./config.json")
  8. const RESP = require("./response.json")
  9. const STRINGS = require("./strings.json")
  10. const COMMANDS = require("./commands.json")
  11. const path = require("path");
  12. //database stuff
  13. const mysql = require('mysql');
  14. var connection = mysql.createConnection({
  15.   host: "localhost",
  16.   user: "NoirBot",
  17.   password: "jbaidbBUF783BFKBdsfuh873",
  18.   database: "noirbot"
  19. });
  20. connection.connect();
  21.  
  22. var canKick = function(person) {
  23.   if (person.hasPermission("ADMINISTRATOR", true)) {
  24.     return true;
  25.   } else {
  26.   return person.hasPermission("KICK_MEMBERS", false);
  27.  }
  28. };
  29.  
  30. var canBan = function(person) {
  31.   if (person.hasPermission("ADMINISTRATOR", true)) {
  32.     return true;
  33.   } else {
  34.   return person.hasPermission("BAN_MEMBERS", false);
  35.  }
  36. };
  37.  
  38. var canManageMessages = function(person) {
  39.   if (person.hasPermission("ADMINISTRATOR", true)) {
  40.     return true;
  41.   } else {
  42.   return person.hasPermission("MANAGE_MESSAGES", false);
  43.  }
  44. };
  45.  
  46. var canRoles = function(person) {
  47.   if (person.hasPermission("ADMINISTRATOR", true)) {
  48.     return true;
  49.   } else {
  50.   return person.hasPermission("MANAGE_ROLES_OR_PERMISSIONS", false);
  51.  }
  52. };
  53.  
  54. var canGuild = function(person) {
  55.   if (person.hasPermission("ADMINISTRATOR", true)) {
  56.     return true;
  57.   } else {
  58.   return person.hasPermission("MANAGE_GUILD", false);
  59.  }
  60. };
  61.  
  62. var getNickname = function(message){
  63.   if(message.member.nickname == null){
  64.     return message.author.username;
  65.   } else {
  66.     return message.member.nickname;
  67.   }
  68. }
  69.  
  70. Date.format = function(date) {
  71.   var month = date.getMonth();
  72.   var day = date.getDate();
  73.   var year = date.getFullYear();
  74.   var hour = date.getHours();
  75.   return "[" + day + ":" + month + ":" + year + "] at " + hour;
  76. };
  77.  
  78. Date.daysBetween = function( date1, date2 ) {
  79.   //Get 1 day in milliseconds
  80.   var one_day=1000*60*60*24;
  81.   // Convert both dates to milliseconds
  82.   var date1_ms = date1.getTime();
  83.   var date2_ms = date2.getTime();
  84.   // Calculate the difference in milliseconds
  85.   var difference_ms = date2_ms - date1_ms;
  86.   //take out milliseconds
  87.   difference_ms = difference_ms/1000;
  88.   var seconds = Math.floor(difference_ms % 60);
  89.   difference_ms = difference_ms/60;
  90.   var minutes = Math.floor(difference_ms % 60);
  91.   difference_ms = difference_ms/60;
  92.   var hours = Math.floor(difference_ms % 24);
  93.   var days = Math.floor(difference_ms/24);
  94.  
  95.   return days + ' days, ' + hours + ' hours, ' + minutes + ' minutes, and ' + seconds + ' seconds' ;
  96. };
  97.  
  98. var capfirst = function(string) {
  99.     return string.charAt(0).toUpperCase() + string.slice(1);
  100. };
  101.  
  102. bot.on("ready", () => {
  103.   console.log("Ready to go in " + bot.channels.size + " channels on " + bot.guilds.size + " servers, for a grand total of " + bot.users.size + " users!");
  104.   /*setInterval(() => {
  105.   bot.guilds.get("147230541735919616").pruneMembers(30).then(pruned => console.log("[AUTOPRUNE]: " + pruned + " members pruned in the " + bot.guilds.get("147230541735919616").name + " server"))//.catch(console.error);
  106. }, 600000);*/
  107. });
  108.  
  109. bot.on("guildCreate", (guild) => {
  110.   console.log("Trying to insert [" + guild.name + "] into database...");
  111.   var info = {
  112.     "servername": "'" + guild.name + "'",
  113.     "serverid": guild.id,
  114.     "ownerid": guild.owner.id,
  115.     "prefix": "$"
  116.   }
  117.   connection.query("INSERT into servers SET ?", info, function(error) {
  118.     if (error) {
  119.       console.log(error);
  120.       return;
  121.     }
  122.     console.log("Server: [" + guild.name + "] successfully added to database!");
  123.   });
  124. });
  125.  
  126. bot.on('guildDelete', (guild) => {
  127.   console.log("Attempting to remove server [" + guild.name + "] from the database...");
  128.   connection.query("DELETE FROM servers WHERE serverid = '" + guild.id + "'", function(error) {
  129.     if (error) {
  130.       console.log(error);
  131.       return;
  132.     }
  133.     console.log("Server: [" + guild.name + "] removed from database!");
  134.   });
  135. });
  136.  
  137.  
  138. bot.on("guildMemberAdd", (guild, member) => {
  139.  
  140.   let num = Math.floor(Math.random()*(STRINGS.welcomes.length));
  141.   let num2 = Math.floor(Math.random()*(STRINGS.welcomeend.length));
  142.  
  143. bot.users.get(member.id).sendMessage(STRINGS.welcomes[num] + member.user.username + STRINGS.welcomeend[num2])
  144. .then( msg => setTimeout( function() {bot.users.get(member.id).sendMessage("Be sure to check out the any channels that interest you on the server!");}, 3000))
  145. .catch(console.error);
  146. });
  147.  
  148. bot.on("guildMemberRemove", (guild, member) => {
  149. /*
  150. member.user.sendMessage("I'm very sad to see you go, **" + member.user.username + "**! if you ever want to come back, here's the link:\nhttps://discord.gg/0ozIdtqVYFc7uVXt").then( msg => setTimeout( function() {member.user.sendMessage("Bye, bye...");}, 1500)).catch(console.error);
  151. */
  152. });
  153.  
  154. bot.on("message", msg => {
  155. //Doesn't run the rest of the code in this if the account sending the message is a bot.
  156.   if(msg.author.bot) {
  157.   return;
  158. }
  159.  
  160. //if the message is a key for a response in the response file, it sends the value fo that key
  161. if (RESP[msg.content.toString().toLowerCase()]) {
  162.     msg.channel.sendMessage(RESP[msg.content.toString().toLowerCase()]).catch(console.error);
  163.     if (msg.channel.type == "text") {
  164.     console.log("[RESPONSE]: " + msg.author.username + " called an autoresponse command in " + msg.channel.name + " in the " + msg.guild.name + " server.");
  165.   }
  166.     if (msg.channel.type == "dm") {
  167.     console.log("[RESPONSE]: " + msg.author.username + " called an autoresponse command in a PM chat");
  168.   }
  169.     return;
  170. }
  171. //A message will only if the message starts with either the prefix or mod prefix.
  172. if (!( (msg.content.startsWith(customPrefix)) || (msg.content.startsWith(globalPrefix)) )) {
  173.       //stops running this train of code if the message does not begin with the set prefix
  174.         return;
  175. }
  176. //If a message DOES start with one of the prefixes, run this code.
  177. if (( (msg.content.startsWith(customPrefix)) || (msg.content.startsWith(globalPrefix)) )) { //open bracket [1]
  178. if (msg.channel.type !== "text") {
  179.   if(msg.channel.type === "dm") {
  180.     switch (msg.content.toLowerCase().split(" ")[0]) {
  181.       case (customPrefix + "alert") : {
  182.          let args = msg.content.split(" ").slice(1).join(" ");
  183.          if (!args){
  184.            msg.channel.sendMessage("Oh no! You didn't give me a message for the mod!");
  185.          } else {
  186.            bot.users.get(CONFIG.devID).sendMessage("`" + Date.format(msg.timestamp) + " [" + msg.author.username + "]` " + args);
  187.            msg.channel.sendMessage("Alert sent successfully :)");
  188.          }
  189.       break;}
  190.  
  191.       case (customPrefix + "report") : {
  192.          let args = msg.content.split(" ").slice(1).join(" ");
  193.          if (!args){
  194.            msg.channel.sendMessage("You didn't report anyone.");
  195.          } else {
  196.            bot.users.get(CONFIG.devID).sendMessage("**[REPORT]**" + "`" + Date.format(msg.timestamp) + " [" + msg.author.username + "]` " + args);
  197.            msg.channel.sendMessage("Report sent successfully :)");
  198.          }
  199.       break;}
  200.  
  201.       case (customPrefix + "break") : {
  202.         msg.channel.sendMessage("Clearing messages.").then(m=> m.delete(1000));
  203.         msg.channel.sendMessage("```Break```");
  204.       break;}
  205.  
  206.      case (customPrefix + "wipe") : {
  207.        let args = msg.content.split(" ").slice(1);
  208.        let messagecount = parseInt(args[0]);
  209.        msg.channel.fetchMessages({limit: messagecount})
  210.     .then(messages => {
  211.       let deleteMsgs = messages.filter(e => e.author.equals(msg.client.user));
  212.       deleteMsgs.forEach(e => e.delete()); // loops for every msg and deletes it
  213.   }).catch(console.log)
  214. break;}
  215.  
  216.     }
  217.   }
  218. }
  219. if (msg.channel.type === "text") {// open bracket [2]
  220.   switch (msg.content.toLowerCase().split(" ")[0]) {
  221.  
  222.        case (globalPrefix + "help"): {
  223.          let args = msg.content.split(" ").slice(1)
  224.          if (!args[0]) {
  225.          msg.channel.sendMessage("Hello! I am Noir! Pleased to meet you! My commands all start with a '" + customPrefix + "' followed by:\n"
  226.        + "\n__**Mod Commands**__ (use in any channel)\n"
  227.        + "**count**\n"
  228.        + "**name**\n"
  229.        + "**region**\n"
  230.        + "**propic** *[Mention Someone]*\n"
  231.        + "**owner**\n"
  232.        + "**lifetime** *[Mention Someone]*\n"
  233.        + "**slay** *[Mention Someone]*\n"
  234.        + "**8ball** *[Question]*\n"
  235.        + "**joinlink**\n"
  236.        + "**rules**\n"
  237.        + "**roll** *[Number of sides for the die]*\n"
  238.        + "**math** *[simple equation]*\n"
  239.        + "**flip** *[message]*\n"
  240.        + "**alert** *[message]*\n"
  241.        + "**roles** *[Mention Someone]*\n"
  242.        + "**hug** *[Mention Someone] or [type an object]*\n"
  243.        + "**rate** *[Mention Someone] or [type an object]*\n"
  244.        + "\n__**Mod Commands**__\n"
  245.        + "**purge** *[Number of messages to purge]*\n"
  246.        + "**erase** *[Mention the user to erase]*\n"
  247.        + "**kick** *[Mention the user to kick]*\n"
  248.        + "\n__**PM Commands**__ (use in a PM chat with Noir)\n"
  249.        + "**alert** *[message]*\n"
  250.        + "**report** *[message]*\n"
  251.        + "**break**\n"
  252.        + "**wipe**\n"
  253.        + "\nWhen it says *[something]*, do what it says.\n"
  254.        + "***Use " + customPrefix + "help [Command Name] for more information on each command!***");
  255.      } else {
  256.        if (COMMANDS[args[0].toString().toLowerCase()]) {
  257.            msg.channel.sendMessage(COMMANDS[args[0].toString().toLowerCase()]).catch(console.error);
  258.            return;
  259.        } else {
  260.          msg.channel.sendMessage("Sorry! That is not a command!");
  261.        }
  262.      }
  263.        break;}
  264.  
  265.       case (customPrefix + "level") : {
  266.           let person = msg.author
  267.           var info = {
  268.             "userid": "'" + person.id + "'",
  269.             "serverid": "'" + msg.guild.id + "'",
  270.             "xp": 0,
  271.             "level": 0
  272.           }
  273.           connection.query("SELECT * FROM points WHERE userid = " + person.id + " AND serverid = " + msg.guild.id + "", function(error, result) {
  274.             if (error) {
  275.               console.log(error);
  276.               return;
  277.             }
  278.             if (!result) {
  279.               connection.query("INSERT into points VALUES( " + person.id + msg.guild.id + 0 + 0 + " )", function(error, result) {
  280.                 if (error) {
  281.                   console.log(error);
  282.                   return;
  283.                 }
  284.                 console.log("Inserting...");
  285.               });
  286.             } else {
  287.             console.log(result);
  288.           }
  289.           });
  290.         break;}
  291.  
  292.         case (customPrefix + "info"):
  293.         Date.old = function( date1, date2 ) {
  294.           //Get 1 day in milliseconds
  295.           var one_day=1000*60*60*24;
  296.           // Convert both dates to milliseconds
  297.           var date1_ms = date1.getTime();
  298.           var date2_ms = date2.getTime();
  299.           // Calculate the difference in milliseconds
  300.           var difference_ms = date2_ms - date1_ms;
  301.           //take out milliseconds
  302.           difference_ms = difference_ms/1000;
  303.           var seconds = Math.floor(difference_ms % 60);
  304.           difference_ms = difference_ms/60;
  305.           var minutes = Math.floor(difference_ms % 60);
  306.           difference_ms = difference_ms/60;
  307.           var hours = Math.floor(difference_ms % 24);
  308.           var days = Math.floor(difference_ms/24);
  309.  
  310.           return days + " days"
  311.         };
  312.         let timeAlive = Date.old((msg.guild.creationDate), (new Date()));
  313.             msg.channel.sendMessage("```\n" + msg.guild.name + " Server\n```"
  314.           + "Member Count : **" + msg.channel.guild.members.size + "** members!\n"
  315.           + "Owner : **" + msg.channel.guild.owner.user.username + "**\n"
  316.           + "Region : **" + msg.channel.guild.region + "**\n"
  317.           + "Age : **" + timeAlive + " old!**\n"
  318.  
  319.           );
  320.             console.log("[INFO]: " + msg.author.username + " called a count command in " + msg.channel.name + " in the " + msg.guild.name + " server.");
  321.             break;
  322.  
  323.         case (customPrefix + "count"):
  324.             msg.channel.sendMessage("This server has **" + msg.channel.guild.members.size + "** members!");
  325.             console.log("[INFO]: " + msg.author.username + " called a count command in " + msg.channel.name + " in the " + msg.guild.name + " server.");
  326.             break;
  327.  
  328.         case (customPrefix + "name"):
  329.             msg.channel.sendMessage("You are in the **" + msg.channel.guild.name + "** server!");
  330.             console.log("[INFO]: " + msg.author.username + " called a count command in " + msg.channel.name + " in the " + msg.guild.name + " server.");
  331.             break;
  332.  
  333.         case (customPrefix + "owner"):
  334.             msg.channel.sendMessage("The owner of this server is **" + msg.channel.guild.owner.user.username + "**");
  335.             console.log("[INFO]: " + msg.author.username + " called an owner command in " + msg.channel.name + " in the " + msg.guild.name + " server.");
  336.             break;
  337.  
  338.         case (customPrefix + "region"):
  339.             msg.channel.sendMessage("This server is based in **" + msg.channel.guild.region + "**");
  340.             console.log("[INFO]: " + msg.author.username + " called a region command in " + msg.channel.name + " in the " + msg.guild.name + " server.");
  341.             break;
  342.  
  343.         case (customPrefix + "kick"): {
  344.  
  345.           let kickTarget = msg.mentions.users.first();
  346.  
  347.           if (!kickTarget) {
  348.             msg.channel.sendMessage("You didn't say who to kick though...")
  349.           } else {
  350.           if(!canKick(msg.member)) {
  351.             msg.channel.sendMessage("You do not have permission to kick " + kickTarget.username);
  352.             console.log("[KICK]: " + msg.author.username + " unsuccessfully attempted to kick " + kickTarget.username + " from the " + msg.channel.guild.name + " server.");
  353.             return;
  354.           } else {
  355.             msg.channel.guild.member(kickTarget).kick().catch(console.error);
  356.             console.log(msg.author.username + " kicked " + kickTarget.username + " from the " + msg.channel.guild.name + " server.");
  357.           }
  358.         }
  359.  
  360.             break;}
  361.  
  362.        case (customPrefix + "playing") :{
  363.          let game = msg.content.split(" ").slice(1).join(" ");
  364.          if (msg.author.id !== CONFIG.devID) {
  365.            msg.channel.sendMessage("Sorry, only my developer can set my game!")
  366.          } else {
  367.             bot.user.setStatus(null, game).catch(console.error);
  368.           }
  369.           console.log("[GAME]: " + msg.author.username + " changed my game in the " + msg.guild.name + " server.");
  370.             break;}
  371.  
  372.       case (customPrefix + "nick") :{
  373.         let nickname = msg.content.split(" ").slice(1).join(" ");
  374.         if (msg.author.id !== CONFIG.devID) {
  375.         msg.channel.sendMessage("Sorry, you do not have permission to set my nickname!")
  376.       } else {
  377.        msg.guild.member(bot.user).setNickname(nickname)
  378.        }
  379.        console.log("[NICKNAME]: " + msg.author.username + " changed my nickname in the " + msg.guild.name + " server.");
  380.                  break;}
  381.  
  382.       case (customPrefix + "propic"): {
  383.             let Target = msg.mentions.users.first();
  384.             if (!Target) {
  385.               msg.channel.sendMessage("You didn't say whose profile picture you wanted to get.");
  386.               return;
  387.             } else {
  388.             if (Target.avatarURL === null) {
  389.             msg.channel.sendMessage("This user has no profile picture!")
  390.           } else {
  391.             msg.channel.sendMessage("`Expanding " + Target.username + "'s profile picture `\n" + Target.avatarURL).catch(console.error);
  392.             console.log("[ProPic]: " + msg.author.username + " called expanded " + Target.username + "'s profile picture in the " + msg.channel.guild.name + " server.")
  393.           }
  394.         }
  395.             break;}
  396.  
  397.        case (customPrefix + "lifetime") : {
  398.             if (msg.mentions.users.first()) {
  399.  
  400.             let Target = msg.channel.guild.member(msg.mentions.users.first());
  401.             let times = Date.daysBetween((Target.joinDate), (new Date()));
  402.             msg.channel.sendMessage("**" + Target.user.username + "** has been a member this server for **" + times + "** and counting!");
  403.           } else {
  404.             let timeAlive = Date.daysBetween((msg.guild.creationDate), (new Date()));
  405.             msg.channel.sendMessage("This guild was created **" + timeAlive + "** ago!");
  406.           }
  407.           console.log("[LIFETIME]: " + msg.author.username + " called a liftime command on in the " + msg.guild.name + " server.");
  408.             break;}
  409.  
  410.       case (customPrefix + "erase") : {
  411.  
  412.         let target = msg.mentions.users.first();
  413.  
  414.         if (!canManageMessages(msg.member) || !canKick(msg.member)) {
  415.           msg.channel.sendMessage("You do not have permission to erase user messages in this server.");
  416.           console.log("[ERASE]: " + msg.author.username + " unsuccessfully attempted to erase " + target.username + " in the " + msg.channel.guild.name + " server.");
  417.       } else {
  418.  
  419.         if (!target) {
  420.           msg.channel.sendMessage("You didn't say who to erase...");
  421.         } else {
  422.         msg.channel.sendMessage("Clearing **" + target + "'s** messages.").then(m=> m.delete(1000));
  423.         msg.channel.fetchMessages({
  424.          limit: 100
  425.         }).then((messages) => {
  426.           messages = messages.filter((message) => message.member.id == target.id);
  427.           msg.channel.bulkDelete(messages);
  428.         }).catch(console.error);
  429.         console.log("[ERASE]: " + msg.author.username + " erased " + target.username + " in " + msg.channel.name + ", in the " + msg.guild.name + " server.");
  430.       }
  431.      }
  432.       break;}
  433.  
  434.      case (customPrefix + "purge") : {
  435.  
  436.             let target = msg.mentions.users.first();
  437.             let args = msg.content.split(" ").slice(1);
  438.             let messagecount = parseInt(args[0]);
  439.  
  440.             if (!args[0]) {
  441.               msg.channel.sendMessage("You didn't specify how many messages you wanted to purge.");
  442.               return;
  443.             } else {
  444.             if (!canManageMessages(msg.member)) {
  445.               msg.channel.sendMessage("You do not have permission to purge messages in this server.");
  446.               console.log("[PURGE]: " + msg.author.username + " unsuccessfully attempted to purge in the " + msg.channel.guild.name + " server.");
  447.           } else {
  448.             msg.channel.sendMessage("Clearing **" + messagecount + "** messages.").then(m=> m.delete(1000));
  449.             msg.channel.fetchMessages({limit: messagecount+2}).then(messages => msg.channel.bulkDelete(messages)).catch(console.error);
  450.             console.log("[PURGE]: " + msg.author.username + " purged " + messagecount + " messages in " + msg.channel.name + " in the " + msg.guild.name + " server.");
  451.           }
  452.         }
  453.  
  454.             break;}
  455.  
  456.       case (customPrefix + "slay"): {
  457.         if (msg.mentions.users.first()) {
  458.             let slayTarget = msg.mentions.users.first();
  459.             let num = Math.floor(Math.random()*(STRINGS.slay.length));
  460.             let num2 = Math.floor(Math.random()*(STRINGS.slay2.length));
  461.             let num3 = Math.floor(Math.random()*(STRINGS.slay3.length));
  462.             msg.channel.sendMessage("**Noir:** " + STRINGS.slay[num] + "***" + slayTarget.username + "***" + STRINGS.slay2[num2] + "" + STRINGS.slay3[num3]).catch(console.error);
  463.           } else {
  464.             msg.channel.sendMessage("You didn't mention anyone, ya prick.");
  465.           }
  466.           console.log("[FUN]: " + msg.author.username + " called a slay command in " + msg.channel.name + " in the " + msg.guild.name + " server.");
  467.             break;}
  468.  
  469.       case (customPrefix + "8ball"): {
  470.         let args = msg.content.split(" ").slice(1);
  471.         let num = Math.floor(Math.random()*(STRINGS.ball.length));
  472.         if(!args[0]) {
  473.           msg.channel.sendMessage("This prick, **" + msg.author.username + "** didn't even ask a question, smh");
  474.         } else if (msg.content[msg.content.length-1] !== "?") {
  475.           msg.reply("Questions end with question marks, you know...")
  476.         } else {
  477.           msg.channel.sendMessage(STRINGS.ball[num]);
  478.         }
  479.         console.log("[FUN]: " + msg.author.username + " called an 8ball command in " + msg.channel.name + " in the " + msg.guild.name + " server.");
  480.       break;}
  481.  
  482.     case (customPrefix + "rate"): {
  483.         let args = msg.mentions.users.first();
  484.         let things = msg.content.split(" ").slice(1).join(" ");
  485.         let num = Math.floor(Math.random()*(100)) + 1;
  486.         if(!args) {
  487.           if (!things) {
  488.             msg.channel.sendMessage("Ummm, **" + msg.author.username + "** you kinda have to tell me *what* I'm rating...");
  489.           } else {
  490.             if (things === "@everyone") {
  491.               msg.channel.sendMessage("I would give **everyone** a solid **" + num + "%**").catch(console.error);
  492.             } else {
  493.               msg.channel.sendMessage("I would give **" + things + "** a solid **" + num + "%**").catch(console.error);
  494.             }
  495.          }
  496.         } else {
  497.           if (args.bot) {
  498.             if (args.equals(bot.user)) {
  499.             msg.channel.sendMessage("**" + args.username + "'s** rated score is **1000%**, the best there can be :)");
  500.           } else {
  501.             msg.channel.sendMessage("**" + args.username + "'s** rated score is **0%**, an inferior bot.");
  502.           }
  503.         } else {
  504.           msg.channel.sendMessage("**" + args.username + "'s** rated score is **" + num + "%**");
  505.          }
  506.         }
  507.         console.log("[FUN]: " + msg.author.username + " called a rate command in " + msg.channel.name + " in the " + msg.guild.name + " server.");
  508.       break;}
  509.  
  510.     case (customPrefix + "roll") : {
  511.       let args = msg.content.split(" ").slice(1);
  512.       if (!args[0]) {
  513.         let num = Math.floor(Math.random()*(6)) + 1;
  514.         msg.channel.sendMessage(msg.author + " rolled a **" + num + "** on a **6** sided die!");
  515.       } else {
  516.         //let sides = msg.content.split(" ").slice(1);
  517.         let numm = Math.floor(Math.random()*(args[0])) + 1;
  518.         msg.channel.sendMessage(msg.author + " rolled a **" + numm + "** on a **" + args[0] + "** sided die!");
  519.       }
  520.       console.log("[FUN]: " + msg.author.username + " called a roll command in " + msg.channel.name + " in the " + msg.guild.name + " server.");
  521.     break;}
  522.  
  523.  
  524.     case (customPrefix + "joinlink"): {
  525.       if (msg.author.id !== CONFIG.devID) {
  526.         msg.channel.sendMessage("Sorry! I'm not ready to be released to the public! Sorry to disappoint...");
  527.       } else {
  528.       bot.users.get(msg.author.id).sendMessage("My join link is: \nhttps://discordapp.com/oauth2/authorize?client_id=220062302018338817&scope=bot&permissions=0 \nHappy to help!");
  529.     }
  530.     console.log("[JOIN]: " + msg.author.username + " summoned my join link in the " + msg.guild.name + " server.");
  531.   break;}
  532.  
  533.     case (customPrefix + "rules"): {
  534.       /*if (msg.author.id !== CONFIG.devID) {
  535.         msg.channel.sendMessage("The rule function is a work in progress! Check back to when it is released!");
  536.       } else {*/
  537.       msg.channel.sendMessage("Rules sent successfully :)")
  538.       bot.users.get(msg.author.id).sendMessage(STRINGS.rules);
  539.     //}
  540.     console.log("[INFO]: " + msg.author.username + " requested the rules list in the " + msg.guild.name + " server.");
  541.   break;}
  542.  
  543.   case (customPrefix + "math") : {
  544.       let math = require("mathjs");
  545.       let args = msg.content.split(" ").slice(1).join(" ");
  546.       let code = parseInt(args);
  547.       //let code = stuff.compile();
  548.       if(!args) {
  549.         msg.delete();
  550.       } else {
  551.         try{
  552.           msg.channel.sendMessage("**Question** ```xl\n" + args +"```\n **Solution** ```xl\n" + math.eval(args) + "```");
  553.         //msg.channel.sendMessage("```***Solution*** " + math.eval(args) + "```");
  554.         } catch(error){
  555.         msg.channel.sendMessage("**Error** ```xl\n" + error.message + "```");
  556.         }
  557.       }
  558.     console.log("[MATH]: " + msg.author.username + " called a math command in " + msg.channel.name + " in the " + msg.guild.name + " server.");
  559.     break;}
  560.  
  561.   case (customPrefix + "flip") : {
  562.     let args = msg.content.split("").slice(5);//.join(" ");
  563.     if(!args) {
  564.       msg.channel.sendMessage("You have to type a message for me to reverse!");
  565.     } else {
  566.     msg.channel.sendMessage(args.reverse().join("")).catch(console.error);
  567.     //msg.channel.sendMessage("```xl\n" + args.reverse().join("") + "```").catch(console.error);
  568.     //msg.channel.sendMessage("**Original** ```xl\n" + args +"```\n **Reversed** ```xl\n" + args.reverse().join("") + "```").catch(console.error);
  569.   }
  570.   console.log("[FUN]: " + msg.author.username + " called a flip command in " + msg.channel.name + " in the " + msg.guild.name + " server.");
  571.   break;}
  572.  
  573. case (customPrefix + "alert") : {
  574.    let args = msg.content.split(" ").slice(1).join(" ");
  575.    if (!args){
  576.      bot.users.get(CONFIG.devID).sendMessage("`" + Date.format(msg.timestamp) + " [" + msg.author.username + "] is summoning you`");
  577.      msg.channel.sendMessage("Blanc has been summoned.");
  578.    } else {
  579.      bot.users.get(CONFIG.devID).sendMessage("`" + Date.format(msg.timestamp) + " [" + msg.author.username + "]` " + args);
  580.      msg.channel.sendMessage("Alert sent successfully :)");
  581.    }
  582.    console.log("[ALERT]: " + msg.author.username + " alerted you from the " + msg.guild.name + " server.");
  583. break;}
  584.  
  585. case (customPrefix + "roles") : {
  586.   let args = msg.mentions.users.first();
  587.  
  588.       if (!args) {
  589.         msg.channel.sendMessage("You have to mention whose roles you want me to get!");
  590.       } else {
  591.         let roles = msg.channel.guild.member(msg.mentions.users.first()).roles;
  592.         let list = [];
  593.         roles.forEach(e => list.push(e.name));
  594.         for (var i = 0; i < list.length; i++)
  595.           if (list[i] == "@everyone") {
  596.               list[i] = "Dollars Member\n";
  597.             } else {
  598.               list[i] = (capfirst(list[i]) + "\n")
  599.             }
  600.         msg.channel.sendMessage("```xl\n" + list.join("") + "\n```");
  601. }
  602.  
  603. if (!args) {
  604.   console.log("[INFO]: " + msg.author.username + " called a roles command on somebody in the " + msg.guild.name + " server.");
  605. } else {
  606. console.log("[INFO]: " + msg.author.username + " called a roles command on " + args.username + " in the " + msg.guild.name + " server.");
  607. }
  608. break;}
  609.  
  610. case (customPrefix + "prune") : {
  611.   if (!canRole(msg.member) || !canGuild(msg.member)) {
  612.     msg.channel.sendMessage("Only Staff can prune in this server!");
  613.   } else {
  614.  
  615.   msg.guild.pruneMembers(30).then(pruned => console.log("[PRUNE]: " + pruned + " members pruned in the " + msg.guild.name + " server")).catch(console.error);
  616.  }
  617. break;}
  618.  
  619. case (customPrefix + "hug") : {
  620.   let targ = msg.mentions.users.first();
  621.   let things = msg.content.split(" ").slice(1).join(" ");
  622.   //let hugpic = path.resolve("hugpic.png");
  623.   //msg.channel.sendFile(hugpic).catch(console.error);
  624.   if (!targ) {
  625.     if (!things) {
  626.       msg.channel.sendMessage("Please mention someone or type something for me to hug!");
  627.     } else {
  628.       if (things === "@everyone") {
  629.         msg.channel.sendMessage("**" + getNickname(msg) + "** :hugging: *hugs* **everyone**").catch(console.error);
  630.       } else {
  631.         msg.channel.sendMessage("**" + getNickname(msg) + "** :hugging: *hugs* **" + things + "**").catch(console.error);
  632.       }
  633.     }
  634.   } else {
  635.   let name = targ.username
  636.   msg.channel.sendMessage("**" + getNickname(msg) + "** :hugging: *hugs* **" + name + "**").catch(console.error);
  637.   console.log("[FUN]: " + msg.author.username + " called a hug command on " + targ.username + " in the " + msg.guild.name + " server.");
  638. }
  639. break;}
  640.  
  641. case (customPrefix + "uptime") : {
  642.   Date.up = function(date2) {
  643.     //Get 1 day in milliseconds
  644.     var one_day=1000*60*60*24;
  645.     // Convert both dates to milliseconds
  646.     var date1_ms = bot.readyTime;
  647.     var date2_ms = date2.getTime();
  648.     // Calculate the difference in milliseconds
  649.     var difference_ms = date2_ms - date1_ms;
  650.     //take out milliseconds
  651.     difference_ms = difference_ms/1000;
  652.     var seconds = Math.floor(difference_ms % 60);
  653.     difference_ms = difference_ms/60;
  654.     var minutes = Math.floor(difference_ms % 60);
  655.     difference_ms = difference_ms/60;
  656.     var hours = Math.floor(difference_ms % 24);
  657.     var days = Math.floor(difference_ms/24);
  658.  
  659.     return days + ' days, ' + hours + ' hours, ' + minutes + ' minutes, and ' + seconds + ' seconds' ;
  660.   };
  661. msg.channel.sendMessage(Date.up(new Date())).catch(console.error);
  662. break;}
  663.  
  664. /*case (customPrefix + "emoji") : {
  665.   let args = msg.content.split(" ").slice(1);
  666.   let url = args[0]
  667.   let name = args[1]
  668.   msg.guild.createEmoji(url.toString(), name.toString())
  669.  .then(emoji => console.log("Created new emoji with name " + emoji.name))
  670.  .catch(console.log);
  671. }*/
  672.  
  673.   }//end bracket for switch statement
  674. }//end bracket [2]
  675. }//end bracket for [1]
  676. });
  677.  
  678. //!msg.member.hasPermission("MANAGE_MESSAGES", true)
  679. bot.on('error', e => { console.error(e); });
  680. bot.on('warn', e => { console.warn(e); });
  681. bot.on('debug', e => { console.info(e); });
  682. bot.login(CONFIG.token)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement