Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var request = require('superagent');
- var discord = require('discord.js');
- var bot = new discord.Client({autoReconnect: true, forceFetchUsers: true});
- console.log('Starting DubCord Bot');
- setInterval(function() {
- bot.setPlayingGame('Link to dubtrack!');
- setTimeout(function() {
- bot.setPlayingGame('!link <dt-username>');
- }, 5000);
- }, 10000);
- var commands;
- var commandslist = [];
- var cmds = [];
- var helpcmdlist = [];
- request
- .get('https://mitchdev.net/dubcord/commands')
- .end(function(err, res) {
- res.body.data.forEach(function(a) {
- commandslist.push(a.command+'-'+a.content);
- helpcmdlist.push(' '+a.command+'\n');
- cmds.push(' "'+a.command+'"');
- a.regex = new RegExp(a.command+'\\b', 'i');
- });
- commands = res.body.data;
- });
- bot.on("serverNewMember", function(server, user) {
- bot.sendMessage('211598832851615744', '**Join**\n **User**: '+user.username);
- request
- .post('https://mitchdev.net/dubcord/user/'+user.id+'?pass=113e79cafdda073208f79682d1e2a8127cfaa62c0d67817f1a1919ca38655cfe')
- .type('form')
- .send({data: {discord: {username: user.username, id: user.id},dubs: 0,wins: 0, loses: 0}})
- .end(function(err, res) {
- if (err) {console.log(err); return;}
- });
- });
- bot.on("serverMemberRemoved", function(server, user) {
- bot.sendMessage('211598832851615744', '**Leave**\n **User**: '+user.username);
- });
- bot.on("message", function(message) {
- var msg = message.content.toLowerCase();
- var user = message.author;
- function who(id) {
- if (bot.memberHasRole(id, '208112802655764480')) {
- request
- .get('https://mitchdev.net/dubcord/user/'+id)
- .end(function(err, res) {
- if (err) {console.log(err);return;}
- var dis = res.body.data.discord;
- var dub = res.body.data.dubtrack;
- bot.sendMessage(message, "```xl\n"+"Discord:\n Username: "+dis.username.toLowerCase()+"\n"+" ID: '"+dis.id+"'\n"+"Dubtrack:\n Username: "+dub.username.toLowerCase()+"\n"+" ID: '"+dub.id+"'```");
- });
- } else {
- bot.sendMessage(message, 'User has not linked their account!');
- }
- }
- function newcommands(newcmds) {
- var newcommandslist = [];
- newcmds.forEach(function(e) {
- newcommandslist.push('{command: '+e.split('-')[0]+',content: '+e.split('-')[1]+'}');
- });
- setTimeout(function(){
- console.log(newcommandslist);
- //request
- //.post('https://mitchdev.net/dubcord/commands?pass=113e79cafdda073208f79682d1e2a8127cfaa62c0d67817f1a1919ca38655cfe')
- //.type('form')
- //.send({data: [newcommandslist]})
- //.end(function(err, res) {
- // if (err) {console.log(err);return;}
- // bot.reply(message, 'Done! :thumbsup:');
- //});
- }, 1500);
- }
- if (user !== bot.user) {
- for (var i = 0; i < commands.length; i++) {
- if (commands[i].regex.test(msg.split(' ')[0])) {
- bot.sendMessage(message, commands[i].content);
- }
- }
- if (msg === "!help") {
- bot.reply(message, ':thumbsup: I have sent you a private message with a list of commands!');
- bot.sendMessage(user.id, '**Bot Commands**\n **General**\n !link\n !unlink\n !room\n **Moderator**\n !mute\n !eval\n !admin\n **Custom Commands**\n'+helpcmdlist.join(''));
- }
- if (msg.startsWith("!commands")) {
- var newcmds = [];
- var deladdedit = msg.split(' ')[1];
- var cmd = msg.split(' ')[2];
- var content = msg.split(' ').splice(0, 2).join();
- console.log(content);
- if (deladdedit !== undefined) {
- if (bot.memberHasRole(user.id, '197465414551207947')) {
- if (deladdedit === 'add') {
- if (cmd !== undefined) {
- if (content !== undefined) {
- newcmds.push('!'+cmd+'-'+content);
- commandslist.forEach(function(e) {
- newcmds.push('!'+e.split('-')[0]+'-'+e.split('-')[1]);
- });
- setTimeout(function() {
- newcommands(newcmds);
- }, 1500);
- } else {
- bot.reply(message, 'No content');
- }
- } else {
- bot.reply(message, 'No command');
- }
- } else if (deladdedit === 'del' || deladdedit === 'delete') {
- if (cmd !== undefined) {
- commandslist.forEach(function(e) {
- if (e.indexOf('!'+cmd+'-') > -1) {
- newcmds.push('!'+e.split('-')[0]+'-'+e.split('-')[1]);
- }
- });
- setTimeout(function() {
- newcommands(newcmds);
- }, 1500);
- } else {
- bot.reply(message, 'No command');
- }
- } else if (deladdedit === 'edit') {
- if (cmd !== undefined) {
- if (content !== undefined) {
- commandslist.forEach(function(e) {
- if (e.indexOf('!'+cmd+'-') > -1) {
- newcmds.push('!'+e.split('-')[0]+'-'+e.split('-')[1]);
- } else {
- newcmds.push('!'+cmd+'-'+content);
- }
- });
- setTimeout(function() {
- newcommands(newcmds);
- }, 1500);
- } else {
- bot.reply(message, 'No content');
- }
- } else {
- bot.reply(message, 'No command');
- }
- } else {
- bot.reply(message, 'Inviald argument (add/del/edit)');
- }
- } else {
- bot.reply(message, 'No permission! :no_entry_sign:');
- }
- } else {
- bot.reply(message, ':thumbsup: I have sent you a private message with a list of commands!');
- bot.sendMessage(user.id, '**Bot Commands**\n **General**\n !link\n !unlink\n !room\n **Moderator**\n !mute\n !eval\n !admin\n **Custom Commands**\n'+helpcmdlist.join(''));
- }
- }
- if (msg.startsWith("!who")) {
- var mentioned = message.mentions[0];
- if (mentioned) {
- who(mentioned.id);
- } else {
- who(user.id);
- }
- }
- if (msg.startsWith("!eval")) {
- request
- .get('https://mitchdev.net/dubcord/admins')
- .end(function(err, res) {
- res.body.data.forEach(function(admin) {
- if (user.id === admin) {
- var operation = message.content.replace('!eval ', '');
- try {eval(operation);} catch(e) {bot.sendMessage(message, 'Error: '+e);return;}
- bot.sendMessage(message, '```'+eval(operation)+'```');return;
- }
- });
- });
- }
- if (msg.startsWith("!mute")) {
- var mentioned = message.mentions[0];
- var time = msg.split(' ')[2];
- var reason = msg.split(' ')[3];
- if (bot.memberHasRole(user.id, '197465414551207947')) {
- if (mentioned) {
- if (time !== undefined) {
- if (!isNaN(time)) {
- if (reason !== undefined) {
- if (reason === 'spamming') {
- bot.sendMessage('210715611687288833', '**Mute**\n**User**: '+mentioned.username+'#'+mentioned.discriminator+'\n**Minutes**: '+time+'\n**From**: '+user.username+'#'+user.discriminator+'\n**For**: Spamming in a channel');
- } else if (reason === 'farming') {
- bot.sendMessage('210715611687288833', '**Mute**\n**User**: '+mentioned.username+'#'+mentioned.discriminator+'\n**Minutes**: '+time+'\n**From**: '+user.username+'#'+user.discriminator+'\n**For**: Farming xp points');
- } else if (reason === 'trolling') {
- bot.sendMessage('210715611687288833', '**Mute**\n**User**: '+mentioned.username+'#'+mentioned.discriminator+'\n**Minutes**: '+time+'\n**From**: '+user.username+'#'+user.discriminator+'\n**For**: Trolling in a channel or voice chat');
- } else {
- bot.reply(message, 'Reason is invalid (Spamming, Farming, Trolling)');return;
- }
- bot.addMemberToRole(mentioned.id, '210710446171226112');
- bot.reply(message, ':thumbsup: Muted '+mentioned.username);
- setTimeout(function() {
- bot.removeMemberFromRole(mentioned.id, '210710446171226112');
- }, time*60000);
- } else {
- bot.reply(message, 'Reason is not defined (Spamming, Farming, Trolling)');
- }
- } else {
- bot.reply(message, 'Time is not a number');
- }
- } else {
- bot.reply(message, 'Time is not defined');
- }
- } else {
- bot.reply(message, 'User is not defined');
- }
- } else {
- bot.reply(message, 'No permission! :no_entry_sign:');
- }
- }
- if (msg.startsWith("!admin")) {
- var admins = [];
- var ids = [];
- var arg = msg.split(' ')[1];
- var id = msg.split(' ')[2];
- var mentioned = message.mentions[0];
- request
- .get('https://mitchdev.net/dubcord/admins')
- .end(function(err, res) {
- res.body.data.forEach(function(userid) {
- ids.push(userid);
- admins.push(' "'+bot.users.get("id", userid).username+'"');
- });
- if (arg !== undefined) {
- if (user.id === '100527085012938752') {
- if (arg === 'add') {
- if (mentioned) {
- ids.push(mentioned.id);
- request
- .post('https://mitchdev.net/dubcord/admins?pass=113e79cafdda073208f79682d1e2a8127cfaa62c0d67817f1a1919ca38655cfe')
- .type('form')
- .send({data: ids})
- .end(function(err, res) {
- if (err) {console.log(err);return;}
- bot.reply(message, ':thumbsup: Added '+mentioned.username+' to the bot admin list.');
- });
- } else if (id !== undefined) {
- ids.push(id);
- request
- .post('https://mitchdev.net/dubcord/admins?pass=113e79cafdda073208f79682d1e2a8127cfaa62c0d67817f1a1919ca38655cfe')
- .type('form')
- .send({data: ids})
- .end(function(err, res) {
- if (err) {console.log(err);return;}
- bot.reply(message, ':thumbsup: Added '+bot.users.get("id", id).username+' to the bot admin list.');
- });
- } else {
- bot.reply(message, 'No user specified `!admin add <@user>`');
- }
- } else if (arg === 'remove') {
- if (mentioned) {
- var n = ids.indexOf(mentioned.id);
- if (n > -1) {
- ids.splice(n, 1);
- request
- .post('https://mitchdev.net/dubcord/admins?pass=113e79cafdda073208f79682d1e2a8127cfaa62c0d67817f1a1919ca38655cfe')
- .type('form')
- .send({data: ids})
- .end(function(err, res) {
- if (err) {console.log(err);return;}
- bot.reply(message, ':thumbsup: Removed '+mentioned.username+' from the bot admin list.');
- });
- }
- } else if (id !== undefined) {
- var n = ids.indexOf(id);
- if (n > -1) {
- ids.splice(n, 1);
- request
- .post('https://mitchdev.net/dubcord/admins?pass=113e79cafdda073208f79682d1e2a8127cfaa62c0d67817f1a1919ca38655cfe')
- .type('form')
- .send({data: ids})
- .end(function(err, res) {
- if (err) {console.log(err);return;}
- bot.reply(message, ':thumbsup: Removed '+bot.users.get("id", id).username+' from the bot admin list.');
- });
- }
- } else {
- bot.reply(message, 'No user specified `!admin remove <@user|user-id>`');
- }
- }
- } else {
- bot.reply(message, 'No permission! :no_entry_sign:');
- }
- } else {
- bot.reply(message, 'Bot admins are:\n```xl\n'+admins+'```');
- }
- });
- }
- if (msg === '!database' || msg === '!db') {
- var linked = [];
- message.channel.server.members.forEach(function(e) {if(bot.memberHasRole(e.id, '208112802655764480')) {linked.push(e.id);}});
- request
- .get('https://mitchdev.net/dubcord/user/')
- .end(function(err, res) {
- bot.reply(message, '**Users**\n **Total**: '+res.body.users.length+'\n **Linked**: '+linked.length);
- });
- }
- if (msg.startsWith("!room")) {
- var room = message.content.split(' ')[1];
- if (room && room.length > 0) {
- bot.reply(message, 'Attempting to get room info of '+room, function(e, sentMsg) {
- request
- .post('https://api.dubtrack.fm/auth/dubtrack?username=dubcord&password=')
- .set('User-Agent', 'Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11')
- .set('Accept', '/')
- .set('Connection', 'keep-alive')
- .set('Content-Type', 'application/x-www-form-urlencoded')
- .end(function(err, res) {
- if (err) {console.log(err); return;}
- var cookie = res.headers['set-cookie'];
- request
- .get('https://api.dubtrack.fm/room/'+room)
- .set('User-Agent', 'Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11')
- .set('Cookie', cookie)
- .set('Accept', '/')
- .set('Connection', 'keep-alive')
- .set('Content-Type', 'application/x-www-form-urlencoded')
- .end(function(err, res) {
- if (err) {if(err.status === 404) {bot.updateMessage(sentMsg, '<@'+user.id+'>, Could not find Dubtrack room '+room);}else{console.log(err);}return;}
- if (!res.body.data.currentSong || !res.body.data.currentSong.name) {
- bot.updateMessage(sentMsg, "<@"+user.id+">,\n```xl\n"+room+":\n Creator: '"+res.body.data._user.username+"'\n Users: '"+res.body.data.activeUsers+"'\n Name: '"+res.body.data.name+"'\n Id: '"+res.body.data._id+"'\n```");
- } else {
- bot.updateMessage(sentMsg, "<@"+user.id+">,\n```xl\n"+room+":\n Current Song: '"+res.body.data.currentSong.name+"'\n Creator: '"+res.body.data._user.username+"'\n Users: '"+res.body.data.activeUsers+"'\n Name: '"+res.body.data.name+"'\n Id: '"+res.body.data._id+"'\n```");
- }
- });
- });
- });
- } else {
- bot.reply(message, 'No room was specified');
- }
- }
- if (msg === '!unlink') {
- if (bot.memberHasRole(user.id, '208112802655764480')) {
- request
- .post('https://mitchdev.net/dubcord/user/'+user.id+'?pass=113e79cafdda073208f79682d1e2a8127cfaa62c0d67817f1a1919ca38655cfe')
- .type('form')
- .send({data: {discord: {username: user.username, id: user.id},dubs: 0,wins: 0, loses: 0}})
- .end(function(err, res) {
- if (err) {console.log(err); return;}
- bot.removeMemberFromRole(user.id, '208112802655764480');
- bot.reply(message, 'Done! :thumbsup:');
- });
- } else {
- bot.reply(message, 'You are not currently linked.');
- }
- }
- if (msg.startsWith("!link")) {
- var usernamen = msg.split(' ')[1];
- var discord_id = user.id;
- var discord_username = user.username;
- var dubtrack_id;
- var dubtrack_username;
- if (usernamen && usernamen.length > 0) {
- if (!bot.memberHasRole(discord_id, '208112802655764480')) {
- bot.reply(message, 'Attempting to send you a message on Dubtrack...', function(e, sentMsg) {
- request
- .post('https://api.dubtrack.fm/auth/dubtrack?username=dubcord&password=')
- .set('User-Agent', 'Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11')
- .set('Accept', '/')
- .set('Connection', 'keep-alive')
- .set('Content-Type', 'application/x-www-form-urlencoded')
- .end(function(err, res) {
- console.log(res);
- if (err) {console.log(err); return}
- var cookies = res.headers['set-cookie'];
- request
- .get('https://api.dubtrack.fm/auth/session')
- .set('User-Agent', 'Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11')
- .set('Cookie', cookies)
- .set('Accept', '/')
- .set('Connection', 'keep-alive')
- .set('Content-Type', 'application/x-www-form-urlencoded')
- .end(function(err, res) {
- if (err) {console.log(err); return}
- var selfUserID = res.body.data.userInfo.userid;
- request
- .get('https://api.dubtrack.fm/user/'+usernamen)
- .set('User-Agent', 'Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11')
- .set('Cookie', cookies)
- .set('Accept', '/')
- .set('Connection', 'keep-alive')
- .set('Content-Type', 'application/x-www-form-urlencoded')
- .end(function(err, res) {
- if (err) {if(err.status === 404) {bot.updateMessage(sentMsg, '<@'+discord_id+'>, Could not find Dubtrack user of '+ usernamen);}else{console.log(err);}return;}
- var toUserID = res.body.data.userInfo.userid;
- var dubtrack_id = res.body.data.userInfo.userid;
- var dubtrack_username = res.body.data.username;
- request
- .post('https://api.dubtrack.fm/message')
- .set('User-Agent', 'Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11')
- .set('Cookie', cookies)
- .set('Accept', '/')
- .set('Connection', 'keep-alive')
- .type('form')
- .send({usersid: [toUserID, selfUserID]})
- .end(function(err, res) {
- if (err) {console.log(err); return;}
- var convid = res.body.data._id;
- request
- .post('https://api.dubtrack.fm/message/'+ convid)
- .set('User-Agent', 'Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11')
- .set('Cookie', cookies)
- .set('Accept', '/')
- .set('Connection', 'keep-alive')
- .type('form')
- .send({message: "Do !confirmlink within 2 minutes to link your account ("+discord_username+" If this is not you wait for the time to expired!) with Discord.", time: Date.now()})
- .end(function(err, res) {
- if (err) {console.log(err); return;}
- var checkinterval = setInterval(function() {
- request
- .get('https://api.dubtrack.fm/message/'+ convid)
- .set('User-Agent', 'Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11')
- .set('Cookie', cookies)
- .set('Accept', '/')
- .set('Connection', 'keep-alive')
- .set('Content-Type', 'application/x-www-form-urlencoded')
- .end(function(err, res) {
- if (err) {console.log(err); return;}
- bot.updateMessage(sentMsg, '<@'+discord_id+'>, I\'ve sent you a private message on dubtrack with instructions!');
- var msgstr = res.body.data[0].message;
- if (/^!confirmlink/i.test(msgstr)) {
- clearTimeout(checktimeout);
- clearInterval(checkinterval);
- request
- .post('https://mitchdev.net/dubcord/user/'+discord_id+'?pass=113e79cafdda073208f79682d1e2a8127cfaa62c0d67817f1a1919ca38655cfe')
- .type('form')
- .send({data: {discord: {username: discord_username, id: discord_id}, dubtrack: {username: dubtrack_username, id: dubtrack_id},dubs: 0,wins: 0, loses: 0}})
- .end(function(err, res) {
- if (err) {console.log(err); return;}
- bot.updateMessage(sentMsg, '<@'+discord_id+'>, You\'re linked!');
- bot.sendMessage('210715611687288833', '**Link**\n **Discord**: '+discord_username+'\n **Dubtrack**: '+dubtrack_username);
- request
- .post('https://api.dubtrack.fm/message/'+ convid)
- .set('User-Agent', 'Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11')
- .set('Cookie', cookies)
- .set('Accept', '/')
- .set('Connection', 'keep-alive')
- .type('form')
- .send({message: "Successfuly Linked!", time: Date.now()})
- .end(function(err, res) {
- if (err) {console.log(err); return;}
- bot.addMemberToRole(discord_id, '208112802655764480', function(err) {if (err) {console.log(err); return;}});
- });
- });
- }
- });
- }, 5000);
- var checktimeout = setTimeout(function() {
- clearInterval(checkinterval);
- bot.updateMessage(sentMsg, '<@'+discord_id+'>, Time has expired please try again!');
- request
- .post('https://api.dubtrack.fm/message/'+ convid)
- .set('User-Agent', 'Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11')
- .set('Cookie', cookies)
- .set('Accept', '/')
- .set('Connection', 'keep-alive')
- .type('form')
- .send({message: "Time has expired please try again!", time: Date.now()})
- .end(function(err, res) {
- if (err) {console.log(err); return;}
- });
- }, 120000);
- });
- });
- });
- });
- });
- });
- } else {
- bot.reply(message, 'You have already been linked!');
- }
- }
- }
- }
- });
- bot.on("error", function(err) {
- console.log(err);
- });
- bot.loginWithToken("");
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement