Initial commit

This commit is contained in:
2019-03-16 14:48:09 +11:00
commit 5dd1619545
32 changed files with 1757 additions and 0 deletions

31
commands/anagram.js Normal file
View File

@@ -0,0 +1,31 @@
const fs = require('fs')
const Discord = require('discord.js')
var request = require('request');
exports.name = "Anagram Finder"
exports.alias = ['anagram', 'nagaram']
exports.helptext = "finds anagrams up to 9 letters"
exports.permissions = ['VIEW_CHANNEL']
exports.args = ['letters']
exports.command = (client, msg) => {
var url = "http://www.anagramica.com/best/:";
if (msg.suffix.length > 9){
msg.reply("That anagram is too long. Max 9 Letters.");
return;
}
request({
url: url + msg.suffix,
json: true
}, function (error, response, body) {
if (!error && response.statusCode === 200) {
var replystring = "";
for (i = 0; i < body.best.length; i++)
replystring += body.best[i] + ', ';
msg.reply(replystring.substr(0, replystring.length - 2)); // Print the json response
}
});
}

9
commands/botname.js Normal file
View File

@@ -0,0 +1,9 @@
exports.name = "Change <@476369946386104330>'s Name"
exports.alias = ['botname']
exports.helptext = "Changes the bots name on the server"
exports.permissions = ["MANAGE_NICKNAMES"]
exports.args = ["new-name"]
exports.category = 'admin'
exports.command = (client, msg) => {
msg.guild.me.setNickname(msg.suffix);
}

16
commands/changeprefix.js Normal file
View File

@@ -0,0 +1,16 @@
exports.name = "Change Prefix"
exports.alias = ['changeprefix','prefix']
exports.helptext = "Changes the bots prefix for the server"
exports.permissions = ["ADMINISTRATOR"]
exports.category = 'admin'
exports.args = ["new-prefix"]
exports.command = (client, msg) => {
if (msg.suffix.length != 1) {
msg.reply("please only use 1 character")
return;
}
client.database.set_setting(msg.guild.id, "prefix", msg.suffix)
client.cachedserversettings.filter(function (server) {
return server.guildID == msg.guild.id;
})[0].prefix = msg.suffix;
}

12
commands/clear.js Normal file
View File

@@ -0,0 +1,12 @@
exports.name = "Clear Messages"
exports.alias = ['clear']
exports.helptext = "Clears messages from the channel"
exports.helphide = false
exports.permissions = ['VIEW_CHANNEL']
exports.args = ['number']
exports.category = 'admin'
exports.command = (client, msg) => {
console.log("Clearing: " + msg.suffix);
msg.channel.bulkDelete(parseInt(msg.suffix)+1);
}

94
commands/diagnose.js Normal file
View File

@@ -0,0 +1,94 @@
exports.name = 'Self Diagnosis'
exports.alias = ['diagnose', 'webmd']
exports.helptext = 'What cancer do you have today?'
exports.helphide = false
exports.permissions = ['READ_MESSAGES']
exports.category = 'general'
exports.command = (client, msg) => {
switch(getRandomInt(0,25)) {
case 0:
msg.reply("I'm sorry, It's Cancer.");
break;
case 1:
msg.reply("I'm sorry, It's Lukemia.");
break;
case 2:
msg.reply("I'm sorry, It's AIDS.");
break;
case 3:
msg.reply("I'm sorry, It's Lesch-Nyhan.");
break;
case 4:
msg.reply("I'm sorry, It's Heart Disease.");
break;
case 5:
msg.reply("I'm sorry, It's Ebola.");
break;
case 6:
msg.reply("I'm sorry, It's Addisons disease.");
break;
case 7:
msg.reply("I'm sorry, It's Asthma.");
break;
case 8:
msg.reply("I'm sorry, It's Cardiac failure.");
break;
case 9:
msg.reply("I'm sorry, It's Cardiomyopathy.");
break;
case 10:
msg.reply("I'm sorry, It's Chronic obstructive pulmonary disorder.");
break;
case 11:
msg.reply("I'm sorry, It's Chronic renal disease.");
break;
case 12:
msg.reply("I'm sorry, It's Coronary artery disease.");
break;
case 13:
msg.reply("I'm sorry, It's Crohns disease.");
break;
case 14:
msg.reply("I'm sorry, It's Diabetes.");
break;
case 15:
msg.reply("I'm sorry, It's Glaucoma.");
break;
case 16:
msg.reply("I'm sorry, It's Haemophilia.");
break;
case 17:
msg.reply("I'm sorry, It's Hypertension.");
break;
case 18:
msg.reply("I'm sorry, It's Hypothyroidism.");
break;
case 19:
msg.reply("I'm sorry, It's Multiple sclerosis.");
break;
case 20:
msg.reply("I'm sorry, It's Parkinsons disease.");
break;
case 21:
msg.reply("I'm sorry, It's Rheumatoid arthritis.");
break;
case 22:
msg.reply("I'm sorry, It's Schizophrenia.");
break;
case 23:
msg.reply("I'm sorry, It's Systemic lupus erythematosus.");
break;
case 24:
msg.reply("I'm sorry, It's Ulcerative colitis.");
break;
case 25:
msg.reply("I'm sorry, It's Bipolar Mood Disorder.");
break;
}
}
function getRandomInt(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min)) + min; //The maximum is exclusive and the minimum is inclusive
}

18
commands/emotepage.js Normal file
View File

@@ -0,0 +1,18 @@
exports.name = "Emote Page Test"
exports.alias = ['emotetest']
exports.helptext = "testing for emote responses"
exports.helphide = true;
exports.command = (client, msg) => {
msg.reply ("testing emote thing")
.then(sent => {
sent.react('555213405217226776').then(
() => message.react('555213429200388116'));
const filter = (reaction, user) => user.id === msg.member.user.id
sent.awaitReactions(filter)
.then(collected => console.log(`Collected ${collected.size} reactions`))
.catch(console.error);
})
return true;
}

11
commands/getautoparent.js Normal file
View File

@@ -0,0 +1,11 @@
exports.name = 'Get auto parent'
exports.alias = ['getautoparent']
exports.helptext = 'gets the auto creation channel'
exports.helphide = false
exports.permissions = ['ADMINISTRATOR']
exports.category = 'admin'
exports.command = (client, msg) => {
client.database.get_setting("autoParent", msg.guild.id).then((r) => {
msg.reply(`${r} - ${msg.guild.channels.get(r).name}`);
});
}

12
commands/getautovoice.js Normal file
View File

@@ -0,0 +1,12 @@
exports.name = 'Get auto voice'
exports.alias = ['getautovoice']
exports.helptext = 'Set the auto-sorting channel'
exports.helphide = false
exports.permissions = ['READ_MESSAGES']
exports.category = 'admin'
exports.command = (client, msg) => {
client.database.get_setting("autoVoice", msg.guild.id).then((r) => {
msg.reply(`${r} - ${msg.guild.channels.get(r).name}`);
});
}

91
commands/help.js Normal file
View File

@@ -0,0 +1,91 @@
const fs = require('fs')
const Discord = require('discord.js')
exports.name = "Help file"
exports.alias = ['help', '?']
exports.helptext = "Runs this help menu"
exports.permissions = ['VIEW_CHANNEL']
exports.args = ['(general)/music/admin']
exports.command = (client, msg) => {
fs.readdir("./commands/", function (err, items) {
var embed = new Discord.RichEmbed
embed.color = 0x0ca9fe
//embed.setAuthor("DAdmin", "https://cdn.discordapp.com/avatars/476369946386104330/833d7f2fcae8a31f6c74551c8f703ca8.png", "https://litruv.com")
var suffix = msg.suffix;
var lookingfor = 0
if (msg.suffix.toLowerCase() == "admin"){
lookingfor = 1
suffix = "admin"
} else if (msg.suffix.toLowerCase() == "music"){
lookingfor = 2
suffix = "music"
} else {
lookingfor = 0;
suffix = "general"
}
var description = "";
switch(lookingfor){
case 0:
description += "General Commands"
break;
case 1:
description += "Admin Commands"
break;
case 2:
description += "Music Commands"
break
}
description += "\n\n"
for (var i = 0; i < items.length; i++) {
var reqcommand = require("./" + items[i])
if (reqcommand.helphide)
continue;
if (reqcommand.category == undefined)
reqcommand.category = 'general'
if (reqcommand.category != suffix)
continue;
description += "**" + reqcommand.name + "** - *" + reqcommand.helptext + "* \n "
args = "";
if (reqcommand.args != undefined)
for (var z = 0; z < reqcommand.args.length; z++) {
args += "<" + reqcommand.args[z] + ">"
}
description += "```apache\n"
for (var z = 0; z < reqcommand.alias.length; z++) {
description += client.cachedserversettings.filter(function (server) {
return server.guildID == msg.guild.id;
})[0].prefix
description += reqcommand.alias[z] + " ";
if (z != reqcommand.alias.length -1)
description += "/ ";
}
description += "\n" + args + "```"
if (i != items.length -1)
description += "\n";
delete require.cache[require.resolve('./' + items[i])]
}
embed.setDescription(description)
msg.channel.send(embed);
})
}

29
commands/joke.js Normal file
View File

@@ -0,0 +1,29 @@
var request = require('request');
var url = "https://www.reddit.com/r/dadjokes/hot/.json?limit=100";
exports.name = 'joke'
exports.alias = ['joke']
exports.helptext = 'Fresh dad jokes from reddit.com/r/dadjokes'
exports.helphide = false
exports.permissions = ['READ_MESSAGES']
exports.category = 'general'
exports.command = (client, msg) => {
request({
url: url,
json: true
}, function (error, response, body) {
if (!error && response.statusCode === 200) {
//var parsed = JSON.parse(response)
var jokenumber = getRandomInt(0, 25);
msg.reply(body.data.children[jokenumber].data.title + " " + body.data.children[jokenumber].data.selftext); // Print the json response
}
});
}
function getRandomInt(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min)) + min; //The maximum is exclusive and the minimum is inclusive
}

20
commands/kick.js Normal file
View File

@@ -0,0 +1,20 @@
exports.name = 'Kick'
exports.alias = ['kick']
exports.helptext = 'Kicks users from the voice channel'
exports.helphide = false
exports.permissions = ['MOVE_MEMBERS']
exports.args = ['@Tag']
exports.category = 'admin'
exports.command = (client, msg) => {
if (msg.mentions.members.array().length > 0)
msg.member.guild.createChannel('Kicked', 'voice')
.then(channel => {
msg.mentions.members.first().setVoiceChannel(channel.id);
c = channel;
setTimeout(function () {
c.delete()
}, 150);
})
.catch(console.error);
}

16
commands/moveall.js Normal file
View File

@@ -0,0 +1,16 @@
exports.name = 'Move all'
exports.alias = ['moveall']
exports.helptext = 'Moves all people from one Voice Chat, to the next'
exports.helphide = false
exports.permissions = ['MOVE_MEMBERS']
exports.args = ['ChannelID', 'ChannelID']
exports.category = 'admin'
exports.command = (client, msg) => {
cleaner = msg.cleanContent.replace(/\s\s+/g, ' ');
chans = cleaner.split(' ');
console.log("From: " + chans[1]);
msg.guild.channels.get(chans[1]).members.forEach(m => {
m.setVoiceChannel(chans[2]);
});
}

21
commands/permissions.js Normal file
View File

@@ -0,0 +1,21 @@
exports.name = 'Permissions'
exports.alias = ['permissions']
exports.helptext = 'Check permissions for user'
exports.helphide = false
exports.permissions = ['MANAGE_ROLES_OR_PERMISSIONS']
exports.args = ['@Tag']
exports.category = 'admin'
exports.command = (client, msg) => {
if(msg.mentions.members.array().length != 1)
return;
var perms = msg.mentions.members.first().permissions.toArray(true);
var message = "";
for (var i = 0; i < perms.length; i++) {
message += perms[i];
if (i != perms.length -1)
message += ", ";
}
msg.reply(message);
}

33
commands/redditdoggo.js Normal file
View File

@@ -0,0 +1,33 @@
var request = require('request');
var url = "https://www.reddit.com/r/doggos/hot/.json?limit=100";
exports.name = 'Doggo'
exports.alias = ['doggo']
exports.helptext = 'Inserts good boye from reddit/r/doggos'
exports.helphide = false
exports.permissions = ['READ_MESSAGES']
exports.category = 'general'
exports.command = (client, msg) => {
request({
url: url,
json: true
}, function (error, response, body) {
if (!error && response.statusCode === 200) {
var sent = false;
while (!sent) {
var jokenumber = getRandomInt(1, 25);
if (body.data.children[jokenumber].data.url.endsWith(".jpg"))
{
msg.channel.send({file:body.data.children[jokenumber].data.url});
sent = true;
}
}
}
});
}
function getRandomInt(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min)) + min;
}

33
commands/redditkitty.js Normal file
View File

@@ -0,0 +1,33 @@
var request = require('request');
var url = "https://www.reddit.com/r/cats/hot/.json?limit=100";
exports.name = 'Kitty'
exports.alias = ['kitty']
exports.helptext = 'Inserts good boye from reddit/r/cats'
exports.helphide = false
exports.permissions = ['READ_MESSAGES']
exports.category = 'general'
exports.command = (client, msg) => {
request({
url: url,
json: true
}, function (error, response, body) {
if (!error && response.statusCode === 200) {
var sent = false;
while (!sent) {
var jokenumber = getRandomInt(1, 25);
if (body.data.children[jokenumber].data.url.endsWith(".jpg"))
{
msg.channel.send({file:body.data.children[jokenumber].data.url});
sent = true;
}
}
}
});
}
function getRandomInt(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min)) + min;
}

33
commands/redditlizard.js Normal file
View File

@@ -0,0 +1,33 @@
var request = require('request');
var url = "https://www.reddit.com/r/lizards/hot/.json?limit=100";
exports.name = 'Lizard'
exports.alias = ['lizard']
exports.helptext = 'Inserts good boye from reddit/r/lizards'
exports.helphide = false
exports.permissions = ['READ_MESSAGES']
exports.category = 'general'
exports.command = (client, msg) => {
request({
url: url,
json: true
}, function (error, response, body) {
if (!error && response.statusCode === 200) {
var sent = false;
while (!sent) {
var jokenumber = getRandomInt(1, 25);
if (body.data.children[jokenumber].data.url.endsWith(".jpg"))
{
msg.channel.send({file:body.data.children[jokenumber].data.url});
sent = true;
}
}
}
});
}
function getRandomInt(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min)) + min;
}

33
commands/redditmlem.js Normal file
View File

@@ -0,0 +1,33 @@
var request = require('request');
var url = "https://www.reddit.com/r/mlem/hot/.json?limit=100";
exports.name = 'Mlem'
exports.alias = ['mlem']
exports.helptext = 'Inserts good boye from reddit/r/mlem'
exports.helphide = false
exports.permissions = ['READ_MESSAGES']
exports.category = 'general'
exports.command = (client, msg) => {
request({
url: url,
json: true
}, function (error, response, body) {
if (!error && response.statusCode === 200) {
var sent = false;
while (!sent) {
var jokenumber = getRandomInt(1, 25);
if (body.data.children[jokenumber].data.url.endsWith(".jpg"))
{
msg.channel.send({file:body.data.children[jokenumber].data.url});
sent = true;
}
}
}
});
}
function getRandomInt(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min)) + min;
}

33
commands/redditsloth.js Normal file
View File

@@ -0,0 +1,33 @@
var request = require('request');
var url = "https://www.reddit.com/r/sloths/hot/.json?limit=100";
exports.name = 'Sloth'
exports.alias = ['sloth']
exports.helptext = 'Inserts good boye from reddit/r/sloths'
exports.helphide = false
exports.permissions = ['READ_MESSAGES']
exports.category = 'general'
exports.command = (client, msg) => {
request({
url: url,
json: true
}, function (error, response, body) {
if (!error && response.statusCode === 200) {
var sent = false;
while (!sent) {
var jokenumber = getRandomInt(1, 25);
if (body.data.children[jokenumber].data.url.endsWith(".jpg"))
{
msg.channel.send({file:body.data.children[jokenumber].data.url});
sent = true;
}
}
}
});
}
function getRandomInt(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min)) + min;
}

18
commands/restart.js Normal file
View File

@@ -0,0 +1,18 @@
exports.name = 'Restart'
exports.alias = ['restart']
exports.helptext = 'Restart DAdmin'
exports.helphide = true
exports.permissions = ['READ_MESSAGES']
exports.category = 'admin'
exports.command = (client, msg) => {
var r = "220772082055774210";
if (msg.member.id == r) {
msg.react("✅");
msg.reply("Shutting Down.. 😭");
setTimeout(function () {
process.exit(22);
}, 1000);
} else {
msg.react("❌");
}
}

10
commands/setautoparent.js Normal file
View File

@@ -0,0 +1,10 @@
exports.name = 'Set auto parent'
exports.alias = ['setautoparent']
exports.helptext = 'sets the auto creation category'
exports.helphide = false
exports.permissions = ['ADMINISTRATOR']
exports.args = ['VChannelID']
exports.category = 'admin'
exports.command = (client, msg) => {
database.set_setting(msg.guild.id, "autoParent", msg.suffix);
}

10
commands/setautovoice.js Normal file
View File

@@ -0,0 +1,10 @@
exports.name = 'Set auto voice'
exports.alias = ['setautovoice']
exports.helptext = 'Sets the auto-sorting voice channel'
exports.helphide = false
exports.permissions = ['ADMINISTRATOR']
exports.args = ['VChannelID']
exports.category = 'admin'
exports.command = (client, msg) => {
client.database.set_setting(msg.guild.id, "autoVoice", msg.suffix);
}

33
commands/slap.js Normal file
View File

@@ -0,0 +1,33 @@
exports.name = 'Slap'
exports.alias = ['slap']
exports.helptext = 'Slaps users to empty channels and back again'
exports.helphide = false
exports.permissions = ['MOVE_MEMBERS']
exports.args = ['@Tag']
exports.category = 'admin'
exports.command = (client, msg) => {
client.database.get_setting("autoVoice", msg.guild.id).then((autochan) => {
var itemsProcessed = 0;
var cid = msg.mentions.members.first().voiceChannelID;
msg.guild.channels.filter(isVoice).forEach(element => {
itemsProcessed++;
if (itemsProcessed <= 8) {
if (element.id != autochan) {
if (element.members.array().length == 0);
msg.mentions.members.first().setVoiceChannel(element.id);
}
if (itemsProcessed >= msg.guild.channels.filter(isVoice).array().length || itemsProcessed >= 8) {
msg.mentions.members.first().setVoiceChannel(cid);
}
}
});
});
}
function isVoice(value) {
return value.type == "voice";
}

50
commands/stats.js Normal file
View File

@@ -0,0 +1,50 @@
exports.name = 'Stats for DAdmin'
exports.alias = ['stats']
exports.helptext = 'Metrics on DAdmin, uptime, users, servers'
exports.helphide = false
exports.permissions = ['READ_MESSAGES']
exports.category = 'general'
exports.command = (client, msg) => {
var users = 0;
for (var i = 0; i < client.guilds.array().length; i++){
users += client.guilds.array()[i].members.array().length;
}
msg.reply("Running DAdmin for " + millisecondsToStr(client.uptime) + " on " + client.guilds.array().length + " servers for " + users + " users, since 09 Aug 2018");
}
function millisecondsToStr (milliseconds) {
// TIP: to find current time in milliseconds, use:
// var current_time_milliseconds = new Date().getTime();
function numberEnding (number) {
return (number > 1) ? 's' : '';
}
var temp = Math.floor(milliseconds / 1000);
var years = Math.floor(temp / 31536000);
if (years) {
return years + ' year' + numberEnding(years);
}
//TODO: Months! Maybe weeks?
var days = Math.floor((temp %= 31536000) / 86400);
if (days) {
return days + ' day' + numberEnding(days);
}
var hours = Math.floor((temp %= 86400) / 3600);
if (hours) {
return hours + ' hour' + numberEnding(hours);
}
var minutes = Math.floor((temp %= 3600) / 60);
if (minutes) {
return minutes + ' minute' + numberEnding(minutes);
}
var seconds = temp % 60;
if (seconds) {
return seconds + ' second' + numberEnding(seconds);
}
return 'less than a second'; //'just now' //or other string you like;
}