summon edits and hopefully bug fix
This commit is contained in:
@@ -13,6 +13,7 @@ build:
|
||||
|
||||
deploy_staging:
|
||||
stage: deploy
|
||||
|
||||
script:
|
||||
- echo "Deploy to staging server"
|
||||
environment:
|
||||
|
744
bot.js
744
bot.js
@@ -12,109 +12,157 @@ var channel = null;
|
||||
// available commands
|
||||
function availableCommands() {
|
||||
return "Available commands: " +
|
||||
"\n**[SFW]** b.<*coinflip, 8ball, roll, compute, summon, bunny, dankmemes, meirl, animemes, moe, moe-boys, hotguys , kgirls, kboys*>" +
|
||||
"\n**[NSFW]** b.<*lewd, ecchi, hentai, yaoi, yuri, neko, pokeporn, hgifs*>" +
|
||||
"\nFor more information on a command, you may use: *b.help <command>*";
|
||||
"\n**[SFW]** b.<*coinflip, 8ball, roll, compute, summon, bunny, dankmemes, meirl, animemes, moe, moe-boys, hotguys , kgirls, kboys*>" +
|
||||
"\n**[NSFW]** b.<*lewd, ecchi, hentai, yaoi, yuri, neko, pokeporn, hgifs*>" +
|
||||
"\nFor more information on a command, you may use: *b.help <command>*";
|
||||
}
|
||||
|
||||
// help commands
|
||||
function commandsHelp(requestedCommand) {
|
||||
var commands = {"coinflip": "**coinflip:** Returns a result of heads or tails.",
|
||||
"8ball": "**8ball:** Shakes an 8 ball and returns a result.",
|
||||
"roll": "**roll:** Rolls a number between 1-100 (or a specified range [ex: b.roll 50-100])",
|
||||
"compute": "**compute:** Uses WolframAlpha to process the question asked.",
|
||||
"summon": "**summon:** Posts a picture from a user inputted subreddit",
|
||||
"bunny": "**bunny:** Posts a picture of different bunnies",
|
||||
"dankmemes": "**dankmemes:** Posts a picture of some dank memes (r/dankmemes)",
|
||||
"meirl": "**meirl:** Posts a picture of anime irl (r/anime_irl)",
|
||||
"animemes": "**animemes:** Posts a picture of anime memes (r/animemes)",
|
||||
"moe": "**moe:** Posts a picture of moe anime (r/awwnime)",
|
||||
"moe-boys": "**moe-boys:** Posts a picture of moe anime boys (r/cuteanimeboys)",
|
||||
"hotguys": "**hotguys:** Posts a picture of hot anime guys (r/bishounen)",
|
||||
"kgirls": "**kgirls:** Posts a picture of k-pop girls (r/kpics or r/kpopfap)",
|
||||
"kboys": "**kboys:** Posts a picture of k-pop guys (r/kfanservice, r/kpecs, or r/cutekboys)",
|
||||
"lewd": "[NSFW] **lewd:** Posts a picture of lewd anime girls (r/pantsu)",
|
||||
"ecchi": "[NSFW] **ecchi:** Posts a picture of ecchi anime girls (r/ecchi)",
|
||||
"hentai": "[NSFW] **hentai:** Posts a picture of hentai (r/hentai or r/sukebei)",
|
||||
"yaoi": "[NSFW] **yaoi:** Posts a picture of yaoi (r/yaoi)",
|
||||
"yuru": "[NSFW] **yuri:** Post a picture of yuri (r/yuri)",
|
||||
"neko": "[NSFW] **neko:** Posts a picture of cat girls (r/nekomimi)",
|
||||
"pokeporn": "[NSFW] **pokeporn:** Posts a picture of pokemon hentai (r/pokeporn)",
|
||||
"hgifs": "[NSFW] **hgifs:** Posts a gif of hentai (r/nsfwanimegifs)",
|
||||
"hentaibondage": "[NSFW] **hentaibondage:** Posts a picture of hentai in bondage (r/hentaibondage)"};
|
||||
var commands = {
|
||||
"coinflip": "**coinflip:** Returns a result of heads or tails.",
|
||||
"8ball": "**8ball:** Shakes an 8 ball and returns a result.",
|
||||
"roll": "**roll:** Rolls a number between 1-100 (or a specified range [ex: b.roll 50-100])",
|
||||
"compute": "**compute:** Uses WolframAlpha to process the question asked.",
|
||||
"summon": "**summon:** Posts a picture from a user inputted subreddit",
|
||||
"bunny": "**bunny:** Posts a picture of different bunnies",
|
||||
"dankmemes": "**dankmemes:** Posts a picture of some dank memes (r/dankmemes)",
|
||||
"meirl": "**meirl:** Posts a picture of anime irl (r/anime_irl)",
|
||||
"animemes": "**animemes:** Posts a picture of anime memes (r/animemes)",
|
||||
"moe": "**moe:** Posts a picture of moe anime (r/awwnime)",
|
||||
"moe-boys": "**moe-boys:** Posts a picture of moe anime boys (r/cuteanimeboys)",
|
||||
"hotguys": "**hotguys:** Posts a picture of hot anime guys (r/bishounen)",
|
||||
"kgirls": "**kgirls:** Posts a picture of k-pop girls (r/kpics or r/kpopfap)",
|
||||
"kboys": "**kboys:** Posts a picture of k-pop guys (r/kfanservice, r/kpecs, or r/cutekboys)",
|
||||
"lewd": "[NSFW] **lewd:** Posts a picture of lewd anime girls (r/pantsu)",
|
||||
"ecchi": "[NSFW] **ecchi:** Posts a picture of ecchi anime girls (r/ecchi)",
|
||||
"hentai": "[NSFW] **hentai:** Posts a picture of hentai (r/hentai or r/sukebei)",
|
||||
"yaoi": "[NSFW] **yaoi:** Posts a picture of yaoi (r/yaoi)",
|
||||
"yuru": "[NSFW] **yuri:** Post a picture of yuri (r/yuri)",
|
||||
"neko": "[NSFW] **neko:** Posts a picture of cat girls (r/nekomimi)",
|
||||
"pokeporn": "[NSFW] **pokeporn:** Posts a picture of pokemon hentai (r/pokeporn)",
|
||||
"hgifs": "[NSFW] **hgifs:** Posts a gif of hentai (r/nsfwanimegifs)",
|
||||
"hentaibondage": "[NSFW] **hentaibondage:** Posts a picture of hentai in bondage (r/hentaibondage)"
|
||||
};
|
||||
|
||||
if (commands[requestedCommand] === undefined)
|
||||
{
|
||||
if (commands[requestedCommand] === undefined) {
|
||||
return "Command not found, try entering **b.commands** for a full list of commands";
|
||||
}
|
||||
else
|
||||
{
|
||||
else {
|
||||
return commands[requestedCommand];
|
||||
}
|
||||
}
|
||||
|
||||
// coin flip
|
||||
function coinFlip() {
|
||||
return (Math.floor(Math.random() * 2) === 0) ? 'heads' : 'tails';
|
||||
return (Math.floor(Math.random() * 2) === 0) ? 'heads' : 'tails';
|
||||
}
|
||||
|
||||
// 8 ball
|
||||
function eightBall() {
|
||||
var answers = [
|
||||
'Maybe.', 'Certainly not.', 'I hope so.', 'Not in your wildest dreams.',
|
||||
'There is a good chance.', 'Quite likely.', 'I think so.', 'I hope not.',
|
||||
'I hope so.', 'Never!', 'Fuhgeddaboudit.', 'Ahaha! Really?!?', 'Pfft.',
|
||||
'Sorry, bucko.', 'Hell, yes.', 'Hell to the no.', 'The future is bleak.',
|
||||
'The future is uncertain.', 'I would rather not say.', 'Who cares?',
|
||||
'Possibly.', 'Never, ever, ever.', 'There is a small chance.', 'Yes!'];
|
||||
var answers = [
|
||||
'Maybe.', 'Certainly not.', 'I hope so.', 'Not in your wildest dreams.',
|
||||
'There is a good chance.', 'Quite likely.', 'I think so.', 'I hope not.',
|
||||
'I hope so.', 'Never!', 'Fuhgeddaboudit.', 'Ahaha! Really?!?', 'Pfft.',
|
||||
'Sorry, bucko.', 'Hell, yes.', 'Hell to the no.', 'The future is bleak.',
|
||||
'The future is uncertain.', 'I would rather not say.', 'Who cares?',
|
||||
'Possibly.', 'Never, ever, ever.', 'There is a small chance.', 'Yes!'];
|
||||
|
||||
return answers[(Math.floor(Math.random() * answers.length))];
|
||||
return answers[(Math.floor(Math.random() * answers.length))];
|
||||
}
|
||||
|
||||
// number roll
|
||||
function numberRoll(startingRange, endingRange) {
|
||||
startingRange = Math.ceil(startingRange);
|
||||
endingRange = Math.floor(endingRange);
|
||||
return Math.floor(Math.random() * (endingRange-startingRange)) + startingRange;
|
||||
return Math.floor(Math.random() * (endingRange - startingRange)) + startingRange;
|
||||
}
|
||||
|
||||
// stupid question response
|
||||
function stupidQuestion() {
|
||||
var answers = [
|
||||
let answers = [
|
||||
'What kind of dumb question is that?', 'A real question please.',
|
||||
'Is that supposed to be a question?', 'Who asked such a dumb question?',
|
||||
'How about a good question instead?', 'Only good questions please',
|
||||
'Oh god, is that a question?', 'Are you dumb because that\'s a dumb question.'];
|
||||
|
||||
return answers[(Math.floor(Math.random() * answers.length))];
|
||||
return answers[(Math.floor(Math.random() * answers.length))];
|
||||
}
|
||||
|
||||
function noQuestion() {
|
||||
var answers = ['it helps to ask a question...', 'question plz.', 'where is the question?'];
|
||||
let answers = ['it helps to ask a question...', 'question plz.', 'where is the question?'];
|
||||
|
||||
return answers[(Math.floor(Math.random() * answers.length))];
|
||||
}
|
||||
|
||||
// Try's all sources and returns in preferred order
|
||||
// 1. Reddit
|
||||
// 2. Imgur
|
||||
// 3. RedditBooru
|
||||
function bestEffortRequest(subpage, page_max) {
|
||||
|
||||
let reddit_response = subredditRequest(subpage);
|
||||
if(reddit_response) { return reddit_response; }
|
||||
|
||||
let imgur_response;
|
||||
if(page_max) {
|
||||
imgur_response = imgurRequest(subpage, page_max);
|
||||
if(imgur_response) { return imgur_response }
|
||||
}
|
||||
|
||||
let redditbooru_response = redditbooruRequest(subpage);
|
||||
if(redditbooru_response) { return redditbooru_response }
|
||||
|
||||
return "I couldn't find that, sauce?";
|
||||
}
|
||||
|
||||
// Dalton's image summon command.
|
||||
// Checks for banned author's using a hard coded list of discord ids.
|
||||
// Also rudely cleans garbage entries.
|
||||
function summonCommand() {
|
||||
let bannedAuthors = ['143999140878090240'];
|
||||
if (bannedAuthors.contains(message.author)) {
|
||||
|
||||
let messageSplit = message.content.substring(2).split(' ');
|
||||
if (messageSplit.length >= 2) {
|
||||
let redditToSummon = messageSplit[1].replace(/[^a-zA-Z0-9_\-]+/g, "");
|
||||
|
||||
// Valid Argument
|
||||
if (redditToSummon) {
|
||||
|
||||
message.channel.send(message.author + ' summons *' + redditToSummon + '*\n');
|
||||
let site_response = bestEffortRequest(redditToSummon, 5);
|
||||
|
||||
if (site_response) {
|
||||
message.channel.send(redditResponse);
|
||||
}
|
||||
|
||||
// Missing Argument
|
||||
} else {
|
||||
message.reply("wut do i summon?");
|
||||
}
|
||||
}
|
||||
} else {
|
||||
message.reply("You're a bad boi and a banned author, you can't summon til you learn to behave.")
|
||||
}
|
||||
}
|
||||
|
||||
// imgur request
|
||||
function imgurRequest(subreddit, page_max)
|
||||
{
|
||||
function imgurRequest(subreddit, page_max) {
|
||||
var multiSubreddit = subreddit.split(',');
|
||||
|
||||
var request_url = 'https://api.imgur.com/3/gallery/r/' + multiSubreddit[getRandomInt(0, multiSubreddit.length-1)] + '/time/' + getRandomInt(1,page_max);
|
||||
var request_url = 'https://api.imgur.com/3/gallery/r/' + multiSubreddit[getRandomInt(0, multiSubreddit.length - 1)] + '/time/' + getRandomInt(1, page_max);
|
||||
|
||||
var req = new XMLHttpRequest();
|
||||
var returnText = "";
|
||||
|
||||
req.onreadystatechange = function()
|
||||
{
|
||||
if (req.readyState === 4 && req.status === 200)
|
||||
{
|
||||
if(req.responseText != "Not found")
|
||||
{
|
||||
req.onreadystatechange = function () {
|
||||
if (req.readyState === 4 && req.status === 200) {
|
||||
if (req.responseText !== "Not found") {
|
||||
var json = JSON.parse(req.responseText);
|
||||
returnText = json.data[getRandomInt(0,json.data.length-1)].link;
|
||||
returnText = json.data[getRandomInt(0, json.data.length - 1)].link;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
req.open("GET", request_url, false);
|
||||
@@ -125,36 +173,30 @@ function imgurRequest(subreddit, page_max)
|
||||
}
|
||||
|
||||
// subreddit request
|
||||
function subredditRequest(subreddit)
|
||||
{
|
||||
function subredditRequest(subreddit) {
|
||||
var multiSubreddit = subreddit.split(',');
|
||||
|
||||
var redditURL = "https://www.reddit.com/r/" + multiSubreddit[getRandomInt(0, multiSubreddit.length-1)] + "/.json?show=all&count=25&limit=100";
|
||||
var redditURL = "https://www.reddit.com/r/" + multiSubreddit[getRandomInt(0, multiSubreddit.length - 1)] + "/.json?show=all&count=25&limit=100";
|
||||
var req = new XMLHttpRequest();
|
||||
var returnText = "";
|
||||
|
||||
req.onreadystatechange = function()
|
||||
{
|
||||
if(req.readyState === 4 && req.status === 200)
|
||||
{
|
||||
req.onreadystatechange = function () {
|
||||
if (req.readyState === 4 && req.status === 200) {
|
||||
|
||||
var json = JSON.parse(req.responseText);
|
||||
while(true)
|
||||
{
|
||||
var i = getRandomInt(0,json.data.children.length-1);
|
||||
try
|
||||
{
|
||||
if(json.data.children[i].data.post_hint === "image" || json.data.children[i].data.post_hint === "link" || json.data.children.data.post_hint === "rich:video")
|
||||
{
|
||||
returnText = json.data.children[i].data.url;
|
||||
break;
|
||||
}
|
||||
}
|
||||
catch (error) // error parsing json
|
||||
{
|
||||
// Ignore the error and continue.
|
||||
// continue; <-- last line in the loop... so does nothing.
|
||||
}
|
||||
while (true) {
|
||||
var i = getRandomInt(0, json.data.children.length - 1);
|
||||
try {
|
||||
if (json.data.children[i].data.post_hint === "image" || json.data.children[i].data.post_hint === "link" || json.data.children.data.post_hint === "rich:video") {
|
||||
returnText = json.data.children[i].data.url;
|
||||
break;
|
||||
}
|
||||
}
|
||||
catch (error) // error parsing json
|
||||
{
|
||||
// Ignore the error and continue.
|
||||
// continue; <-- last line in the loop... so does nothing.
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -166,23 +208,20 @@ function subredditRequest(subreddit)
|
||||
}
|
||||
|
||||
// redditbooru request
|
||||
function redditbooruRequest(subreddit)
|
||||
{
|
||||
function redditbooruRequest(subreddit) {
|
||||
var multiSubreddit = subreddit.split(',');
|
||||
|
||||
var url = "https://" + multiSubreddit[getRandomInt(0, multiSubreddit.length-1)] + ".redditbooru.com/images/?limit=1000";
|
||||
var url = "https://" + multiSubreddit[getRandomInt(0, multiSubreddit.length - 1)] + ".redditbooru.com/images/?limit=1000";
|
||||
var req = new XMLHttpRequest();
|
||||
var returnText = "";
|
||||
|
||||
req.onreadystatechange = function()
|
||||
{
|
||||
if(req.readyState === 4 && req.status === 200)
|
||||
{
|
||||
req.onreadystatechange = function () {
|
||||
if (req.readyState === 4 && req.status === 200) {
|
||||
var json = JSON.parse(req.responseText);
|
||||
var imageID = getRandomInt(0, json.length);
|
||||
returnText = json[imageID].cdnUrl;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
req.open("GET", url, false);
|
||||
req.send();
|
||||
@@ -191,19 +230,16 @@ function redditbooruRequest(subreddit)
|
||||
}
|
||||
|
||||
// wolframalpha computation
|
||||
function calculate(message)
|
||||
{
|
||||
function calculate(message) {
|
||||
var url = "http://api.wolframalpha.com/v1/result?appid=" + auth.wolframalpha + "&i=" + encodeURIComponent(message);
|
||||
var req = new XMLHttpRequest();
|
||||
var returnText = "";
|
||||
|
||||
req.onreadystatechange = function()
|
||||
{
|
||||
if(req.readyState === 4 && req.status === 200)
|
||||
{
|
||||
req.onreadystatechange = function () {
|
||||
if (req.readyState === 4 && req.status === 200) {
|
||||
returnText = req.responseText;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
req.open("GET", url, false);
|
||||
req.send();
|
||||
@@ -212,25 +248,20 @@ function calculate(message)
|
||||
}
|
||||
|
||||
// get random number with starting and ending number
|
||||
function getRandomInt(min, max)
|
||||
{
|
||||
function getRandomInt(min, max) {
|
||||
return Math.floor(Math.random() * (max - min + 1)) + min;
|
||||
}
|
||||
|
||||
// voice setup
|
||||
function setupVoice(file, volume, voice_channel)
|
||||
{
|
||||
function setupVoice(file, volume, voice_channel) {
|
||||
playQueue.unshift(file);
|
||||
playVolume.unshift(volume);
|
||||
|
||||
if(!channel)
|
||||
{
|
||||
if (!channel) {
|
||||
channel = voice_channel;
|
||||
}
|
||||
if(channel instanceof Discord.VoiceChannel)
|
||||
{
|
||||
if(!queueExists)
|
||||
{
|
||||
if (channel instanceof Discord.VoiceChannel) {
|
||||
if (!queueExists) {
|
||||
queueExists = true;
|
||||
channel.join().then(connection =>
|
||||
{
|
||||
@@ -238,8 +269,7 @@ function setupVoice(file, volume, voice_channel)
|
||||
});
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
else {
|
||||
playQueue.pop();
|
||||
playVolume.pop();
|
||||
channel = null;
|
||||
@@ -247,10 +277,8 @@ function setupVoice(file, volume, voice_channel)
|
||||
}
|
||||
|
||||
// voice queue
|
||||
function handlePlayQueue(connection)
|
||||
{
|
||||
if (playQueue.length === 0)
|
||||
{
|
||||
function handlePlayQueue(connection) {
|
||||
if (playQueue.length === 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -259,22 +287,20 @@ function handlePlayQueue(connection)
|
||||
dispatcher.on("end", () =>
|
||||
{
|
||||
playQueue.pop();
|
||||
playVolume.pop();
|
||||
playVolume.pop();
|
||||
|
||||
if(playQueue.length === 0)
|
||||
{
|
||||
queueExists = false;
|
||||
if(channel != null)
|
||||
{
|
||||
channel.leave();
|
||||
channel = null;
|
||||
}
|
||||
if (playQueue.length === 0) {
|
||||
queueExists = false;
|
||||
if (channel != null) {
|
||||
channel.leave();
|
||||
channel = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
handlePlayQueue(connection);
|
||||
}
|
||||
});
|
||||
}
|
||||
else {
|
||||
handlePlayQueue(connection);
|
||||
}
|
||||
})
|
||||
;
|
||||
dispatcher.setVolume(playVolume[0]);
|
||||
}
|
||||
|
||||
@@ -284,266 +310,254 @@ const client = new Discord.Client();
|
||||
client.on('ready', () => {
|
||||
console.log('Bot is ready');
|
||||
|
||||
// update status
|
||||
var availableTypes = ['PLAYING', 'LISTENING', 'WATCHING'];
|
||||
var setType = availableTypes[Math.floor(Math.random() * availableTypes.length)];
|
||||
var setStatus;
|
||||
// update status
|
||||
var availableTypes = ['PLAYING', 'LISTENING', 'WATCHING'];
|
||||
var setType = availableTypes[Math.floor(Math.random() * availableTypes.length)];
|
||||
var setStatus;
|
||||
|
||||
switch(setType)
|
||||
{
|
||||
case 'PLAYING':
|
||||
var availableStatus = ['with cute bunnies', 'with bunny toys', 'in bunny heaven', 'with my pet bunny', 'with all the bunnies'];
|
||||
setStatus = availableStatus[Math.floor(Math.random() * availableStatus.length)];
|
||||
break;
|
||||
case 'LISTENING':
|
||||
var availableStatus = ['to cute bunnies', 'to adorable bunnies eating', 'to bunnies playing with toys', 'to bunnies pouting'];
|
||||
setStatus = availableStatus[Math.floor(Math.random() * availableStatus.length)];
|
||||
break;
|
||||
case 'WATCHING':
|
||||
var availableStatus = ['cute bunnies', 'cute bunnies play', 'cute bunnies sleep', 'bunnies nibbling on food', 'swiftimustv'];
|
||||
setStatus = availableStatus[Math.floor(Math.random() * availableStatus.length)];
|
||||
break;
|
||||
}
|
||||
switch (setType) {
|
||||
case 'PLAYING':
|
||||
var availableStatus = ['with cute bunnies', 'with bunny toys', 'in bunny heaven', 'with my pet bunny', 'with all the bunnies'];
|
||||
setStatus = availableStatus[Math.floor(Math.random() * availableStatus.length)];
|
||||
break;
|
||||
case 'LISTENING':
|
||||
var availableStatus = ['to cute bunnies', 'to adorable bunnies eating', 'to bunnies playing with toys', 'to bunnies pouting'];
|
||||
setStatus = availableStatus[Math.floor(Math.random() * availableStatus.length)];
|
||||
break;
|
||||
case 'WATCHING':
|
||||
var availableStatus = ['cute bunnies', 'cute bunnies play', 'cute bunnies sleep', 'bunnies nibbling on food', 'swiftimustv'];
|
||||
setStatus = availableStatus[Math.floor(Math.random() * availableStatus.length)];
|
||||
break;
|
||||
}
|
||||
|
||||
client.user.setActivity(setStatus, {type: setType});
|
||||
});
|
||||
client.user.setActivity(setStatus, {type: setType});
|
||||
})
|
||||
;
|
||||
|
||||
// commands
|
||||
client.on('message', message => {
|
||||
if (message.content.substring(0, 2).toUpperCase() === 'B.') {
|
||||
var args = message.content.substring(2).split(' ');
|
||||
var cmd = args[0];
|
||||
if(message.content.substring(0, 2).toUpperCase() === 'B.') {
|
||||
var args = message.content.substring(2).split(' ');
|
||||
var cmd = args[0];
|
||||
|
||||
switch(cmd)
|
||||
{
|
||||
// Reply commands
|
||||
case 'command':
|
||||
case 'commands':
|
||||
case 'help':
|
||||
var message_content = message.content.substring(2).split(' ');
|
||||
if(message.content.substring(2).split(' ')[1] === undefined)
|
||||
{
|
||||
message.channel.send(availableCommands());
|
||||
}
|
||||
else
|
||||
{
|
||||
message.channel.send(commandsHelp(message_content[1]));
|
||||
}
|
||||
break;
|
||||
case 'coinflip':
|
||||
case 'coin':
|
||||
message.channel.send(message.author + ' flipped a coin, it landed on **' + coinFlip() + '!**');
|
||||
break;
|
||||
case '8ball':
|
||||
if(message.content.substring(8).length > 0)
|
||||
{
|
||||
message.channel.send(message.author + ' asked: *' + message.content.substring(8) + '*\n' +
|
||||
'The magic 8 ball says: **' + eightBall() + '**');
|
||||
}
|
||||
else
|
||||
{
|
||||
message.reply(noQuestion());
|
||||
}
|
||||
break;
|
||||
case 'roll':
|
||||
var message_content = message.content.substring(2).split(' ');
|
||||
if(message_content[1] !== undefined && message_content[1].length > 0) // ranged roll
|
||||
{
|
||||
var regex = /^[0-9]+-[0-9]+$/;
|
||||
if(regex.test(message_content[1]))
|
||||
{
|
||||
var range_break = message_content[1].split('-');
|
||||
switch (cmd) {
|
||||
// Reply commands
|
||||
case 'command':
|
||||
case 'commands':
|
||||
case 'help':
|
||||
var message_content = message.content.substring(2).split(' ');
|
||||
if (message.content.substring(2).split(' ')[1] === undefined) {
|
||||
message.channel.send(availableCommands());
|
||||
}
|
||||
else {
|
||||
message.channel.send(commandsHelp(message_content[1]));
|
||||
}
|
||||
break;
|
||||
case 'coinflip':
|
||||
case 'coin':
|
||||
message.channel.send(message.author + ' flipped a coin, it landed on **' + coinFlip() + '!**');
|
||||
break;
|
||||
case '8ball':
|
||||
if (message.content.substring(8).length > 0) {
|
||||
message.channel.send(message.author + ' asked: *' + message.content.substring(8) + '*\n' +
|
||||
'The magic 8 ball says: **' + eightBall() + '**');
|
||||
}
|
||||
else {
|
||||
message.reply(noQuestion());
|
||||
}
|
||||
break;
|
||||
case 'roll':
|
||||
var message_content = message.content.substring(2).split(' ');
|
||||
if (message_content[1] !== undefined && message_content[1].length > 0) // ranged roll
|
||||
{
|
||||
var regex = /^[0-9]+-[0-9]+$/;
|
||||
if (regex.test(message_content[1])) {
|
||||
var range_break = message_content[1].split('-');
|
||||
|
||||
message.channel.send(message.author + ' rolls a number between ' + range_break[0] + ' and ' + range_break[1] + '. They roll **' + numberRoll(range_break[0], range_break[1]) + '**.');
|
||||
}
|
||||
else
|
||||
{
|
||||
message.channel.send('Unknown roll format. Use "**b.help roll**" for more information.');
|
||||
}
|
||||
message.channel.send(message.author + ' rolls a number between ' + range_break[0] + ' and ' + range_break[1] + '. They roll **' + numberRoll(range_break[0], range_break[1]) + '**.');
|
||||
}
|
||||
else // default roll (1-100)
|
||||
{
|
||||
message.channel.send(message.author + ' rolls a number between 1 and 100. They roll **' + numberRoll(1, 100) + '**.');
|
||||
else {
|
||||
message.channel.send('Unknown roll format. Use "**b.help roll**" for more information.');
|
||||
}
|
||||
break;
|
||||
case 'compute':
|
||||
case 'convert':
|
||||
case 'calculate':
|
||||
var message_content = message.content.substring(2).split(' ');
|
||||
if(message_content[1] !== undefined && message_content[1].length > 0)
|
||||
{
|
||||
var response = calculate(message.content.substring(message.content.indexOf(' ')+1));
|
||||
if(response === "")
|
||||
{
|
||||
response = stupidQuestion();
|
||||
}
|
||||
message.channel.send(message.author + ' wants to compute: *' + message.content.substring(message.content.indexOf(' ')+1) + '*\n' +
|
||||
}
|
||||
else // default roll (1-100)
|
||||
{
|
||||
message.channel.send(message.author + ' rolls a number between 1 and 100. They roll **' + numberRoll(1, 100) + '**.');
|
||||
}
|
||||
break;
|
||||
case 'compute':
|
||||
case 'convert':
|
||||
case 'calculate':
|
||||
var message_content = message.content.substring(2).split(' ');
|
||||
if (message_content[1] !== undefined && message_content[1].length > 0) {
|
||||
var response = calculate(message.content.substring(message.content.indexOf(' ') + 1));
|
||||
if (response === "") {
|
||||
response = stupidQuestion();
|
||||
}
|
||||
message.channel.send(message.author + ' wants to compute: *' + message.content.substring(message.content.indexOf(' ') + 1) + '*\n' +
|
||||
'The result is: **' + response + '**')
|
||||
}
|
||||
else
|
||||
{
|
||||
message.reply(noQuestion());
|
||||
}
|
||||
break;
|
||||
}
|
||||
else {
|
||||
message.reply(noQuestion());
|
||||
}
|
||||
break;
|
||||
|
||||
// SFW Generic Image commands
|
||||
case 'bun':
|
||||
case 'bunny':
|
||||
case 'bunnies':
|
||||
message.channel.send(imgurRequest('rabbits',5));
|
||||
break;
|
||||
case 'dankmeme':
|
||||
case 'dankmemes':
|
||||
message.channel.send((Math.floor(Math.random() * 2) === 0) ? subredditRequest('dankmemes') : imgurRequest('dankmemes', 5));
|
||||
break;
|
||||
case 'source':
|
||||
message.channel.send("BunnyBot's source code: https://git.dtam.pw/daniel/discord-bot-js");
|
||||
break;
|
||||
case 'testcommand':
|
||||
message.channel.send("testing! 3.0");
|
||||
break;
|
||||
// SFW Generic Image commands
|
||||
case 'bun':
|
||||
case 'bunny':
|
||||
case 'bunnies':
|
||||
message.channel.send(imgurRequest('rabbits', 5));
|
||||
break;
|
||||
case 'dankmeme':
|
||||
case 'dankmemes':
|
||||
message.channel.send((Math.floor(Math.random() * 2) === 0) ? subredditRequest('dankmemes') : imgurRequest('dankmemes', 5));
|
||||
break;
|
||||
case 'source':
|
||||
message.channel.send("BunnyBot's source code: https://git.dtam.pw/daniel/discord-bot-js");
|
||||
break;
|
||||
case 'testcommand':
|
||||
message.channel.send("testing! 3.0");
|
||||
break;
|
||||
|
||||
|
||||
// SFW Anime Image commands
|
||||
case 'meirl':
|
||||
message.channel.send((Math.floor(Math.random() * 2) === 0) ? subredditRequest('anime_irl') : imgurRequest('anime_irl', 5));
|
||||
break;
|
||||
case 'animemes':
|
||||
message.channel.send((Math.floor(Math.random() * 2) === 0) ? subredditRequest('animemes') : imgurRequest('animemes', 5));
|
||||
break;
|
||||
case 'moe':
|
||||
message.channel.send((Math.floor(Math.random() * 2) === 0) ? redditbooruRequest('awwnime') : imgurRequest('awwnime', 5));
|
||||
break;
|
||||
case 'moe-boys':
|
||||
message.channel.send((Math.floor(Math.random() * 2) === 0) ? subredditRequest('cuteanimeboys') : imgurRequest('cuteanimeboys', 1));
|
||||
break;
|
||||
case 'hotguys':
|
||||
message.channel.send((Math.floor(Math.random() * 2) === 0) ? redditbooruRequest('bishounen') : subredditRequest('bishounen'));
|
||||
break;
|
||||
case 'kgirls':
|
||||
switch(Math.floor(Math.random() * 3))
|
||||
{
|
||||
case 0:
|
||||
message.channel.send(redditbooruRequest('kpics'));
|
||||
break;
|
||||
case 1:
|
||||
message.channel.send(imgurRequest('kpics', 5));
|
||||
break;
|
||||
case 2:
|
||||
message.channel.send(subredditRequest('kpopfap'));
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 'kboys':
|
||||
switch(Math.floor(Math.random() * 3))
|
||||
{
|
||||
case 0:
|
||||
message.channel.send(imgurRequest('kfanservice',1));
|
||||
break;
|
||||
case 1:
|
||||
message.channel.send(imgurRequest('kpecs',1));
|
||||
break;
|
||||
case 2:
|
||||
message.channel.send(imgurRequest('cutekboys', 1));
|
||||
break;
|
||||
}
|
||||
break;
|
||||
// SFW Anime Image commands
|
||||
case 'meirl':
|
||||
message.channel.send((Math.floor(Math.random() * 2) === 0) ? subredditRequest('anime_irl') : imgurRequest('anime_irl', 5));
|
||||
break;
|
||||
case 'animemes':
|
||||
message.channel.send((Math.floor(Math.random() * 2) === 0) ? subredditRequest('animemes') : imgurRequest('animemes', 5));
|
||||
break;
|
||||
case 'moe':
|
||||
message.channel.send((Math.floor(Math.random() * 2) === 0) ? redditbooruRequest('awwnime') : imgurRequest('awwnime', 5));
|
||||
break;
|
||||
case 'moe-boys':
|
||||
message.channel.send((Math.floor(Math.random() * 2) === 0) ? subredditRequest('cuteanimeboys') : imgurRequest('cuteanimeboys', 1));
|
||||
break;
|
||||
case 'hotguys':
|
||||
message.channel.send((Math.floor(Math.random() * 2) === 0) ? redditbooruRequest('bishounen') : subredditRequest('bishounen'));
|
||||
break;
|
||||
case 'kgirls':
|
||||
switch (Math.floor(Math.random() * 3)) {
|
||||
case 0:
|
||||
message.channel.send(redditbooruRequest('kpics'));
|
||||
break;
|
||||
case 1:
|
||||
message.channel.send(imgurRequest('kpics', 5));
|
||||
break;
|
||||
case 2:
|
||||
message.channel.send(subredditRequest('kpopfap'));
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 'kboys':
|
||||
switch (Math.floor(Math.random() * 3)) {
|
||||
case 0:
|
||||
message.channel.send(imgurRequest('kfanservice', 1));
|
||||
break;
|
||||
case 1:
|
||||
message.channel.send(imgurRequest('kpecs', 1));
|
||||
break;
|
||||
case 2:
|
||||
message.channel.send(imgurRequest('cutekboys', 1));
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
// NSFW
|
||||
case 'lewd':
|
||||
message.channel.send(redditbooruRequest('pantsu'));
|
||||
break;
|
||||
case 'ecchi':
|
||||
switch(Math.floor(Math.random() * 4))
|
||||
{
|
||||
case 0:
|
||||
message.channel.send(subredditRequest('ecchi'));
|
||||
break;
|
||||
case 1:
|
||||
message.channel.send(redditbooruRequest('ecchi'));
|
||||
break;
|
||||
case 2:
|
||||
message.channel.send(redditbooruRequest('Sukebei'));
|
||||
break;
|
||||
case 3:
|
||||
message.channel.send(imgurRequest('ecchi', 5));
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 'hentai':
|
||||
message.channel.send((Math.floor(Math.random() * 2) === 0) ? imgurRequest('hentai', 5) : subredditRequest('hentai', 5));
|
||||
break;
|
||||
case 'yaoi':
|
||||
message.channel.send(imgurRequest('yaoi', 5));
|
||||
break;
|
||||
case 'yuri':
|
||||
message.channel.send(imgurRequest('yuri', 5));
|
||||
break;
|
||||
case 'neko':
|
||||
message.channel.send((Math.floor(Math.random() * 2) === 0) ? imgurRequest('Nekomimi', 5) : subredditRequest('Nekomimi', 5));
|
||||
break;
|
||||
case 'pokeporn':
|
||||
message.channel.send((Math.floor(Math.random() * 2) === 0) ? subredditRequest('pokeporn') : redditbooruRequest('pokeporn'));
|
||||
break;
|
||||
case 'hgifs':
|
||||
message.channel.send(subredditRequest('nsfwanimegifs', 5));
|
||||
break;
|
||||
case 'hentaibondage':
|
||||
message.channel.send((Math.floor(Math.random() * 2) === 0) ? subredditRequest('hentaibondage') : imgurRequest('hentaibondage', 5));
|
||||
break;
|
||||
// NSFW
|
||||
case 'lewd':
|
||||
message.channel.send(redditbooruRequest('pantsu'));
|
||||
break;
|
||||
case 'ecchi':
|
||||
switch (Math.floor(Math.random() * 4)) {
|
||||
case 0:
|
||||
message.channel.send(subredditRequest('ecchi'));
|
||||
break;
|
||||
case 1:
|
||||
message.channel.send(redditbooruRequest('ecchi'));
|
||||
break;
|
||||
case 2:
|
||||
message.channel.send(redditbooruRequest('Sukebei'));
|
||||
break;
|
||||
case 3:
|
||||
message.channel.send(imgurRequest('ecchi', 5));
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 'hentai':
|
||||
switch (Math.floor(Math.random() * 3)) {
|
||||
case 0:
|
||||
message.channel.send(subredditRequest('hentai', 5));
|
||||
break;
|
||||
case 1:
|
||||
message.channel.send(subredditRequest('hentaisource', 5));
|
||||
break;
|
||||
case 2:
|
||||
message.channel.send(imgurRequest('hentai', 5));
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 'yaoi':
|
||||
message.channel.send(imgurRequest('yaoi', 5));
|
||||
break;
|
||||
case 'yuri':
|
||||
message.channel.send(imgurRequest('yuri', 5));
|
||||
break;
|
||||
case 'neko':
|
||||
message.channel.send((Math.floor(Math.random() * 2) === 0) ? imgurRequest('Nekomimi', 5) : subredditRequest('Nekomimi', 5));
|
||||
break;
|
||||
case 'pokeporn':
|
||||
message.channel.send((Math.floor(Math.random() * 2) === 0) ? subredditRequest('pokeporn') : redditbooruRequest('pokeporn'));
|
||||
break;
|
||||
case 'hgifs':
|
||||
message.channel.send(subredditRequest('nsfwanimegifs', 5));
|
||||
break;
|
||||
case 'hentaibondage':
|
||||
message.channel.send((Math.floor(Math.random() * 2) === 0) ? subredditRequest('hentaibondage') : imgurRequest('hentaibondage', 5));
|
||||
break;
|
||||
|
||||
case 'summon':
|
||||
var redditToSummon = message.content.substring(2).split(' ')[1];
|
||||
if(redditToSummon) {
|
||||
case 'summon':
|
||||
summonCommand();
|
||||
break;
|
||||
|
||||
message.channel.send(message.author + ' summons *' + redditToSummon + '*\n');
|
||||
message.channel.send(subredditRequest(redditToSummon))
|
||||
|
||||
} else {
|
||||
|
||||
message.reply("wut do i summon?");
|
||||
}
|
||||
break;
|
||||
|
||||
// Voice commands
|
||||
case 'join':
|
||||
channel = message.member.voiceChannel;
|
||||
channel.join();
|
||||
break;
|
||||
case 'leave':
|
||||
case 'stop':
|
||||
case 'skip':
|
||||
if(channel != null)
|
||||
{
|
||||
channel.leave();
|
||||
channel = null;
|
||||
}
|
||||
playQueue = [];
|
||||
break;
|
||||
case 'airhorn':
|
||||
setupVoice('voice/mlg-airhorn.mp3', 0.4, message.member.voiceChannel);
|
||||
break;
|
||||
case 'quiethorn':
|
||||
setupVoice('voice/mlg-airhorn.mp3', 0.03, message.member.voiceChannel);
|
||||
break;
|
||||
case 'weed':
|
||||
setupVoice('voice/smoke-weed.mp3', 0.2, message.member.voiceChannel);
|
||||
break;
|
||||
case 'damnson':
|
||||
setupVoice('voice/damnson.mp3', 0.35, message.member.voiceChannel);
|
||||
break;
|
||||
case 'wombo':
|
||||
setupVoice('voice/wombocombo.mp3', 0.06, message.member.voiceChannel);
|
||||
break;
|
||||
case 'cena':
|
||||
setupVoice('voice/cena.mp3', 0.10, message.member.voiceChannel);
|
||||
break;
|
||||
case 'triple':
|
||||
setupVoice('voice/triple.mp3', 0.20, message.member.voiceChannel);
|
||||
break;
|
||||
}
|
||||
// Voice commands
|
||||
case 'join':
|
||||
channel = message.member.voiceChannel;
|
||||
channel.join();
|
||||
break;
|
||||
case 'leave':
|
||||
case 'stop':
|
||||
case 'skip':
|
||||
if (channel != null) {
|
||||
channel.leave();
|
||||
channel = null;
|
||||
}
|
||||
playQueue = [];
|
||||
break;
|
||||
case 'airhorn':
|
||||
setupVoice('voice/mlg-airhorn.mp3', 0.4, message.member.voiceChannel);
|
||||
break;
|
||||
case 'quiethorn':
|
||||
setupVoice('voice/mlg-airhorn.mp3', 0.03, message.member.voiceChannel);
|
||||
break;
|
||||
case 'weed':
|
||||
setupVoice('voice/smoke-weed.mp3', 0.2, message.member.voiceChannel);
|
||||
break;
|
||||
case 'damnson':
|
||||
setupVoice('voice/damnson.mp3', 0.35, message.member.voiceChannel);
|
||||
break;
|
||||
case 'wombo':
|
||||
setupVoice('voice/wombocombo.mp3', 0.06, message.member.voiceChannel);
|
||||
break;
|
||||
case 'cena':
|
||||
setupVoice('voice/cena.mp3', 0.10, message.member.voiceChannel);
|
||||
break;
|
||||
case 'triple':
|
||||
setupVoice('voice/triple.mp3', 0.20, message.member.voiceChannel);
|
||||
break;
|
||||
}
|
||||
});
|
||||
}
|
||||
})
|
||||
;
|
||||
|
||||
// login
|
||||
client.login(auth.token);
|
||||
|
Reference in New Issue
Block a user