Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var Discord = require("discord.js");
- var bot = new Discord.Client();
- const low = require('lowdb');
- const FileSync = require('lowdb/adapters/FileSync');
- const adapter = new FileSync('db.json');
- const db = low(adapter);
- var lastMessage = "";
- var lMChannelName = "";
- var lMCounter = 0;
- var lMMessaged = false;
- var dictionary = {};
- bot.on("ready", () => {
- console.log('Connected');
- if(db.get('reminders').size().value() == 0){
- db.defaults({reminders: []}).write();
- console.log("New reminder loaded!");
- }
- else{
- let reminderCollection = db.get('reminders').value();
- for(var key in reminderCollection){
- console.log("Reminder loaded");
- setReminder({
- setTime: reminderCollection[key].id,
- message: reminderCollection[key].message
- }, "bot-spam");
- }
- }
- let d = new Date();
- let n = d.getHours();
- /*
- if(n > 12) {
- bot.channels.get("432339546718470154").send("<:feelsHappyHug:432620065129627661>");
- }
- else {
- bot.channels.get("432339546718470154").send("<:sleepyHug:502973440274464769>");
- }
- */
- });
- bot.on('message', message => {
- console.log(message.content);
- // commands
- if(message.content.substring(0,1) === '!') {
- const args = message.content.slice(1).trim().split(/ +/g);
- const cmd = args.shift().toLowerCase();
- if(checkExclamations(message.content)) {
- if(!(message.channel.name == "bot-spam" || message.channel.name == "bot-test-aaaaa") && !(cmd == 'gag' || cmd == 'ungag' || cmd == 'reminder')) {
- message.channel.send("<:rage:486979432683274240><:point_right:486979399879753739><#486648046437007400>");
- }
- else {
- switch(cmd) {
- //actually gag
- case 'gag':
- if(message.member.hasPermission("ADMINISTRATOR")) {
- let user = message.mentions.members.first();
- let gagRole = message.guild.roles.get('486589877127741440');
- if(user == null) {
- message.channel.send("Specify a user!");
- }
- else if(gagRole == null) {
- message.channel.send("Role not found");
- }
- else {
- if(!user.roles.has(gagRole.id)) {
- user.addRole(gagRole).catch(console.error);
- console.log(message.author.username + ' gagged: ' + user.username);
- }
- }
- }
- break;
- case 'ungag':
- if(message.member.hasPermission("ADMINISTRATOR")) {
- let user2 = message.mentions.members.first();
- let gagRole2 = message.guild.roles.get('486589877127741440');
- if(user2 == null) {
- message.channel.send("Specify a user!");
- }
- else if(gagRole2 == null) {
- message.channel.send("Role not found");
- }
- else {
- if(user2.roles.has(gagRole2.id)) {
- user2.removeRole(gagRole2).catch(console.error);
- console.log(message.author.username + ' ungagged: ' + user2.username);
- }
- }
- }
- break;
- case 'love':
- var name = message.author.username;
- var target = message.content.substring(6, message.content.length);
- if(target != "") {
- if(target == "@everyone" || target == "@here") {
- message.channel.send("Fuck you stop trying to trick the bot");
- }
- else {
- message.channel.send(name + " is " + Math.round(Math.random() * 10000) / 100 + "% in love with " + target + "!");
- }
- }
- break;
- case 'roll':
- message.channel.send(message.author.username + " rolls a " + Math.round(Math.random() * 100) + "!");
- break;
- case 'flip':
- var test = Math.floor(Math.random() * 2);
- var truth = (test % 2) == 0;
- if((test % 2) == 0)
- message.channel.send("Heads");
- else {
- message.channel.send("Tails");
- }
- break;
- case 'iq':
- var target = message.content.substring(3, message.content.length);
- if(target != "") {
- if(target == "@everyone" || target == "@here") {
- message.channel.send("Fuck you stop trying to trick the bot");
- }
- else {
- message.channel.send(target + " has an iq of " + Math.round(Math.random() * 200));
- }
- }
- else {
- message.channel.send(message.author.username + " has an iq of " + Math.round(Math.random() * 200));
- }
- break;
- case 'help':
- message.channel.send("Commands are:\n" +
- "!love [thing] - <user> loves <thing> by <percent>!\n" +
- "!roll - <user> rolls a <number>\n" +
- "!flip - coin flip\n" +
- "!ball - 8Ball\n" +
- "!looks\n" +
- "!iq\n" +
- "!table <argument>");
- break;
- case 'ball':
- var test = Math.floor(Math.random() * 11);
- if(test != 10) {
- var answers = ["Fuck yeah", "Yeee", "Sure, why not", "I guess",
- "mmmmm idk", "not right now", "ask me again later",
- "Nah", "No fuck off", "I swear to God shUT THE FUCK UP"
- ];
- message.channel.send(answers[test]);
- }
- // CapItAliZaTiON
- else {
- var target = message.content.substring(5, message.content.length);
- var result = "";
- let capCounter = Math.floor(Math.random() * 4);
- console.log(capCounter);
- target.split("").forEach(function(c) {
- if(c.match(/[a-z]/i))
- if(capCounter >= 3) {
- result += c.toUpperCase();
- capCounter = 0;
- }
- else {
- result += c.toLowerCase();
- capCounter++;
- }
- //result += (Math.random() > 0.6 ? c.toUpperCase() : c.toLowerCase());
- else
- result += c;
- });
- message.channel.send(result);
- }
- break;
- case 'kneecaps':
- message.channel.send("I'll break your fokin kneecaps kid :cricket:");
- break;
- case 'looks':
- var value = Math.floor(Math.random() * 11);
- var aaaa = "a ";
- if(value == 8) aaaa = "an ";
- message.channel.send(message.author.username + " is " + aaaa + value + " out of 10");
- break;
- case 'table':
- if(args[0] != null) {
- var msg = message.content.substring(6,message.content.length).trim().toUpperCase().split('');
- if(msg.length < 44) {
- var endstr = "```";
- //first row
- for(var i = 0; i < msg.length; i++) {
- endstr += msg[i] + " ";
- }
- endstr += "\n";
- //all following rows
- for(var i = 1; i < msg.length; i++) {
- //first add letter to first column
- endstr += msg[i];
- //add whitespaces
- for(var j = 0; j < (1 + 2 * (i-1)); j++) {
- endstr += " ";
- }
- endstr += msg[i] + "\n";
- }
- message.channel.send(endstr + "```");
- }
- else {
- message.channel.send("String too long");
- }
- }
- else {
- message.channel.send("Specify argument");
- }
- break;
- case 'bob':
- message.channel.send("Best butt in the game");
- break;
- case 'reminder':
- command = args.shift().toLowerCase();
- let timeUnit = command.substr(command.length - 1, 1);
- let timeNumber = parseFloat(command.substr(0, command.length - 1));
- if(isNaN(timeNumber)){
- message.channel.send("Not a number my dude");
- }
- else{
- if(timeUnit == 'h'){
- console.log("Hours");
- timeNumber = timeNumber * 3600000;
- }
- else if(timeUnit == 'm'){
- console.log("Minutes");
- timeNumber = timeNumber * 60000;
- }
- else if(timeUnit == 's'){
- console.log("Seconds");
- timeNumber = timeNumber * 1000;
- }
- var targetTime = new Date().getTime();
- let temp = "";
- while(args.length > 0){
- let check = args.shift();
- if(check != "@everyone" && check != "@here") {
- temp += " " + check;
- }
- else {
- message.channel.send("Fuck you stop trying to trick the bot");
- break;
- }
- }
- //Save to DB
- db.get('reminders').push({ id: targetTime, message: temp}).write();
- setReminder({
- setTime: targetTime,
- message: temp
- }, message.channel.name);
- message.channel.send("Reminder set!");
- }
- break;
- default:
- message.channel.send("Unknown command, type !help for a list of commands.");
- break;
- }
- }
- }
- }
- // prevent null pointer
- if(message.content != null) {
- var name = '<@!486589316110221313>';
- // @
- if(message.content.substring(0,name.length) === name) {
- if(message.content.includes('<:feelsHappyHug:432620065129627661>')) {
- message.channel.send("<@" + message.author.id + "> <:feelsHappyHug:432620065129627661>");
- }
- else if(message.content == name + ' <:peepo:443194006348890114>') {
- message.channel.send("<@" + message.author.id + "> <:peepo:443194006348890114>");
- }
- else {
- message.channel.send("<@" + message.author.id + "> <:plz:432620547902275584>");
- }
- }
- // reactions
- else if(message.content.includes("<:haHAA:452922257245732875>")) {
- message.react("452922257245732875");
- }
- else if(message.content.includes("<:fuckcysts:445026273748844559>")) {
- message.react("445026273748844559");
- }
- // thanks
- else if(message.content.toLowerCase() === "me too") {
- message.channel.send("thanks");
- }
- // peepo
- else if(message.content === "<:peepo:443194006348890114>") {
- message.channel.send("<:opeep:455159551180668938>");
- }
- // Good bot
- else if(message.content.toLowerCase() === "good bot") {
- message.channel.send("<@" + message.author.id + "> <:peepoWew:460204110361264148>");
- }
- // Bad bot
- else if(message.content.toLowerCase() === "bad bot") {
- message.channel.send("<@" + message.author.id + "> <:killmepls:432619991427186708>");
- }
- // Multi channel chain monkaS
- else {
- let messageChannel = message.channel;
- let messageContent = message.content;
- if(dictionary[messageChannel] == undefined) {
- dictionary[messageChannel] = {lastMessage: messageContent, count: 0, messaged: false };
- }
- else if(messageContent == dictionary[messageChannel].lastMessage) {
- let messageCount = dictionary[messageChannel].count;
- let messageMessaged = dictionary[messageChannel].messaged;
- if(messageCount >= 2 && !messageMessaged) {
- if(!(messageContent.includes("@everyone") || messageContent.includes("@here"))) {
- message.channel.send(messageContent);
- dictionary[messageChannel].messaged = true;
- }
- }
- else
- dictionary[messageChannel].count++;
- }
- else {
- dictionary[messageChannel].lastMessage = messageContent;
- dictionary[messageChannel].count = 0;
- dictionary[messageChannel].messaged = false;
- }
- /*
- console.log(dictionary);
- if(message.content === lastMessage && message.channel.name === lMChannelName) {
- if(lMCounter >= 2 && !lMMessaged) {
- if(!(message.content.includes("@everyone") || message.content.includes("@here"))) {
- message.channel.send(message.content);
- lMMessaged = true;
- }
- }
- else
- lMCounter++;
- }
- else {
- lastMessage = message.content;
- lMChannelName = message.channel.name;
- lMCounter = 0;
- lMMessaged = false;
- }
- */
- }
- }
- });
- function checkExclamations(args) {
- // ------------------------- protect the !!! -------------------------
- var temp = args;
- while(temp.includes('!'))
- temp = temp.replace('!', '');
- // -------------------------------------------------------------------
- return !(temp == '');
- }
- function setReminder(reminder, channelName){
- let channel = bot.channels.find("name", channelName);
- let currTime = new Date().getTime();
- let dTime = reminder.setTime - currTime;
- if(dTime < 0){
- channel.send("I overslept:\n"+reminder.message);
- db.get('reminders').remove({ id: reminder.setTime}).write();
- }
- else{
- var interval = setTimeout(() => {
- channel.send(reminder.message);
- db.get('reminders').remove({ id: reminder.setTime}).write();
- }, dTime);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement