mirror of
https://github.com/litruv/DAdmin.git
synced 2026-07-24 02:36:11 +10:00
Initial commit
This commit is contained in:
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
node_modules
|
||||
dbconfig.json
|
||||
9
command.template.js
Normal file
9
command.template.js
Normal file
@@ -0,0 +1,9 @@
|
||||
exports.name = "name"
|
||||
exports.alias = ['clear']
|
||||
exports.helptext = "helpmessage"
|
||||
exports.helphide = false
|
||||
exports.permissions = ['READ_MESSAGES']
|
||||
exports.args = ['template']
|
||||
exports.category = 'general'
|
||||
|
||||
exports.command = (client, msg) => {}
|
||||
31
commands/anagram.js
Normal file
31
commands/anagram.js
Normal 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
9
commands/botname.js
Normal 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
16
commands/changeprefix.js
Normal 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
12
commands/clear.js
Normal 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
94
commands/diagnose.js
Normal 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 Addison’s 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 Crohn’s 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 Parkinson’s 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
18
commands/emotepage.js
Normal 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
11
commands/getautoparent.js
Normal 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
12
commands/getautovoice.js
Normal 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
91
commands/help.js
Normal 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
29
commands/joke.js
Normal 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
20
commands/kick.js
Normal 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
16
commands/moveall.js
Normal 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
21
commands/permissions.js
Normal 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
33
commands/redditdoggo.js
Normal 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
33
commands/redditkitty.js
Normal 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
33
commands/redditlizard.js
Normal 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
33
commands/redditmlem.js
Normal 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
33
commands/redditsloth.js
Normal 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
18
commands/restart.js
Normal 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
10
commands/setautoparent.js
Normal 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
10
commands/setautovoice.js
Normal 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
33
commands/slap.js
Normal 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
50
commands/stats.js
Normal 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;
|
||||
}
|
||||
|
||||
149
database.js
Normal file
149
database.js
Normal file
@@ -0,0 +1,149 @@
|
||||
var mysql = require('mysql');
|
||||
var config = require('./dbconfig.json');
|
||||
|
||||
module.exports = {
|
||||
checkguilds: function (discordclient) {
|
||||
discordclient.guilds.forEach(guild => {
|
||||
check_guild_exists(discordclient, guild.id).then((r) => {
|
||||
console.log(r);
|
||||
console.log(guild.name);
|
||||
});
|
||||
|
||||
this.checkusers(discordclient, guild);
|
||||
});
|
||||
},
|
||||
|
||||
checkusers: async function (client, guild) {
|
||||
await guild.members.forEach(member => {
|
||||
check_user_exists(client, member.id, guild.id);
|
||||
});
|
||||
},
|
||||
|
||||
get_setting: async function (settingname, guildID=0) {
|
||||
|
||||
var settingreturn = await sql_q(settingname, guildID);
|
||||
return settingreturn[0].value;
|
||||
},
|
||||
|
||||
set_setting: async function (guildID, settingname, value) {
|
||||
sql_qs(guildID, settingname, value);
|
||||
},
|
||||
|
||||
connect: async function () {
|
||||
this.con = await connecttodb();
|
||||
},
|
||||
|
||||
user_add_command(userid, guildID) {
|
||||
increment_user_commands(userid, guildID);
|
||||
}
|
||||
};
|
||||
|
||||
function connecttodb() {
|
||||
new Promise(resolve => {
|
||||
this.con = mysql.createConnection({
|
||||
host: config.mysql_host,
|
||||
user: config.mysql_user,
|
||||
password: config.mysql_password,
|
||||
database: config.mysql_db,
|
||||
charset: "utf8mb4_unicode_ci"
|
||||
});
|
||||
|
||||
resolve(this.con);
|
||||
});
|
||||
}
|
||||
async function check_user_exists(client, userid, guildid) {
|
||||
var exists = await sql_user(client, userid, guildid);
|
||||
return exists[0];
|
||||
}
|
||||
|
||||
function sql_user(client, userid, guildid) {
|
||||
return new Promise(resolve => {
|
||||
con.query("SELECT AI_ID FROM users WHERE ID = '" + userid + "'", function (err, result, fields) {
|
||||
if (err) throw err;
|
||||
|
||||
var user = client.guilds.get(guildid).members.get(userid);
|
||||
var username = user.displayName;
|
||||
var usericon = user.user.avatarURL;
|
||||
var bot = user.user.bot;
|
||||
var discriminator = user.user.discriminator;
|
||||
var actualusername = user.user.username;
|
||||
|
||||
if (result.length == 0)
|
||||
var sql = `INSERT INTO users (ID, name, username, avatarURL, bot, discriminator, serverID, joined) VALUES (${con.escape(userid)}, ${con.escape(username)}, ${con.escape(actualusername)}, ${con.escape(usericon)}, ${con.escape(bot)}, ${con.escape(discriminator)}, ${con.escape(guildid)}, ${con.escape(user.joinedTimestamp)});`;
|
||||
|
||||
else
|
||||
var sql = `UPDATE users SET name=${con.escape(username)}, avatarURL=${con.escape(usericon)}, discriminator=${con.escape(discriminator)} WHERE (ID=${con.escape(userid)} AND serverID=${con.escape(guildid)});`;
|
||||
|
||||
con.query(sql, function (err, result) {
|
||||
if (err) throw err;
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function sql_guild(client, guildid) {
|
||||
return new Promise(resolve => {
|
||||
con.query("SELECT AI_ID FROM servers WHERE ServerID = '" + guildid + "'", function (err, result, fields) {
|
||||
if (err) throw err;
|
||||
if (result.length == 0) {
|
||||
var guild = client.guilds.get(guildid);
|
||||
var guildname = guild.name;
|
||||
var guildicon = guild.iconURL;
|
||||
|
||||
if (guildname != null) {
|
||||
var sql = "INSERT INTO `servers` (`ServerID`, `ServerName`, `ServerIcon`) VALUES (" + con.escape(guildid) + ", " + con.escape(guildname) + ", " + con.escape(guildicon) + ");";
|
||||
|
||||
con.query(sql, function (err, result) {
|
||||
if (err) throw err;
|
||||
console.log(`${guildname} inserted into DB`);
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
async function check_guild_exists(client, guildid) {
|
||||
var exists = await sql_guild(client, guildid);
|
||||
return exists[0];
|
||||
}
|
||||
|
||||
function sql_q(settingname, serverID = 0) {
|
||||
return new Promise(resolve => {
|
||||
this.con.query(`SELECT value FROM settings WHERE setting = ${con.escape(settingname)} AND serverID = ${con.escape(serverID)}`, function (err, result, fields) {
|
||||
if (err) throw err;
|
||||
resolve(result);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function sql_qs(guildid, settingname, value) {
|
||||
return new Promise(resolve => {
|
||||
this.con.query(`SELECT value FROM settings WHERE setting = ${con.escape(settingname)} AND serverID = ${con.escape(guildid)}`, function (err, result, fields) {
|
||||
if (err) throw err;
|
||||
|
||||
if (result.length == 0)
|
||||
var sql = `INSERT INTO settings (setting, value, serverID) VALUES (${con.escape(settingname)}, ${con.escape(value)}, ${con.escape(guildid)});`;
|
||||
|
||||
else
|
||||
var sql = `UPDATE settings SET value=${con.escape(value)} WHERE (setting=${con.escape(settingname)} AND serverID=${con.escape(guildid)});`;
|
||||
|
||||
con.query(sql, function (err, result) {
|
||||
if (err) throw err;
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
function increment_user_commands(userid, guildid) {
|
||||
this.con.query(`UPDATE users SET usedCommands=usedCommands+1 WHERE (ID=${con.escape(userid)} AND serverID=${con.escape(guildid)})`, function (err, result, fields) {
|
||||
|
||||
//UPDATE images SET counter=counter+1 WHERE image_id=15
|
||||
if (err) throw err;
|
||||
});
|
||||
}
|
||||
|
||||
console.log("=MySQL====================");
|
||||
console.log("Logged in as " + config.mysql_user + " to " + config.mysql_host);
|
||||
6
dbconfig.template.json
Normal file
6
dbconfig.template.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"mysql_user" : "username",
|
||||
"mysql_host" : "db.host.com",
|
||||
"mysql_password" : "hunter2",
|
||||
"mysql_db" : "bot_db"
|
||||
}
|
||||
145
index.js
Normal file
145
index.js
Normal file
@@ -0,0 +1,145 @@
|
||||
//Includes
|
||||
const Discord = require('discord.js')
|
||||
const client = new Discord.Client()
|
||||
client.database = require('./database')
|
||||
const linkify = require('linkifyjs')
|
||||
const fs = require('fs')
|
||||
const colors = require('colors');
|
||||
|
||||
//Globals
|
||||
|
||||
//Database Connection
|
||||
client.database.connect().then(con => {
|
||||
try {
|
||||
client.database.get_setting('token').then(token => {
|
||||
console.log("=Discord==================")
|
||||
client.login(token)
|
||||
})
|
||||
} catch (e) {
|
||||
console.log(e)
|
||||
}
|
||||
})
|
||||
|
||||
class cachedsettings {
|
||||
constructor(guildID, prefix) {
|
||||
this.prefix = prefix
|
||||
this.guildID = guildID
|
||||
}
|
||||
|
||||
getPrefix() {
|
||||
return this.prefix
|
||||
}
|
||||
}
|
||||
|
||||
class CachedCommand {
|
||||
constructor(alias, file) {
|
||||
this.alias = alias
|
||||
this.file = file
|
||||
}
|
||||
}
|
||||
|
||||
class Commands {
|
||||
loadcommands() {
|
||||
fs.readdir("./commands/", function (err, items) {
|
||||
for (var i = 0; i < items.length; i++) {
|
||||
var reqcommand = require('./commands/' + items[i])
|
||||
for (var z = 0; z < reqcommand.alias.length; z++) {
|
||||
var cachedcommand = new CachedCommand(reqcommand.alias[z], items[i])
|
||||
client.cachedcommands.push(cachedcommand)
|
||||
}
|
||||
}
|
||||
|
||||
for (var i = 0; i < client.cachedcommands.length; i++)
|
||||
console.log("Loaded: " + client.cachedcommands[i].alias + " - " + client.cachedcommands[i].file)
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
client.commands = new Commands()
|
||||
client.cachedcommands = new Array()
|
||||
client.cachedserversettings = new Array();
|
||||
|
||||
client.on('ready', () => {
|
||||
console.log("Logged in as " + client.user.tag.green.bold + "!")
|
||||
|
||||
client.commands.loadcommands()
|
||||
loadplugins()
|
||||
})
|
||||
|
||||
function loadplugins(){
|
||||
fs.readdir("./plugins/", function (err, items) {
|
||||
|
||||
for (var i = 0; i < items.length; i++) {
|
||||
var reqcommand = require('./commands/' + items[i])
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
client.on("message", (msg) => {
|
||||
if (msg.author.bot) return
|
||||
onMessage(msg)
|
||||
})
|
||||
|
||||
function onMessage(msg, again = true) {
|
||||
if (client.cachedserversettings.filter(function (server) {
|
||||
return server.guildID == msg.guild.id
|
||||
}).length == 0)
|
||||
client.database.get_setting("prefix", msg.guild.id).then(prefix => {
|
||||
client.cachedserversettings.push(new cachedsettings(msg.guild.id, prefix))
|
||||
doCommand(msg, prefix)
|
||||
}).catch(err => {
|
||||
if (again == true) {
|
||||
client.database.set_setting(msg.guild.id, "prefix", "~")
|
||||
onMessage(msg, false)
|
||||
}
|
||||
})
|
||||
else
|
||||
doCommand(msg, client.cachedserversettings.filter(function (server) {
|
||||
return server.guildID == msg.guild.id
|
||||
})[0].getPrefix())
|
||||
}
|
||||
|
||||
function doCommand(msg, prefix) {
|
||||
var message = msg.cleanContent
|
||||
if (!message.startsWith(prefix)) return
|
||||
|
||||
//Split into command + args
|
||||
const command = message.substring(prefix.length).split(/[ \n]/)[0].trim()
|
||||
msg.suffix = message.substring(prefix.length + command.length).trim()
|
||||
|
||||
var cmds = client.cachedcommands.filter(cmd => cmd.alias == command);
|
||||
if (cmds.length > 0) {
|
||||
console.log("CMD:".green + " ".reset + msg.member.user.username.bold + "#".reset + msg.member.user.discriminator.reset + " " + prefix.grey + command.green.bold + " ".reset + msg.suffix + " | " + msg.guild.name)
|
||||
var reqcommand = require('./commands/' + cmds[0].file)
|
||||
if (msg.member.hasPermission(reqcommand.permissions)) {
|
||||
msg.react('✅')
|
||||
try {
|
||||
reqcommand.command(client, msg)
|
||||
} catch (err) {
|
||||
console.error('There was an error running: ' + command);
|
||||
console.error(err.stack);
|
||||
}
|
||||
} else {
|
||||
msg.react('⛔')
|
||||
}
|
||||
|
||||
delete require.cache[require.resolve('./commands/' + cmds[0].file)]
|
||||
}
|
||||
|
||||
|
||||
//if (msg.guild.id != "355555081296412683") return;
|
||||
|
||||
//if (linkify.find(message).length > 0)
|
||||
//msg.reply(linkify.find(message)[0].href);
|
||||
|
||||
/*
|
||||
if (fs.existsSync('./commands/' + command + '.js')) {
|
||||
console.log(msg.member.displayName + ": " + command);
|
||||
|
||||
var reqcommand = require('./commands/' + command);
|
||||
reqcommand.runcommand(client, msg, database);
|
||||
delete require.cache[require.resolve('./commands/' + command)];
|
||||
|
||||
database.user_add_command(msg.member.id, msg.guild.id);
|
||||
}*/
|
||||
}
|
||||
724
package-lock.json
generated
Normal file
724
package-lock.json
generated
Normal file
@@ -0,0 +1,724 @@
|
||||
{
|
||||
"name": "dadminyt",
|
||||
"version": "1.0.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"ajv": {
|
||||
"version": "6.10.0",
|
||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz",
|
||||
"integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==",
|
||||
"requires": {
|
||||
"fast-deep-equal": "^2.0.1",
|
||||
"fast-json-stable-stringify": "^2.0.0",
|
||||
"json-schema-traverse": "^0.4.1",
|
||||
"uri-js": "^4.2.2"
|
||||
}
|
||||
},
|
||||
"asn1": {
|
||||
"version": "0.2.4",
|
||||
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
|
||||
"integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
|
||||
"requires": {
|
||||
"safer-buffer": "~2.1.0"
|
||||
}
|
||||
},
|
||||
"assert-plus": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
|
||||
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
|
||||
},
|
||||
"async-limiter": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz",
|
||||
"integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg=="
|
||||
},
|
||||
"asynckit": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
|
||||
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
|
||||
},
|
||||
"aws-sign2": {
|
||||
"version": "0.7.0",
|
||||
"resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
|
||||
"integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
|
||||
},
|
||||
"aws4": {
|
||||
"version": "1.8.0",
|
||||
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
|
||||
"integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ=="
|
||||
},
|
||||
"bcrypt-pbkdf": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
|
||||
"integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
|
||||
"requires": {
|
||||
"tweetnacl": "^0.14.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"tweetnacl": {
|
||||
"version": "0.14.5",
|
||||
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
|
||||
"integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
|
||||
}
|
||||
}
|
||||
},
|
||||
"bignumber.js": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-4.1.0.tgz",
|
||||
"integrity": "sha512-eJzYkFYy9L4JzXsbymsFn3p54D+llV27oTQ+ziJG7WFRheJcNZilgVXMG0LoZtlQSKBsJdWtLFqOD0u+U0jZKA=="
|
||||
},
|
||||
"bindings": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz",
|
||||
"integrity": "sha1-FK1hE4EtLTfXLme0ystLtyZQXxE="
|
||||
},
|
||||
"caseless": {
|
||||
"version": "0.12.0",
|
||||
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
|
||||
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
|
||||
},
|
||||
"colors": {
|
||||
"version": "1.3.3",
|
||||
"resolved": "https://registry.npmjs.org/colors/-/colors-1.3.3.tgz",
|
||||
"integrity": "sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg=="
|
||||
},
|
||||
"combined-stream": {
|
||||
"version": "1.0.7",
|
||||
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz",
|
||||
"integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==",
|
||||
"requires": {
|
||||
"delayed-stream": "~1.0.0"
|
||||
}
|
||||
},
|
||||
"commander": {
|
||||
"version": "2.19.0",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz",
|
||||
"integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg=="
|
||||
},
|
||||
"core-util-is": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
|
||||
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
|
||||
},
|
||||
"dashdash": {
|
||||
"version": "1.14.1",
|
||||
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
|
||||
"integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
|
||||
"requires": {
|
||||
"assert-plus": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"debug": {
|
||||
"version": "2.6.9",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
||||
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"ms": "2.0.0"
|
||||
}
|
||||
},
|
||||
"delayed-stream": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
||||
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
|
||||
},
|
||||
"discord.js": {
|
||||
"version": "11.4.2",
|
||||
"resolved": "https://registry.npmjs.org/discord.js/-/discord.js-11.4.2.tgz",
|
||||
"integrity": "sha512-MDwpu0lMFTjqomijDl1Ed9miMQe6kB4ifKdP28QZllmLv/HVOJXhatRgjS8urp/wBlOfx+qAYSXcdI5cKGYsfg==",
|
||||
"requires": {
|
||||
"long": "^4.0.0",
|
||||
"prism-media": "^0.0.3",
|
||||
"snekfetch": "^3.6.4",
|
||||
"tweetnacl": "^1.0.0",
|
||||
"ws": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"discord.js-musicbot-addon": {
|
||||
"version": "13.4.5",
|
||||
"resolved": "https://registry.npmjs.org/discord.js-musicbot-addon/-/discord.js-musicbot-addon-13.4.5.tgz",
|
||||
"integrity": "sha512-FEHvXPZxA+s+rMjm5DyiPO10JrKILmnyBFDitMHCiz65Bz5BdN1aKt4AaRc1dnma0BERAhC/vnqCYR3fTCcoRA==",
|
||||
"requires": {
|
||||
"ytdl-core": "^0.29.1",
|
||||
"ytpl": "^0.1.14",
|
||||
"ytsearcher": "^1.2.2"
|
||||
}
|
||||
},
|
||||
"ecc-jsbn": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
|
||||
"integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
|
||||
"requires": {
|
||||
"jsbn": "~0.1.0",
|
||||
"safer-buffer": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"extend": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
|
||||
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
|
||||
},
|
||||
"extsprintf": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
|
||||
"integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
|
||||
},
|
||||
"fast-deep-equal": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
|
||||
"integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk="
|
||||
},
|
||||
"fast-json-stable-stringify": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
|
||||
"integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
|
||||
},
|
||||
"forever-agent": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
|
||||
"integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
|
||||
},
|
||||
"form-data": {
|
||||
"version": "2.3.3",
|
||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
|
||||
"integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
|
||||
"requires": {
|
||||
"asynckit": "^0.4.0",
|
||||
"combined-stream": "^1.0.6",
|
||||
"mime-types": "^2.1.12"
|
||||
}
|
||||
},
|
||||
"get-urls": {
|
||||
"version": "9.0.0",
|
||||
"resolved": "https://registry.npmjs.org/get-urls/-/get-urls-9.0.0.tgz",
|
||||
"integrity": "sha512-5S10Ya9GeUuiiCZ7M47oqznuC00WJEYpO5m5VgjAi07LoIf6GEk4y1FYPBiG1CXMFdNXDa/awszuipUX5JVTFg==",
|
||||
"requires": {
|
||||
"normalize-url": "^4.1.0",
|
||||
"url-regex": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"getpass": {
|
||||
"version": "0.1.7",
|
||||
"resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
|
||||
"integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
|
||||
"requires": {
|
||||
"assert-plus": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"har-schema": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
|
||||
"integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
|
||||
},
|
||||
"har-validator": {
|
||||
"version": "5.1.3",
|
||||
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
|
||||
"integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
|
||||
"requires": {
|
||||
"ajv": "^6.5.5",
|
||||
"har-schema": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"html-entities": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz",
|
||||
"integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8="
|
||||
},
|
||||
"http-signature": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
|
||||
"integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
|
||||
"requires": {
|
||||
"assert-plus": "^1.0.0",
|
||||
"jsprim": "^1.2.2",
|
||||
"sshpk": "^1.7.0"
|
||||
}
|
||||
},
|
||||
"inherits": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
|
||||
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
|
||||
},
|
||||
"ip-regex": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-1.0.3.tgz",
|
||||
"integrity": "sha1-3FiQdvZZ9BnCIgOaMzFvHHOH7/0="
|
||||
},
|
||||
"is-typedarray": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
|
||||
"integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
|
||||
},
|
||||
"isarray": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
|
||||
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
|
||||
},
|
||||
"isstream": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
|
||||
"integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
|
||||
},
|
||||
"jquery": {
|
||||
"version": "3.3.1",
|
||||
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.3.1.tgz",
|
||||
"integrity": "sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg==",
|
||||
"optional": true
|
||||
},
|
||||
"js-tokens": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
|
||||
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
|
||||
"optional": true
|
||||
},
|
||||
"jsbn": {
|
||||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
|
||||
"integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
|
||||
},
|
||||
"json-schema": {
|
||||
"version": "0.2.3",
|
||||
"resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
|
||||
"integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
|
||||
},
|
||||
"json-schema-traverse": {
|
||||
"version": "0.4.1",
|
||||
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
|
||||
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
|
||||
},
|
||||
"json-stringify-safe": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
|
||||
"integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
|
||||
},
|
||||
"jsprim": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
|
||||
"integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
|
||||
"requires": {
|
||||
"assert-plus": "1.0.0",
|
||||
"extsprintf": "1.3.0",
|
||||
"json-schema": "0.2.3",
|
||||
"verror": "1.10.0"
|
||||
}
|
||||
},
|
||||
"linkifyjs": {
|
||||
"version": "2.1.8",
|
||||
"resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-2.1.8.tgz",
|
||||
"integrity": "sha512-j3QpiEr4UYzN5foKhrr9Sr06VI9vSlI4HisDWt+7Mq+TWDwpJ6H/LLpogYsXcyUIJLVhGblXXdUnblHsVNMPpg==",
|
||||
"requires": {
|
||||
"jquery": "^3.3.1",
|
||||
"react": "^16.4.2",
|
||||
"react-dom": "^16.4.2"
|
||||
}
|
||||
},
|
||||
"long": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
|
||||
"integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="
|
||||
},
|
||||
"loose-envify": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
|
||||
"integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"js-tokens": "^3.0.0 || ^4.0.0"
|
||||
}
|
||||
},
|
||||
"m3u8stream": {
|
||||
"version": "0.6.2",
|
||||
"resolved": "https://registry.npmjs.org/m3u8stream/-/m3u8stream-0.6.2.tgz",
|
||||
"integrity": "sha512-WsuM2bd5pPN80xvfrB+1DZqr4M7+kJl8byi6+ZCy6cmVjEiHhmr/desN53Ngsa6Hs13kYumeVgT4wL0oIJ+v6g==",
|
||||
"requires": {
|
||||
"miniget": "^1.4.0",
|
||||
"sax": "^1.2.4"
|
||||
}
|
||||
},
|
||||
"mime-db": {
|
||||
"version": "1.38.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.38.0.tgz",
|
||||
"integrity": "sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg=="
|
||||
},
|
||||
"mime-types": {
|
||||
"version": "2.1.22",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.22.tgz",
|
||||
"integrity": "sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==",
|
||||
"requires": {
|
||||
"mime-db": "~1.38.0"
|
||||
}
|
||||
},
|
||||
"miniget": {
|
||||
"version": "1.5.1",
|
||||
"resolved": "https://registry.npmjs.org/miniget/-/miniget-1.5.1.tgz",
|
||||
"integrity": "sha512-KJ3AyIVZ76QuWAq43BWjkK+jLdhxhy3s4tsdg9Je91+cIFkeOSW2VEj2lSeKw50CPu1eCCkSbiQEBKL36mpA5w=="
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
|
||||
"optional": true
|
||||
},
|
||||
"mysql": {
|
||||
"version": "2.16.0",
|
||||
"resolved": "https://registry.npmjs.org/mysql/-/mysql-2.16.0.tgz",
|
||||
"integrity": "sha512-dPbN2LHonQp7D5ja5DJXNbCLe/HRdu+f3v61aguzNRQIrmZLOeRoymBYyeThrR6ug+FqzDL95Gc9maqZUJS+Gw==",
|
||||
"requires": {
|
||||
"bignumber.js": "4.1.0",
|
||||
"readable-stream": "2.3.6",
|
||||
"safe-buffer": "5.1.2",
|
||||
"sqlstring": "2.3.1"
|
||||
}
|
||||
},
|
||||
"nan": {
|
||||
"version": "2.12.1",
|
||||
"resolved": "https://registry.npmjs.org/nan/-/nan-2.12.1.tgz",
|
||||
"integrity": "sha512-JY7V6lRkStKcKTvHO5NVSQRv+RV+FIL5pvDoLiAtSL9pKlC5x9PKQcZDsq7m4FO4d57mkhC6Z+QhAh3Jdk5JFw=="
|
||||
},
|
||||
"node-opus": {
|
||||
"version": "0.3.1",
|
||||
"resolved": "https://registry.npmjs.org/node-opus/-/node-opus-0.3.1.tgz",
|
||||
"integrity": "sha512-1Cb8OvHhdDspVfeKMjEgbedJabyE1Ib6OcN2BMEsRCU7FIsciuBpOErcie3y0qTf83nclPAY+kBU3Oj+U+oRlQ==",
|
||||
"requires": {
|
||||
"bindings": "~1.2.1",
|
||||
"commander": "^2.9.0",
|
||||
"nan": "^2.10.0",
|
||||
"ogg-packet": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"normalize-url": {
|
||||
"version": "4.2.0",
|
||||
"resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.2.0.tgz",
|
||||
"integrity": "sha512-n69+KXI+kZApR+sPwSkoAXpGlNkaiYyoHHqKOFPjJWvwZpew/EjKvuPE4+tStNgb42z5yLtdakgZCQI+LalSPg=="
|
||||
},
|
||||
"oauth-sign": {
|
||||
"version": "0.9.0",
|
||||
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
|
||||
"integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
|
||||
},
|
||||
"object-assign": {
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
|
||||
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
|
||||
"optional": true
|
||||
},
|
||||
"ogg-packet": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ogg-packet/-/ogg-packet-1.0.0.tgz",
|
||||
"integrity": "sha1-RbiFchrI991c8iOR1CEGrlM6xng=",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"ref-struct": "*"
|
||||
}
|
||||
},
|
||||
"performance-now": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
|
||||
"integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
|
||||
},
|
||||
"prism-media": {
|
||||
"version": "0.0.3",
|
||||
"resolved": "https://registry.npmjs.org/prism-media/-/prism-media-0.0.3.tgz",
|
||||
"integrity": "sha512-c9KkNifSMU/iXT8FFTaBwBMr+rdVcN+H/uNv1o+CuFeTThNZNTOrQ+RgXA1yL/DeLk098duAeRPP3QNPNbhxYQ=="
|
||||
},
|
||||
"process-nextick-args": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
|
||||
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
|
||||
},
|
||||
"prop-types": {
|
||||
"version": "15.7.2",
|
||||
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz",
|
||||
"integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"loose-envify": "^1.4.0",
|
||||
"object-assign": "^4.1.1",
|
||||
"react-is": "^16.8.1"
|
||||
}
|
||||
},
|
||||
"psl": {
|
||||
"version": "1.1.31",
|
||||
"resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz",
|
||||
"integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw=="
|
||||
},
|
||||
"punycode": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
|
||||
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
|
||||
},
|
||||
"qs": {
|
||||
"version": "6.5.2",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
|
||||
"integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
|
||||
},
|
||||
"react": {
|
||||
"version": "16.8.4",
|
||||
"resolved": "https://registry.npmjs.org/react/-/react-16.8.4.tgz",
|
||||
"integrity": "sha512-0GQ6gFXfUH7aZcjGVymlPOASTuSjlQL4ZtVC5YKH+3JL6bBLCVO21DknzmaPlI90LN253ojj02nsapy+j7wIjg==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"loose-envify": "^1.1.0",
|
||||
"object-assign": "^4.1.1",
|
||||
"prop-types": "^15.6.2",
|
||||
"scheduler": "^0.13.4"
|
||||
}
|
||||
},
|
||||
"react-dom": {
|
||||
"version": "16.8.4",
|
||||
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.8.4.tgz",
|
||||
"integrity": "sha512-Ob2wK7XG2tUDt7ps7LtLzGYYB6DXMCLj0G5fO6WeEICtT4/HdpOi7W/xLzZnR6RCG1tYza60nMdqtxzA8FaPJQ==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"loose-envify": "^1.1.0",
|
||||
"object-assign": "^4.1.1",
|
||||
"prop-types": "^15.6.2",
|
||||
"scheduler": "^0.13.4"
|
||||
}
|
||||
},
|
||||
"react-is": {
|
||||
"version": "16.8.4",
|
||||
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.4.tgz",
|
||||
"integrity": "sha512-PVadd+WaUDOAciICm/J1waJaSvgq+4rHE/K70j0PFqKhkTBsPv/82UGQJNXAngz1fOQLLxI6z1sEDmJDQhCTAA==",
|
||||
"optional": true
|
||||
},
|
||||
"readable-stream": {
|
||||
"version": "2.3.6",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
|
||||
"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
|
||||
"requires": {
|
||||
"core-util-is": "~1.0.0",
|
||||
"inherits": "~2.0.3",
|
||||
"isarray": "~1.0.0",
|
||||
"process-nextick-args": "~2.0.0",
|
||||
"safe-buffer": "~5.1.1",
|
||||
"string_decoder": "~1.1.1",
|
||||
"util-deprecate": "~1.0.1"
|
||||
}
|
||||
},
|
||||
"ref": {
|
||||
"version": "1.3.5",
|
||||
"resolved": "https://registry.npmjs.org/ref/-/ref-1.3.5.tgz",
|
||||
"integrity": "sha512-2cBCniTtxcGUjDpvFfVpw323a83/0RLSGJJY5l5lcomZWhYpU2cuLdsvYqMixvsdLJ9+sTdzEkju8J8ZHDM2nA==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"bindings": "1",
|
||||
"debug": "2",
|
||||
"nan": "2"
|
||||
}
|
||||
},
|
||||
"ref-struct": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/ref-struct/-/ref-struct-1.1.0.tgz",
|
||||
"integrity": "sha1-XV7mWtQc78Olxf60BYcmHkee3BM=",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"debug": "2",
|
||||
"ref": "1"
|
||||
}
|
||||
},
|
||||
"request": {
|
||||
"version": "2.88.0",
|
||||
"resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
|
||||
"integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
|
||||
"requires": {
|
||||
"aws-sign2": "~0.7.0",
|
||||
"aws4": "^1.8.0",
|
||||
"caseless": "~0.12.0",
|
||||
"combined-stream": "~1.0.6",
|
||||
"extend": "~3.0.2",
|
||||
"forever-agent": "~0.6.1",
|
||||
"form-data": "~2.3.2",
|
||||
"har-validator": "~5.1.0",
|
||||
"http-signature": "~1.2.0",
|
||||
"is-typedarray": "~1.0.0",
|
||||
"isstream": "~0.1.2",
|
||||
"json-stringify-safe": "~5.0.1",
|
||||
"mime-types": "~2.1.19",
|
||||
"oauth-sign": "~0.9.0",
|
||||
"performance-now": "^2.1.0",
|
||||
"qs": "~6.5.2",
|
||||
"safe-buffer": "^5.1.2",
|
||||
"tough-cookie": "~2.4.3",
|
||||
"tunnel-agent": "^0.6.0",
|
||||
"uuid": "^3.3.2"
|
||||
}
|
||||
},
|
||||
"safe-buffer": {
|
||||
"version": "5.1.2",
|
||||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
|
||||
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
|
||||
},
|
||||
"safer-buffer": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
|
||||
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
|
||||
},
|
||||
"sax": {
|
||||
"version": "1.2.4",
|
||||
"resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
|
||||
"integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
|
||||
},
|
||||
"scheduler": {
|
||||
"version": "0.13.4",
|
||||
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.13.4.tgz",
|
||||
"integrity": "sha512-cvSOlRPxOHs5dAhP9yiS/6IDmVAVxmk33f0CtTJRkmUWcb1Us+t7b1wqdzoC0REw2muC9V5f1L/w5R5uKGaepA==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"loose-envify": "^1.1.0",
|
||||
"object-assign": "^4.1.1"
|
||||
}
|
||||
},
|
||||
"snekfetch": {
|
||||
"version": "3.6.4",
|
||||
"resolved": "https://registry.npmjs.org/snekfetch/-/snekfetch-3.6.4.tgz",
|
||||
"integrity": "sha512-NjxjITIj04Ffqid5lqr7XdgwM7X61c/Dns073Ly170bPQHLm6jkmelye/eglS++1nfTWktpP6Y2bFXjdPlQqdw=="
|
||||
},
|
||||
"sqlstring": {
|
||||
"version": "2.3.1",
|
||||
"resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz",
|
||||
"integrity": "sha1-R1OT/56RR5rqYtyvDKPRSYOn+0A="
|
||||
},
|
||||
"sshpk": {
|
||||
"version": "1.16.1",
|
||||
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
|
||||
"integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
|
||||
"requires": {
|
||||
"asn1": "~0.2.3",
|
||||
"assert-plus": "^1.0.0",
|
||||
"bcrypt-pbkdf": "^1.0.0",
|
||||
"dashdash": "^1.12.0",
|
||||
"ecc-jsbn": "~0.1.1",
|
||||
"getpass": "^0.1.1",
|
||||
"jsbn": "~0.1.0",
|
||||
"safer-buffer": "^2.0.2",
|
||||
"tweetnacl": "~0.14.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"tweetnacl": {
|
||||
"version": "0.14.5",
|
||||
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
|
||||
"integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
|
||||
}
|
||||
}
|
||||
},
|
||||
"string_decoder": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
||||
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
|
||||
"requires": {
|
||||
"safe-buffer": "~5.1.0"
|
||||
}
|
||||
},
|
||||
"tlds": {
|
||||
"version": "1.203.1",
|
||||
"resolved": "https://registry.npmjs.org/tlds/-/tlds-1.203.1.tgz",
|
||||
"integrity": "sha512-7MUlYyGJ6rSitEZ3r1Q1QNV8uSIzapS8SmmhSusBuIc7uIxPPwsKllEP0GRp1NS6Ik6F+fRZvnjDWm3ecv2hDw=="
|
||||
},
|
||||
"tough-cookie": {
|
||||
"version": "2.4.3",
|
||||
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
|
||||
"integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
|
||||
"requires": {
|
||||
"psl": "^1.1.24",
|
||||
"punycode": "^1.4.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"punycode": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
|
||||
"integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
|
||||
}
|
||||
}
|
||||
},
|
||||
"tunnel-agent": {
|
||||
"version": "0.6.0",
|
||||
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
|
||||
"integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
|
||||
"requires": {
|
||||
"safe-buffer": "^5.0.1"
|
||||
}
|
||||
},
|
||||
"tweetnacl": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.1.tgz",
|
||||
"integrity": "sha512-kcoMoKTPYnoeS50tzoqjPY3Uv9axeuuFAZY9M/9zFnhoVvRfxz9K29IMPD7jGmt2c8SW7i3gT9WqDl2+nV7p4A=="
|
||||
},
|
||||
"twitch-m3u8": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/twitch-m3u8/-/twitch-m3u8-1.0.5.tgz",
|
||||
"integrity": "sha512-2m9Ukv0PoAwrt5mCucffVNCfWKbaYknVWLVte+EPsBFiOtq+JqY68iWCRwvgF8cIQuPa7zaFBnLhDk41xIS4RA=="
|
||||
},
|
||||
"uri-js": {
|
||||
"version": "4.2.2",
|
||||
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
|
||||
"integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
|
||||
"requires": {
|
||||
"punycode": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"url-regex": {
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmjs.org/url-regex/-/url-regex-4.1.1.tgz",
|
||||
"integrity": "sha512-ViSDgDPNKkrQHI81GLCjdDN+Rsk3tAW/uLXlBOJxtcHzWZjta58Z0APXhfXzS89YszsheMnEvXeDXsWUB53wwA==",
|
||||
"requires": {
|
||||
"ip-regex": "^1.0.1",
|
||||
"tlds": "^1.187.0"
|
||||
}
|
||||
},
|
||||
"util-deprecate": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
||||
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
|
||||
},
|
||||
"uuid": {
|
||||
"version": "3.3.2",
|
||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
|
||||
"integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA=="
|
||||
},
|
||||
"verror": {
|
||||
"version": "1.10.0",
|
||||
"resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
|
||||
"integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
|
||||
"requires": {
|
||||
"assert-plus": "^1.0.0",
|
||||
"core-util-is": "1.0.2",
|
||||
"extsprintf": "^1.2.0"
|
||||
}
|
||||
},
|
||||
"ws": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/ws/-/ws-4.1.0.tgz",
|
||||
"integrity": "sha512-ZGh/8kF9rrRNffkLFV4AzhvooEclrOH0xaugmqGsIfFgOE/pIz4fMc4Ef+5HSQqTEug2S9JZIWDR47duDSLfaA==",
|
||||
"requires": {
|
||||
"async-limiter": "~1.0.0",
|
||||
"safe-buffer": "~5.1.0"
|
||||
}
|
||||
},
|
||||
"ytdl-core": {
|
||||
"version": "0.29.1",
|
||||
"resolved": "https://registry.npmjs.org/ytdl-core/-/ytdl-core-0.29.1.tgz",
|
||||
"integrity": "sha512-J/TW3rupqE6y+TczHTTFjuwf23tweA9fasmnbU/5yYH0O2IRFLcwgHbbvEPt3t8mtXWGX207+TWH7uuJpB1FKQ==",
|
||||
"requires": {
|
||||
"html-entities": "^1.1.3",
|
||||
"m3u8stream": "^0.6.2",
|
||||
"miniget": "^1.4.0",
|
||||
"sax": "^1.1.3"
|
||||
}
|
||||
},
|
||||
"ytpl": {
|
||||
"version": "0.1.14",
|
||||
"resolved": "https://registry.npmjs.org/ytpl/-/ytpl-0.1.14.tgz",
|
||||
"integrity": "sha512-e5GZDAakgu7EC0ooPAtvuiUz0gugivU8ZkyNen5hwfnl4NAo4HuoDeYODGYso9T8/M7thEW9VZTlCedjXmL/mQ==",
|
||||
"requires": {
|
||||
"html-entities": "^1.1.3"
|
||||
}
|
||||
},
|
||||
"ytsearcher": {
|
||||
"version": "1.2.2",
|
||||
"resolved": "https://registry.npmjs.org/ytsearcher/-/ytsearcher-1.2.2.tgz",
|
||||
"integrity": "sha512-nQ38akKe3O2OGfQba0aTetMx25U/V+jD+MN1v26/lR497KyzpPIolQuNEf5x4O0ANvLLIS9iPSc91Zle1OP+ww=="
|
||||
}
|
||||
}
|
||||
}
|
||||
23
package.json
Normal file
23
package.json
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"name": "dadminyt",
|
||||
"version": "1.0.0",
|
||||
"description": "",
|
||||
"main": "index.js",
|
||||
"dependencies": {
|
||||
"colors": "^1.3.3",
|
||||
"discord.js": "^11.4.2",
|
||||
"discord.js-musicbot-addon": "^13.4.5",
|
||||
"get-urls": "^9.0.0",
|
||||
"linkifyjs": "^2.1.8",
|
||||
"mysql": "^2.16.0",
|
||||
"node-opus": "^0.3.1",
|
||||
"request": "^2.88.0",
|
||||
"twitch-m3u8": "^1.0.5"
|
||||
},
|
||||
"devDependencies": {},
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"author": "",
|
||||
"license": "ISC"
|
||||
}
|
||||
32
permissions.txt
Normal file
32
permissions.txt
Normal file
@@ -0,0 +1,32 @@
|
||||
ADMINISTRATOR
|
||||
CREATE_INSTANT_INVITE
|
||||
KICK_MEMBERS
|
||||
BAN_MEMBERS
|
||||
MANAGE_CHANNELS
|
||||
MANAGE_GUILD
|
||||
ADD_REACTIONS
|
||||
VIEW_AUDIT_LOG
|
||||
PRIORITY_SPEAKER
|
||||
VIEW_CHANNEL
|
||||
READ_MESSAGES
|
||||
SEND_MESSAGES
|
||||
SEND_TTS_MESSAGES
|
||||
MANAGE_MESSAGES
|
||||
EMBED_LINKS
|
||||
ATTACH_FILES
|
||||
READ_MESSAGE_HISTORY
|
||||
MENTION_EVERYONE
|
||||
USE_EXTERNAL_EMOJIS
|
||||
EXTERNAL_EMOJIS
|
||||
CONNECT
|
||||
SPEAK
|
||||
MUTE_MEMBERS
|
||||
DEAFEN_MEMBERS
|
||||
MOVE_MEMBERS
|
||||
USE_VAD
|
||||
CHANGE_NICKNAME
|
||||
MANAGE_NICKNAMES
|
||||
MANAGE_ROLES
|
||||
MANAGE_ROLES_OR_PERMISSIONS
|
||||
MANAGE_WEBHOOKS
|
||||
MANAGE_EMOJIS
|
||||
Reference in New Issue
Block a user