forked from Supositware/Haha-Yes
Major DIscord.js & Discord-akairo update
This commit is contained in:
parent
216aa515ba
commit
60f85fb5ff
30 changed files with 453 additions and 293 deletions
|
@ -4,7 +4,7 @@ const BannedWords = require('../../models').bannedWords;
|
|||
class BannedWordsCommand extends Command {
|
||||
constructor() {
|
||||
super('BannedWords', {
|
||||
aliases: ['bannedword', 'banword', 'unbanword'],
|
||||
aliases: ['bannedword', 'banword', 'unbanword', 'censor', 'uncensor'],
|
||||
category: 'admin',
|
||||
userPermissions: ['MANAGE_MESSAGES'],
|
||||
clientPermissions: ['MANAGE_MESSAGES', 'SEND_MESSAGES'],
|
||||
|
|
|
@ -36,7 +36,7 @@ class fakebotCommand extends Command {
|
|||
let Attachment = (message.attachments).array();
|
||||
let url;
|
||||
let username = args.user.username;
|
||||
let member = message.guild.members.get(args.user.id);
|
||||
let member = message.guild.members.resolve(args.user.id);
|
||||
// Get attachment link
|
||||
if (Attachment[0]) {
|
||||
url = Attachment[0].url;
|
||||
|
|
|
@ -29,9 +29,9 @@ class fakejoinCommand extends Command {
|
|||
|
||||
if (join) {
|
||||
if (args.user)
|
||||
member = message.guild.members.get(args.user.id);
|
||||
member = message.guild.members.resolve(args.user.id);
|
||||
else
|
||||
member = message.guild.members.get(message.author.id);
|
||||
member = message.guild.members.resolve(message.author.id);
|
||||
} else {
|
||||
return message.channel.send('There is no join channel setup');
|
||||
}
|
||||
|
|
|
@ -29,9 +29,9 @@ class fakeleaveCommand extends Command {
|
|||
|
||||
if (leave) {
|
||||
if (args.user)
|
||||
member = message.guild.members.get(args.user.id);
|
||||
member = message.guild.members.resolve(args.user.id);
|
||||
else
|
||||
member = message.guild.members.get(message.author.id);
|
||||
member = message.guild.members.resolve(message.author.id);
|
||||
} else {
|
||||
return message.channel.send('There is no leave channel setup');
|
||||
}
|
||||
|
|
|
@ -4,8 +4,6 @@ const fetch = require('node-fetch');
|
|||
const os = require('os');
|
||||
const fs = require('fs');
|
||||
const rand = require('../../rand.js');
|
||||
//const Filter = require('bad-words');
|
||||
//let filter = new Filter();
|
||||
const TwitterBlacklist = require('../../models').TwitterBlacklist;
|
||||
const { twiConsumer, twiConsumerSecret, twiToken, twiTokenSecret, twiChannel } = require('../../config.json');
|
||||
|
||||
|
@ -41,16 +39,16 @@ class tweetCommand extends Command {
|
|||
if (blacklist) {
|
||||
return message.channel.send(`You have been blacklisted for the following reasons: \`\`${blacklist.get('reason')}\`\` be less naughty less time.`);
|
||||
}
|
||||
// Don't let account new account use this command to prevent spam
|
||||
if (message.author.createdAt > date.setDate(date.getDate() - 7)) {
|
||||
return message.channel.send('Your account is too new to be able to use this command!');
|
||||
}
|
||||
|
||||
// If account is younger than 6 months old don't accept attachment
|
||||
if (Attachment[0] && message.author.createdAt > date.setMonth(date.getMonth() - 6)) {
|
||||
return message.channel.send('Your account need to be 6 months or older to be able to send attachment!');
|
||||
}
|
||||
|
||||
// Don't let account new account use this command to prevent spam
|
||||
if (message.author.createdAt > date.setDate(date.getDate() - 7)) {
|
||||
return message.channel.send('Your account is too new to be able to use this command!');
|
||||
}
|
||||
|
||||
if (args.text.includes('discord.gg')) return message.channel.send('No discord invite allowed.');
|
||||
|
||||
|
@ -164,7 +162,7 @@ class tweetCommand extends Command {
|
|||
if (Attachment[0]) publicEmbed.setImage(Attachment[0].url);
|
||||
|
||||
// Im too lazy for now to make an entry in config.json
|
||||
let channel = client.channels.get('597964498921455637');
|
||||
let channel = client.channels.resolve('597964498921455637');
|
||||
channel.send({embed: publicEmbed});
|
||||
|
||||
const Embed = client.util.embed()
|
||||
|
@ -178,7 +176,7 @@ class tweetCommand extends Command {
|
|||
|
||||
if (Attachment[0]) Embed.setImage(Attachment[0].url);
|
||||
|
||||
channel = client.channels.get(twiChannel);
|
||||
channel = client.channels.resolve(twiChannel);
|
||||
channel.send({embed: Embed});
|
||||
return message.channel.send(`Go see ur epic tweet https://twitter.com/i/status/${tweetid}`);
|
||||
});
|
||||
|
|
|
@ -43,7 +43,7 @@ class addDonatorCommand extends Command {
|
|||
if (!Donator) {
|
||||
const body = {userID: args.id, comment: userComment};
|
||||
donator.create(body);
|
||||
return message.channel.send(`A new donator have been added! ${this.client.users.get(args.id).username}#${this.client.users.get(args.id).discriminator} (${args.id}) ${userComment}`);
|
||||
return message.channel.send(`A new donator have been added! ${this.client.users.resolve(args.id).username}#${this.client.users.resolve(args.id).discriminator} (${args.id}) ${userComment}`);
|
||||
} else {
|
||||
message.channel.send('This donator already exist, do you want to update it? y/n');
|
||||
const filter = m => m.content && m.author.id == message.author.id;
|
||||
|
@ -55,9 +55,9 @@ class addDonatorCommand extends Command {
|
|||
donator.update(body, {where: {userID: args.id}});
|
||||
console.log(userComment);
|
||||
if (userComment == '') {
|
||||
return message.channel.send(`Removed the comment from ${this.client.users.get(args.id).username}#${this.client.users.get(args.id).discriminator} (${args.id})`);
|
||||
return message.channel.send(`Removed the comment from ${this.client.users.resolve(args.id).username}#${this.client.users.resolve(args.id).discriminator} (${args.id})`);
|
||||
} else {
|
||||
return message.channel.send(`You edited the comment for ${this.client.users.get(args.id).username}#${this.client.users.get(args.id).discriminator} (${args.id}) with ${args.userComment}`);
|
||||
return message.channel.send(`You edited the comment for ${this.client.users.resolve(args.id).username}#${this.client.users.resolve(args.id).discriminator} (${args.id}) with ${args.userComment}`);
|
||||
}
|
||||
}
|
||||
})
|
||||
|
|
|
@ -32,7 +32,7 @@ class blacklistCommand extends Command {
|
|||
if (!blacklist) {
|
||||
const body = {userID: args.userID};
|
||||
userBlacklist.create(body);
|
||||
return message.channel.send(`The following user have been blacklisted: ${this.client.users.get(args.userID).username}#${this.client.users.get(args.userID).discriminator} (${args.userID})`);
|
||||
return message.channel.send(`The following user have been blacklisted: ${this.client.users.resolve(args.userID).username}#${this.client.users.resolve(args.userID).discriminator} (${args.userID})`);
|
||||
} else {
|
||||
message.channel.send('This user is already blacklisted, do you want to unblacklist him? y/n');
|
||||
const filter = m => m.content && m.author.id == message.author.id;
|
||||
|
@ -41,7 +41,7 @@ class blacklistCommand extends Command {
|
|||
let messageContent = messages.map(messages => messages.content);
|
||||
if (messageContent == 'y' || messageContent == 'yes') {
|
||||
userBlacklist.destroy({where: {userID:args.userID}});
|
||||
return message.channel.send(`The following user have been unblacklisted: ${this.client.users.get(args.userID).username}#${this.client.users.get(args.userID).discriminator} (${args.userID})`);
|
||||
return message.channel.send(`The following user have been unblacklisted: ${this.client.users.resolve(args.userID).username}#${this.client.users.resolve(args.userID).discriminator} (${args.userID})`);
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
|
|
|
@ -1,58 +0,0 @@
|
|||
const { Command } = require('discord-akairo');
|
||||
const fs = require('fs');
|
||||
|
||||
class censorCommand extends Command {
|
||||
constructor() {
|
||||
super('censor', {
|
||||
aliases: ['censor'],
|
||||
category: 'owner',
|
||||
ownerOnly: 'true',
|
||||
args: [
|
||||
{
|
||||
id: 'word',
|
||||
type: 'string',
|
||||
match: 'rest'
|
||||
}
|
||||
],
|
||||
description: {
|
||||
content: 'Censor word for twitter',
|
||||
usage: '[word]',
|
||||
examples: ['nigger']
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
async exec(message, args) {
|
||||
let word = args.word;
|
||||
|
||||
word = word.toLowerCase();
|
||||
|
||||
let words = [];
|
||||
let json = JSON.stringify(words);
|
||||
|
||||
fs.readFile('./json/censor.json', 'utf8', function readFileCallback(err, data) {
|
||||
if (err) {
|
||||
fs.writeFile('./json/censor.json', `["${word}"]`, function (err) {
|
||||
if (err) {
|
||||
|
||||
console.log(err);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
words = JSON.parse(data); //now it an object
|
||||
words.push(word);
|
||||
json = JSON.stringify(words); //convert it back to json
|
||||
fs.writeFile('./json/censor.json', json, 'utf8', function (err) {
|
||||
if (err) {
|
||||
return console.log(err);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
return message.channel.send(`censored the word ${word}`);
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = censorCommand;
|
|
@ -31,7 +31,7 @@ class EvalCommand extends Command {
|
|||
|
||||
let Attachment = (message.attachments).array();
|
||||
if (Attachment[0]) {
|
||||
this.client.users.get(user.id).send(`**Message from the dev:**\n${text}\n**If you wish to respond use the feedback command**`, {files: [Attachment[0].url]})
|
||||
this.client.users.resolve(user.id).send(`**Message from the dev:**\n${text}\n**If you wish to respond use the feedback command**`, {files: [Attachment[0].url]})
|
||||
.then(() => {
|
||||
return message.channel.send(`DM sent to ${user.username}`);
|
||||
})
|
||||
|
@ -40,7 +40,7 @@ class EvalCommand extends Command {
|
|||
});
|
||||
}
|
||||
else {
|
||||
this.client.users.get(user.id).send(`**Message from the dev:**\n${text}\n**If you wish to respond use the feedback command**`)
|
||||
this.client.users.resolve(user.id).send(`**Message from the dev:**\n${text}\n**If you wish to respond use the feedback command**`)
|
||||
.then(() => {
|
||||
return message.channel.send(`DM sent to ${user.username}`);
|
||||
})
|
||||
|
|
|
@ -1,58 +0,0 @@
|
|||
const { Command } = require('discord-akairo');
|
||||
const fs = require('fs');
|
||||
|
||||
class uncensorCommand extends Command {
|
||||
constructor() {
|
||||
super('uncensor', {
|
||||
aliases: ['uncensor'],
|
||||
category: 'owner',
|
||||
ownerOnly: 'true',
|
||||
args: [
|
||||
{
|
||||
id: 'word',
|
||||
type: 'string',
|
||||
match: 'rest'
|
||||
}
|
||||
],
|
||||
description: {
|
||||
content: 'Unensor word for twitter',
|
||||
usage: '[word]',
|
||||
examples: ['shit']
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
async exec(message, args) {
|
||||
let word = args.word;
|
||||
|
||||
word = word.toLowerCase();
|
||||
|
||||
let words = [];
|
||||
let json = JSON.stringify(words);
|
||||
|
||||
fs.readFile('./json/uncensor.json', 'utf8', function readFileCallback(err, data) {
|
||||
if (err) {
|
||||
fs.writeFile('./json/uncensor.json', `["${word}"]`, function (err) {
|
||||
if (err) {
|
||||
|
||||
console.log(err);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
words = JSON.parse(data); //now it an object
|
||||
words.push(word);
|
||||
json = JSON.stringify(words); //convert it back to json
|
||||
fs.writeFile('./json/uncensor.json', json, 'utf8', function (err) {
|
||||
if (err) {
|
||||
return console.log(err);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
return message.channel.send(`Uncensored the word ${word}`);
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = uncensorCommand;
|
|
@ -26,7 +26,7 @@ class fartpissCommand extends Command {
|
|||
}
|
||||
|
||||
if (!args.member) {
|
||||
return message.guild.members.get(message.author.id).setNickname('fart piss')
|
||||
return message.guild.members.resolve(message.author.id).setNickname('fart piss')
|
||||
.then(() => message.channel.send('sucessfully fart pissed on you <:youngtroll:488559163832795136>'))
|
||||
.catch(() => message.channel.send('Sorry i could not fart piss on you :('));
|
||||
} else {
|
||||
|
|
|
@ -18,11 +18,11 @@ class aboutCommand extends Command {
|
|||
async exec(message) {
|
||||
const Donator = await donator.findAll({order: ['id']});
|
||||
|
||||
let description = `This bot is made using [discord.js](https://github.com/discordjs/discord.js) & [Discord-Akairo](https://github.com/discord-akairo/discord-akairo)\nHelp command from [hoshi](https://github.com/1Computer1/hoshi)\n[Rantionary](https://github.com/RantLang/Rantionary) for their dictionnary.\nThanks to ${this.client.users.get('336492042299637771').username}#${this.client.users.get('336492042299637771').discriminator} (336492042299637771) for inspiring me for making this bot!\n\nThe people who donated for the bot <3\n`;
|
||||
let description = `This bot is made using [discord.js](https://github.com/discordjs/discord.js) & [Discord-Akairo](https://github.com/discord-akairo/discord-akairo)\nHelp command from [hoshi](https://github.com/1Computer1/hoshi)\n[Rantionary](https://github.com/RantLang/Rantionary) for their dictionnary.\nThanks to ${this.client.users.resolve('336492042299637771').username}#${this.client.users.resolve('336492042299637771').discriminator} (336492042299637771) for inspiring me for making this bot!\n\nThe people who donated for the bot <3\n`;
|
||||
|
||||
if (Donator[0]) {
|
||||
for (let i = 0; i < Donator.length; i++) {
|
||||
description += `**${this.client.users.get(Donator[i].get('userID')).username}#${this.client.users.get(Donator[i].get('userID')).discriminator} (${Donator[i].get('userID')}) | ${Donator[i].get('comment')}**\n`;
|
||||
description += `**${this.client.users.resolve(Donator[i].get('userID')).username}#${this.client.users.resolve(Donator[i].get('userID')).discriminator} (${Donator[i].get('userID')}) | ${Donator[i].get('comment')}**\n`;
|
||||
}
|
||||
} else {
|
||||
description += 'No one :(';
|
||||
|
@ -34,10 +34,10 @@ class aboutCommand extends Command {
|
|||
.setAuthor(this.client.user.username, this.client.user.avatarURL())
|
||||
.setTitle('About me')
|
||||
.setDescription(description)
|
||||
.addField('Current owner: ', `${this.client.users.get(this.client.ownerID).username}#${this.client.users.get(this.client.ownerID).discriminator} (${this.client.ownerID})`)
|
||||
.addField('Current owner: ', `${this.client.users.resolve(this.client.ownerID).username}#${this.client.users.resolve(this.client.ownerID).discriminator} (${this.client.ownerID})`)
|
||||
.addField('Gitlab', 'https://gitlab.com/LoicBersier/DiscordBot', true)
|
||||
.addField('Github', 'https://github.com/loicbersier/Haha-yes', true)
|
||||
.setFooter(`Original bot made by ${this.client.users.get('267065637183029248').username}#${this.client.users.get('267065637183029248').discriminator} (267065637183029248)`); // Please don't change the "original bot made by"
|
||||
.setFooter(`Original bot made by ${this.client.users.resolve('267065637183029248').username}#${this.client.users.resolve('267065637183029248').discriminator} (267065637183029248)`); // Please don't change the "original bot made by"
|
||||
|
||||
message.channel.send(aboutEmbed);
|
||||
}
|
||||
|
|
|
@ -22,7 +22,7 @@ class donatorCommand extends Command {
|
|||
|
||||
if (Donator[0]) {
|
||||
for (let i = 0; i < Donator.length; i++) {
|
||||
donatorMessage += `**${this.client.users.get(Donator[i].get('userID')).username}#${this.client.users.get(Donator[i].get('userID')).discriminator} (${Donator[i].get('userID')}) | ${Donator[i].get('comment')}**\n`;
|
||||
donatorMessage += `**${this.client.users.resolve(Donator[i].get('userID')).username}#${this.client.users.resolve(Donator[i].get('userID')).discriminator} (${Donator[i].get('userID')}) | ${Donator[i].get('comment')}**\n`;
|
||||
}
|
||||
} else {
|
||||
donatorMessage += 'No one :(';
|
||||
|
|
|
@ -32,7 +32,7 @@ class FeedbackCommand extends Command {
|
|||
return message.channel.send('Your account is too new to be able to use this command!');
|
||||
}
|
||||
|
||||
const channel = this.client.channels.get(feedbackChannel);
|
||||
const channel = this.client.channels.resolve(feedbackChannel);
|
||||
|
||||
const Embed = this.client.util.embed()
|
||||
.setAuthor(`${message.author.username} (${message.author.id})`, message.author.displayAvatarURL())
|
||||
|
|
65
commands/utility/screenshot.js
Normal file
65
commands/utility/screenshot.js
Normal file
|
@ -0,0 +1,65 @@
|
|||
const { Command } = require('discord-akairo');
|
||||
const captureWebsite = require('capture-website');
|
||||
const os = require('os');
|
||||
const fs = require('fs');
|
||||
|
||||
class screenshotCommand extends Command {
|
||||
constructor() {
|
||||
super('screenshot', {
|
||||
aliases: ['screenshot', 'webshot', 'ss'],
|
||||
category: 'utility',
|
||||
clientPermissions: ['SEND_MESSAGES', 'ATTACH_FILES'],
|
||||
ownerOnly: 'true', // Owner only until i am sure there is no security issue
|
||||
args: [
|
||||
{
|
||||
id: 'url',
|
||||
type: 'string'
|
||||
},
|
||||
{
|
||||
id: 'fullpage',
|
||||
type: 'flag',
|
||||
flag: '--full'
|
||||
}
|
||||
],
|
||||
channelRestriction: 'guild',
|
||||
description: {
|
||||
content: 'Take a screenshot of a website',
|
||||
usage: '[link to a website]',
|
||||
examples: ['www.google.com']
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
async exec(message, args) {
|
||||
let Embed = this.client.util.embed()
|
||||
.setColor(message.member.displayHexColor)
|
||||
.setTitle(args.url);
|
||||
|
||||
// eslint-disable-next-line no-useless-escape
|
||||
let urlregex = new RegExp(/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)/);
|
||||
if (args.url.match(urlregex)) { // Only allow link with http/https
|
||||
await captureWebsite.file(args.url, `${os.tmpdir()}/${message.id}.jpg`, {
|
||||
type: 'jpeg',
|
||||
headers: {
|
||||
'Accept-Language': 'en-GB'
|
||||
},
|
||||
fullPage: args.fullpage
|
||||
})
|
||||
.catch((err) => {
|
||||
console.error(err);
|
||||
Embed.setDescription(err.toString());
|
||||
return message.channel.send(Embed);
|
||||
})
|
||||
.then(() => {
|
||||
if (fs.existsSync(`${os.tmpdir()}/${message.id}.jpg`)) {
|
||||
Embed.attachFiles([`${os.tmpdir()}/${message.id}.jpg`]);
|
||||
Embed.setImage(`attachment://${message.id}.jpg`);
|
||||
return message.channel.send(Embed);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
return message.channel.send('The URL you used doesn\'t correspond to a website!');
|
||||
}
|
||||
}
|
||||
}
|
||||
module.exports = screenshotCommand;
|
|
@ -55,9 +55,9 @@ class StatsCommand extends Command {
|
|||
.setColor(message.member.displayHexColor)
|
||||
.setTitle('Bot stats')
|
||||
.setAuthor('Haha yes')
|
||||
.addField('Servers', this.client.guilds.size, true)
|
||||
.addField('Channels', this.client.channels.size, true)
|
||||
.addField('Users', this.client.users.size, true)
|
||||
.addField('Servers', this.client.guilds.cache.size, true)
|
||||
.addField('Channels', this.client.channels.cache.size, true)
|
||||
.addField('Users', this.client.users.cache.size, true)
|
||||
.addField('Uptime', dateString, true)
|
||||
.addField('Ram usage', `${Math.round(used * 100) / 100} MB`, true)
|
||||
.addField('CPU', cpu, true)
|
||||
|
|
|
@ -31,8 +31,6 @@ class wallpaperCommand extends Command {
|
|||
return res.json();
|
||||
})
|
||||
.then(res => {
|
||||
console.log(res);
|
||||
|
||||
const wallpaperEmbed = this.client.util.embed()
|
||||
.setColor(message.member.displayHexColor)
|
||||
.setTitle('Bing wallpaper of the day')
|
||||
|
|
|
@ -9,6 +9,7 @@ class serverblacklistInhibitor extends Inhibitor {
|
|||
}
|
||||
|
||||
async exec(message) {
|
||||
if (message.channel.type == 'dm') return;
|
||||
const blacklist = await guildBlacklist.findOne({where: {guildID:message.guild.id}});
|
||||
|
||||
if (blacklist) return true;
|
||||
|
|
|
@ -38,7 +38,7 @@ class CommandBlockedListener extends Listener {
|
|||
break;
|
||||
case 'serverblacklist':
|
||||
Embed.setTitle('Server blacklisted.');
|
||||
Embed.setDescription(`This server have been blacklisted... to appeal contact ${this.client.users.get(this.client.ownerID).username}#${this.client.users.get(this.client.ownerID).discriminator}, and now i will yeet out of here`);
|
||||
Embed.setDescription(`This server have been blacklisted... to appeal contact ${this.client.users.resolve(this.client.ownerID).username}#${this.client.users.resolve(this.client.ownerID).discriminator}, and now i will yeet out of here`);
|
||||
message.channel.send(Embed);
|
||||
message.guild.leave();
|
||||
break;
|
||||
|
|
|
@ -14,7 +14,7 @@ class errorListener extends Listener {
|
|||
async exec(message, error, command) {
|
||||
console.log(message);
|
||||
console.error(`Error happenend on the command: ${command.id}\n${message}\nOn the message: ${error}`);
|
||||
const channel = this.client.channels.get(errorChannel);
|
||||
const channel = this.client.channels.resolve(errorChannel);
|
||||
const errorEmbed = this.client.util.embed()
|
||||
.setColor('RED')
|
||||
.setTitle('Shit happened!')
|
||||
|
|
|
@ -12,7 +12,7 @@ class guildCreateListener extends Listener {
|
|||
|
||||
async exec(guild) {
|
||||
console.log(`${guild.name}\n${guild.memberCount} users\nOwner: ${guild.owner.user.username}\nOwner ID: ${guild.owner}`);
|
||||
const channel = this.client.channels.get(statsChannel);
|
||||
const channel = this.client.channels.resolve(statsChannel);
|
||||
const addEmbed = this.client.util.embed()
|
||||
.setColor('#52e80d')
|
||||
.setTitle('New boiz in town')
|
||||
|
@ -25,7 +25,7 @@ class guildCreateListener extends Listener {
|
|||
.addField('Number of bots', guild.members.filter(member => member.user.bot).size, true)
|
||||
.addField('Owner', guild.owner.user.username, true)
|
||||
.addField('Owner ID', guild.owner.id, true)
|
||||
.setFooter(`I'm now in ${this.client.guilds.size} servers!`)
|
||||
.setFooter(`I'm now in ${this.client.guilds.cache.size} servers!`)
|
||||
.setTimestamp();
|
||||
|
||||
channel.send({ embed: addEmbed });
|
||||
|
|
|
@ -12,7 +12,7 @@ class guildCreateListener extends Listener {
|
|||
|
||||
async exec(guild) {
|
||||
console.log(`***BOT KICKED***\n${guild.name}\n${guild.memberCount} users\nOwner: ${guild.owner.user.username}\nOwner ID: ${guild.owner}\n***BOT KICKED***`);
|
||||
const channel = this.client.channels.get(statsChannel);
|
||||
const channel = this.client.channels.resolve(statsChannel);
|
||||
|
||||
const kickEmbed = this.client.util.embed()
|
||||
.setColor('#FF0000')
|
||||
|
@ -26,7 +26,7 @@ class guildCreateListener extends Listener {
|
|||
.addField('Number of bots', guild.members.filter(member => member.user.bot).size, true)
|
||||
.addField('Owner', guild.owner.user.username, true)
|
||||
.addField('Owner ID', guild.owner.id, true)
|
||||
.setFooter(`I'm now in ${this.client.guilds.size} servers!`)
|
||||
.setFooter(`I'm now in ${this.client.guilds.cache.size} servers!`)
|
||||
.setTimestamp();
|
||||
|
||||
channel.send({ embed: kickEmbed });
|
||||
|
|
|
@ -19,7 +19,7 @@ class guildMemberAddListener extends Listener {
|
|||
const join = await joinChannel.findOne({where: {guildID: guild.guild.id}});
|
||||
|
||||
if (join) {
|
||||
const channel = this.client.channels.get(join.get('channelID'));
|
||||
const channel = this.client.channels.resolve(join.get('channelID'));
|
||||
|
||||
let welcomeMessage = join.get('message');
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ class guildMemberRemoveListener extends Listener {
|
|||
async exec(guild) {
|
||||
const leave = await leaveChannel.findOne({where: {guildID: guild.guild.id}});
|
||||
if (leave) {
|
||||
const channel = this.client.channels.get(leave.get('channelID'));
|
||||
const channel = this.client.channels.resolve(leave.get('channelID'));
|
||||
|
||||
let byeMessage = leave.get('message');
|
||||
|
||||
|
|
|
@ -23,11 +23,10 @@ class MessageReactionAddListener extends Listener {
|
|||
let reactionCount = reaction.count;
|
||||
|
||||
// If one of the reaction is the author of the message remove 1 to the reaction count
|
||||
reaction.users.forEach(user => {
|
||||
reaction.users.cache.forEach(user => {
|
||||
if (reaction.message.author == user) reactionCount--;
|
||||
});
|
||||
|
||||
|
||||
// Starboard
|
||||
if (fs.existsSync(`./board/star${reaction.message.guild.id}.json`)) {
|
||||
starboardChannel = require(`../../board/star${reaction.message.guild.id}.json`);
|
||||
|
@ -36,11 +35,11 @@ class MessageReactionAddListener extends Listener {
|
|||
delete require.cache[require.resolve(`../../board/star${reaction.message.guild.id}.json`)]; // Delete the boardChannel cache so it can reload it next time
|
||||
|
||||
// Get name of the custom emoji
|
||||
if (this.client.util.resolveEmoji(staremote, reaction.message.guild.emojis)) {
|
||||
staremote = this.client.util.resolveEmoji(staremote, reaction.message.guild.emojis).name;
|
||||
if (reaction.message.guild.emojis.resolve(staremote.replace(/\D/g,''))) {
|
||||
staremote = reaction.message.guild.emojis.resolve(staremote.replace(/\D/g,''));
|
||||
}
|
||||
|
||||
if (reaction.emoji.name == staremote) {
|
||||
if (reaction.emoji == staremote || reaction.emoji.name == staremote) {
|
||||
if (messageID[reaction.message.id] && reactionCount > starcount) {
|
||||
return editEmbed('starboard', staremote, messageID[reaction.message.id], this.client);
|
||||
} else if (reactionCount == starcount) {
|
||||
|
@ -57,11 +56,11 @@ class MessageReactionAddListener extends Listener {
|
|||
delete require.cache[require.resolve(`../../board/shame${reaction.message.guild.id}.json`)]; // Delete the boardChannel cache so it can reload it next time
|
||||
|
||||
// Get name of the custom emoji
|
||||
if (this.client.util.resolveEmoji(shameemote, reaction.message.guild.emojis)) {
|
||||
shameemote = this.client.util.resolveEmoji(shameemote, reaction.message.guild.emojis).name;
|
||||
if (reaction.message.guild.emojis.resolve(shameemote.replace(/\D/g,''))) {
|
||||
shameemote = reaction.message.guild.emojis.resolve(shameemote.replace(/\D/g,''));
|
||||
}
|
||||
|
||||
if (reaction.emoji.name == shameemote) {
|
||||
if (reaction.emoji == shameemote || reaction.emoji.name == shameemote) {
|
||||
if (messageID[reaction.message.id] && reactionCount > shamecount) {
|
||||
return editEmbed('shameboard', shameemote, messageID[reaction.message.id], this.client);
|
||||
} else if (reactionCount == shamecount) {
|
||||
|
@ -73,12 +72,12 @@ class MessageReactionAddListener extends Listener {
|
|||
async function editEmbed(name, emote, boardID, client) {
|
||||
let channel;
|
||||
if (name == 'starboard') {
|
||||
channel = client.channels.get(starboardChannel.starboard);
|
||||
channel = client.channels.resolve(starboardChannel.starboard);
|
||||
} else {
|
||||
channel = client.channels.get(shameboardChannel.shameboard);
|
||||
channel = client.channels.resolve(shameboardChannel.shameboard);
|
||||
}
|
||||
|
||||
let message = await channel.messages.get(boardID);
|
||||
let message = await channel.messages.resolve(boardID);
|
||||
|
||||
// If the message doesn't have embeds assume it got deleted so don't do anything
|
||||
if (!message) return;
|
||||
|
@ -94,12 +93,10 @@ class MessageReactionAddListener extends Listener {
|
|||
.addField('Jump to', `[message](https://discordapp.com/channels/${reaction.message.guild.id}/${reaction.message.channel.id}/${reaction.message.id})`, true)
|
||||
.addField('Channel', reaction.message.channel, true)
|
||||
.setDescription(description)
|
||||
.setFooter(reactionCount + ' ' + emote)
|
||||
.setFooter(`${emote} ${reactionCount}`)
|
||||
.setTimestamp();
|
||||
|
||||
if (reaction.message.guild.emojis.find(emoji => emoji.name === emote)) {
|
||||
Embed.setFooter(reactionCount, reaction.message.guild.emojis.find(emoji => emoji.name === emote).url);
|
||||
}
|
||||
if (reaction.message.guild.emojis.resolve(emote)) Embed.setFooter(reactionCount, reaction.message.guild.emojis.resolve(emote).url);
|
||||
|
||||
message.edit({ embed: Embed });
|
||||
}
|
||||
|
@ -109,9 +106,9 @@ class MessageReactionAddListener extends Listener {
|
|||
// Should change this so it automatically pic the channel ( I'm lazy right now )
|
||||
let channel;
|
||||
if (name == 'starboard') {
|
||||
channel = client.channels.get(starboardChannel.starboard);
|
||||
channel = client.channels.resolve(starboardChannel.starboard);
|
||||
} else {
|
||||
channel = client.channels.get(shameboardChannel.shameboard);
|
||||
channel = client.channels.resolve(shameboardChannel.shameboard);
|
||||
}
|
||||
|
||||
let Embed = client.util.embed()
|
||||
|
@ -119,17 +116,14 @@ class MessageReactionAddListener extends Listener {
|
|||
.setAuthor(reaction.message.author.username, reaction.message.author.displayAvatarURL())
|
||||
.addField('Jump to', `[message](https://discordapp.com/channels/${reaction.message.guild.id}/${reaction.message.channel.id}/${reaction.message.id})`, true)
|
||||
.addField('Channel', reaction.message.channel, true)
|
||||
.setFooter(reactionCount + ' ' + emote)
|
||||
.setFooter(`${emote} ${reactionCount}`)
|
||||
.setTimestamp();
|
||||
|
||||
if (reaction.message.guild.emojis.find(emoji => emoji.name === emote)) {
|
||||
Embed.setFooter(reactionCount, reaction.message.guild.emojis.find(emoji => emoji.name === emote).url);
|
||||
}
|
||||
if (reaction.message.guild.emojis.resolve(emote)) Embed.setFooter(reactionCount, reaction.message.guild.emojis.resolve(emote).url);
|
||||
|
||||
let description = '';
|
||||
|
||||
if (reaction.message.embeds[0]) {
|
||||
console.log(reaction.message.embeds[0].url);
|
||||
if (reaction.message.embeds[0].type == 'image') {
|
||||
messageAttachments = reaction.message.embeds[0].url;
|
||||
}
|
||||
|
|
|
@ -22,7 +22,7 @@ class messageReactionRemoveListener extends Listener {
|
|||
let reactionCount = reaction.count;
|
||||
|
||||
// If one of the reaction removed is the author of the message add 1 to the reaction count
|
||||
reaction.users.forEach(user => {
|
||||
reaction.users.cache.forEach(user => {
|
||||
if (reaction.message.author == user) reactionCount++;
|
||||
});
|
||||
|
||||
|
@ -33,19 +33,20 @@ class messageReactionRemoveListener extends Listener {
|
|||
let starcount = starboardChannel.count;
|
||||
delete require.cache[require.resolve(`../../board/star${reaction.message.guild.id}.json`)]; // Delete the boardChannel cache so it can reload it next time
|
||||
|
||||
if (this.client.util.resolveEmoji(staremote, reaction.message.guild.emojis)) {
|
||||
staremote = this.client.util.resolveEmoji(staremote, reaction.message.guild.emojis).name;
|
||||
// Get name of the custom emoji
|
||||
if (reaction.message.guild.emojis.resolve(staremote.replace(/\D/g,''))) {
|
||||
staremote = reaction.message.guild.emojis.resolve(staremote.replace(/\D/g,''));
|
||||
}
|
||||
|
||||
if (messageID[reaction.message.id] && reaction.emoji.name == staremote && reactionCount < starcount) {
|
||||
let channel = this.client.channels.get(starboardChannel.starboard);
|
||||
let message = await channel.messages.get(messageID[reaction.message.id]);
|
||||
if (messageID[reaction.message.id] && (reaction.emoji == staremote || reaction.emoji.name == staremote) && reactionCount < starcount) {
|
||||
let channel = this.client.channels.resolve(starboardChannel.starboard);
|
||||
let message = await channel.messages.resolve(messageID[reaction.message.id]);
|
||||
delete messageID[reaction.message.id];
|
||||
// If it didn't find any message don't do anything
|
||||
if (!message) return;
|
||||
|
||||
message.delete();
|
||||
} else if (reaction.emoji.name == staremote && reactionCount >= starcount) {
|
||||
} else if ((reaction.emoji == staremote || reaction.emoji.name == staremote) && reactionCount >= starcount) {
|
||||
return editEmbed('starboard', staremote, messageID[reaction.message.id], this.client);
|
||||
}
|
||||
}
|
||||
|
@ -57,16 +58,17 @@ class messageReactionRemoveListener extends Listener {
|
|||
let shamecount = shameboardChannel.count;
|
||||
delete require.cache[require.resolve(`../../board/shame${reaction.message.guild.id}.json`)]; // Delete the boardChannel cache so it can reload it next time
|
||||
|
||||
if (this.client.util.resolveEmoji(shameemote, reaction.message.guild.emojis)) {
|
||||
shameemote = this.client.util.resolveEmoji(shameemote, reaction.message.guild.emojis).name;
|
||||
// Get name of the custom emoji
|
||||
if (reaction.message.guild.emojis.resolve(shameemote.replace(/\D/g,''))) {
|
||||
shameemote = reaction.message.guild.emojis.resolve(shameemote.replace(/\D/g,''));
|
||||
}
|
||||
|
||||
if (messageID[reaction.message.id] && reaction.emoji.name == shameemote && reactionCount < shamecount) {
|
||||
let channel = this.client.channels.get(shameboardChannel.shameboard);
|
||||
let message = await channel.messages.get(messageID[reaction.message.id]);
|
||||
if (messageID[reaction.message.id] && (reaction.emoji == shameemote || reaction.emoji.name == shameemote) && reactionCount < shamecount) {
|
||||
let channel = this.client.channels.resolve(shameboardChannel.shameboard);
|
||||
let message = await channel.messages.resolve(messageID[reaction.message.id]);
|
||||
delete messageID[reaction.message.id];
|
||||
message.delete();
|
||||
} else if (reaction.emoji.name == shameemote && reactionCount >= shamecount) {
|
||||
} else if ((reaction.emoji == shameemote || reaction.emoji.name == shameemote) && reactionCount >= shamecount) {
|
||||
return editEmbed('shameboard', shameemote, messageID[reaction.message.id], this.client);
|
||||
}
|
||||
}
|
||||
|
@ -74,19 +76,19 @@ class messageReactionRemoveListener extends Listener {
|
|||
async function editEmbed(name, emote, boardID, client) {
|
||||
let channel;
|
||||
if (name == 'starboard') {
|
||||
channel = client.channels.get(starboardChannel.starboard);
|
||||
channel = client.channels.resolve(starboardChannel.starboard);
|
||||
} else {
|
||||
channel = client.channels.get(shameboardChannel.shameboard);
|
||||
channel = client.channels.resolve(shameboardChannel.shameboard);
|
||||
}
|
||||
|
||||
let message = await channel.messages.get(boardID);
|
||||
let message = await channel.messages.resolve(boardID);
|
||||
|
||||
// If the message doesn't have embeds assume it got deleted so don't do anything
|
||||
if (!message) return;
|
||||
|
||||
// If the original embed description is empty make this embed empty ( and not undefined )
|
||||
let description = message.embeds[0].description;
|
||||
if (!message.embeds[0].description)
|
||||
if (!message.embeds[0].description || message.embeds[0].description == undefined)
|
||||
description = '';
|
||||
|
||||
let Embed = client.util.embed()
|
||||
|
@ -95,12 +97,10 @@ class messageReactionRemoveListener extends Listener {
|
|||
.addField('Jump to', `[message](https://discordapp.com/channels/${reaction.message.guild.id}/${reaction.message.channel.id}/${reaction.message.id})`, true)
|
||||
.addField('Channel', reaction.message.channel, true)
|
||||
.setDescription(description)
|
||||
.setFooter(reactionCount + ' ' + emote)
|
||||
.setFooter(`${emote} ${reactionCount}`)
|
||||
.setTimestamp();
|
||||
|
||||
if (reaction.message.guild.emojis.find(emoji => emoji.name === emote)) {
|
||||
Embed.setFooter(reactionCount, reaction.message.guild.emojis.find(emoji => emoji.name === emote).url);
|
||||
}
|
||||
if (reaction.message.guild.emojis.resolve(emote)) Embed.setFooter(reactionCount, reaction.message.guild.emojis.resolve(emote).url);
|
||||
|
||||
message.edit({ embed: Embed });
|
||||
}
|
||||
|
|
|
@ -18,12 +18,13 @@ class ReadyListener extends Listener {
|
|||
async exec() {
|
||||
let commandSize = this.client.commandHandler.modules.size;
|
||||
let clientTag = this.client.user.tag;
|
||||
let guildSize = this.client.guilds.size;
|
||||
let userSize = this.client.users.size;
|
||||
let channelSize = this.client.channels.size;
|
||||
let guildSize = this.client.guilds.cache.size;
|
||||
let userSize = this.client.users.cache.size;
|
||||
let channelSize = this.client.channels.cache.size;
|
||||
let profilePicture = this.client.user.displayAvatarURL();
|
||||
let clientID = this.client.user.id;
|
||||
let author = this.client.users.get(ownerID).tag;
|
||||
let author = this.client.users.resolve(ownerID).tag;
|
||||
|
||||
|
||||
// Send stats to the console
|
||||
console.log('===========[ READY ]===========');
|
||||
|
@ -40,7 +41,7 @@ class ReadyListener extends Listener {
|
|||
}, 1800000);
|
||||
|
||||
async function setStatus(client) {
|
||||
let owner = client.users.get(client.ownerID);
|
||||
let owner = client.users.resolve(client.ownerID);
|
||||
let random = Math.floor((Math.random() * 3));
|
||||
if (random == 0) { // Random "Watching" status taken from json
|
||||
console.log('Status type: \x1b[32mWatching\x1b[0m');
|
||||
|
@ -56,38 +57,38 @@ class ReadyListener extends Listener {
|
|||
status = status.replace('${prefix}', prefix[0]);
|
||||
|
||||
client.user.setActivity(`${status} | My prefix is: ${prefix[0]}`, { type: 'PLAYING' });
|
||||
} else if (random == 2 && owner.presence.activity != null) { // Bot owner status
|
||||
} else if (random == 2 && owner.presence.activities != null) { // Bot owner status
|
||||
console.log('Status type: \x1b[32mCopying owner status\x1b[0m');
|
||||
// Get elapsed time from when the activity started
|
||||
let diffMins = 0;
|
||||
if (owner.presence.activity.timestamps) {
|
||||
let diffMs = (new Date() - owner.presence.activity.timestamps.start);
|
||||
if (owner.presence.activities[0].timestamps) {
|
||||
let diffMs = (new Date() - owner.presence.activities[0].timestamps.start);
|
||||
diffMins = Math.round(((diffMs % 86400000) % 3600000) / 60000);
|
||||
}
|
||||
client.user.setActivity(`${owner.presence.activity.name}\nfor ${diffMins} minutes | My prefix is: ${prefix[0]}`, owner.presence.activity);
|
||||
client.user.setActivity(`${owner.presence.activities[0].name}\nfor ${diffMins} minutes | My prefix is: ${prefix[0]}`, owner.presence.activities[0]);
|
||||
} else { // Random user statuss
|
||||
console.log('Status type: \x1b[32mCopying random user status\x1b[0m');
|
||||
let randomuser = client.users.random();
|
||||
// If the random user have no activity or is a bot pick a new user
|
||||
while (randomuser.presence.activity == null || randomuser.presence.activity.type == 'CUSTOM_STATUS' || randomuser.bot) {
|
||||
while (randomuser.presence.activities[0] == null || randomuser.presence.activities[0].type == 'CUSTOM_STATUS' || randomuser.bot) {
|
||||
randomuser = client.users.random();
|
||||
}
|
||||
|
||||
// Get elapsed time from when the activity started
|
||||
let diffMins = 0;
|
||||
if (randomuser.presence.activity.timestamps) {
|
||||
let diffMs = (new Date() - randomuser.presence.activity.timestamps.start);
|
||||
if (randomuser.presence.activities[0].timestamps) {
|
||||
let diffMs = (new Date() - randomuser.presence.activities[0].timestamps.start);
|
||||
diffMins = Math.round(((diffMs % 86400000) % 3600000) / 60000);
|
||||
}
|
||||
|
||||
client.user.setActivity(`${randomuser.username} is ${randomuser.presence.activity.type.toLowerCase()} ${randomuser.presence.activity.name}\nfor ${diffMins} minutes | My prefix is: ${prefix[0]}`, { type: randomuser.presence.activity.type, url: randomuser.presence.activity.url, name: randomuser.presence.activity.name });
|
||||
client.user.setActivity(`${randomuser.username} is ${randomuser.presence.activities[0].type.toLowerCase()} ${randomuser.presence.activities[0].name}\nfor ${diffMins} minutes | My prefix is: ${prefix[0]}`, { type: randomuser.presence.activities[0].type, url: randomuser.presence.activities[0].url, name: randomuser.presence.activities[0].name });
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// If stats channel settings exist, send bot stats to it
|
||||
if (statsChannel) {
|
||||
const channel = this.client.channels.get(statsChannel);
|
||||
const channel = this.client.channels.resolve(statsChannel);
|
||||
channel.send(`Ready to serve in ${channelSize} channels on ${guildSize} servers, for a total of ${userSize} users.\nThere is ${commandSize} command loaded\n${this.client.readyAt}`);
|
||||
}
|
||||
|
||||
|
@ -100,8 +101,8 @@ class ReadyListener extends Listener {
|
|||
const requestHandler = (req, res) => {
|
||||
// Refresh some info
|
||||
commandSize = this.client.commandHandler.modules.size;
|
||||
guildSize = this.client.guilds.size;
|
||||
userSize = this.client.users.size;
|
||||
guildSize = this.client.guilds.cache.size;
|
||||
userSize = this.client.users.cache.size;
|
||||
profilePicture = this.client.user.displayAvatarURL();
|
||||
|
||||
let response = {
|
||||
|
|
362
package-lock.json
generated
362
package-lock.json
generated
|
@ -64,9 +64,9 @@
|
|||
}
|
||||
},
|
||||
"@discordjs/collection": {
|
||||
"version": "0.1.3",
|
||||
"resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.1.3.tgz",
|
||||
"integrity": "sha512-4ek19SmNcPI92942RkuBrZrBK8hg7nG+ae/skkNNDeOaUG+XvxTPkv/jPZVgXwVPDkU5EFsewsI+0n4dTwFvgA=="
|
||||
"version": "0.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.1.5.tgz",
|
||||
"integrity": "sha512-CU1q0UXQUpFNzNB7gufgoisDHP7n+T3tkqTsp3MNUkVJ5+hS3BCvME8uCXAUFlz+6T2FbTCu75A+yQ7HMKqRKw=="
|
||||
},
|
||||
"@google-cloud/text-to-speech": {
|
||||
"version": "0.4.0",
|
||||
|
@ -618,6 +618,11 @@
|
|||
"resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.0.tgz",
|
||||
"integrity": "sha512-1w52Nyx4Gq47uuu0EVcsHBxZFJgurQ+rTKS3qMHxR1GY2T8c2AJYd6vZoZ9q1rupaDjU0yT+Jc2XTyXkjeMA+Q=="
|
||||
},
|
||||
"@types/mime-types": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/mime-types/-/mime-types-2.1.0.tgz",
|
||||
"integrity": "sha1-nKUs2jY/aZxpRmwqbM2q2RPqenM="
|
||||
},
|
||||
"@types/node": {
|
||||
"version": "9.6.48",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.48.tgz",
|
||||
|
@ -797,32 +802,33 @@
|
|||
"integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4="
|
||||
},
|
||||
"array-includes": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.0.tgz",
|
||||
"integrity": "sha512-ONOEQoKrvXPKk7Su92Co0YMqYO32FfqJTzkKU9u2UpIXyYZIzLSvpdg4AwvSw4mSUW0czu6inK+zby6Oj6gDjQ==",
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz",
|
||||
"integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"define-properties": "^1.1.3",
|
||||
"es-abstract": "^1.17.0-next.0"
|
||||
"es-abstract": "^1.17.0",
|
||||
"is-string": "^1.0.5"
|
||||
},
|
||||
"dependencies": {
|
||||
"es-abstract": {
|
||||
"version": "1.17.0-next.1",
|
||||
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.0-next.1.tgz",
|
||||
"integrity": "sha512-7MmGr03N7Rnuid6+wyhD9sHNE2n4tFSwExnU2lQl3lIo2ShXWGePY80zYaoMOmILWv57H0amMjZGHNzzGG70Rw==",
|
||||
"version": "1.17.4",
|
||||
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz",
|
||||
"integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"es-to-primitive": "^1.2.1",
|
||||
"function-bind": "^1.1.1",
|
||||
"has": "^1.0.3",
|
||||
"has-symbols": "^1.0.1",
|
||||
"is-callable": "^1.1.4",
|
||||
"is-regex": "^1.0.4",
|
||||
"is-callable": "^1.1.5",
|
||||
"is-regex": "^1.0.5",
|
||||
"object-inspect": "^1.7.0",
|
||||
"object-keys": "^1.1.1",
|
||||
"object.assign": "^4.1.0",
|
||||
"string.prototype.trimleft": "^2.1.0",
|
||||
"string.prototype.trimright": "^2.1.0"
|
||||
"string.prototype.trimleft": "^2.1.1",
|
||||
"string.prototype.trimright": "^2.1.1"
|
||||
}
|
||||
},
|
||||
"es-to-primitive": {
|
||||
|
@ -841,6 +847,21 @@
|
|||
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
|
||||
"integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
|
||||
"dev": true
|
||||
},
|
||||
"is-callable": {
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
|
||||
"integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
|
||||
"dev": true
|
||||
},
|
||||
"is-regex": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
|
||||
"integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"has": "^1.0.3"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -878,22 +899,22 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"es-abstract": {
|
||||
"version": "1.17.0-next.1",
|
||||
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.0-next.1.tgz",
|
||||
"integrity": "sha512-7MmGr03N7Rnuid6+wyhD9sHNE2n4tFSwExnU2lQl3lIo2ShXWGePY80zYaoMOmILWv57H0amMjZGHNzzGG70Rw==",
|
||||
"version": "1.17.4",
|
||||
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz",
|
||||
"integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"es-to-primitive": "^1.2.1",
|
||||
"function-bind": "^1.1.1",
|
||||
"has": "^1.0.3",
|
||||
"has-symbols": "^1.0.1",
|
||||
"is-callable": "^1.1.4",
|
||||
"is-regex": "^1.0.4",
|
||||
"is-callable": "^1.1.5",
|
||||
"is-regex": "^1.0.5",
|
||||
"object-inspect": "^1.7.0",
|
||||
"object-keys": "^1.1.1",
|
||||
"object.assign": "^4.1.0",
|
||||
"string.prototype.trimleft": "^2.1.0",
|
||||
"string.prototype.trimright": "^2.1.0"
|
||||
"string.prototype.trimleft": "^2.1.1",
|
||||
"string.prototype.trimright": "^2.1.1"
|
||||
}
|
||||
},
|
||||
"es-to-primitive": {
|
||||
|
@ -912,6 +933,21 @@
|
|||
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
|
||||
"integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
|
||||
"dev": true
|
||||
},
|
||||
"is-callable": {
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
|
||||
"integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
|
||||
"dev": true
|
||||
},
|
||||
"is-regex": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
|
||||
"integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"has": "^1.0.3"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -1270,6 +1306,33 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"capture-website": {
|
||||
"version": "0.8.1",
|
||||
"resolved": "https://registry.npmjs.org/capture-website/-/capture-website-0.8.1.tgz",
|
||||
"integrity": "sha512-2fcVq/Z2epiZld5sSvMqw9vFo2OxHrC2ryqRB0Nwh61Q72W+eBd/4M+StSqBGSErRlP1N/FkBpBT6IUtDr8MZQ==",
|
||||
"requires": {
|
||||
"file-url": "^3.0.0",
|
||||
"puppeteer": "^2.0.0",
|
||||
"tough-cookie": "^3.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"ip-regex": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz",
|
||||
"integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk="
|
||||
},
|
||||
"tough-cookie": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz",
|
||||
"integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==",
|
||||
"requires": {
|
||||
"ip-regex": "^2.1.0",
|
||||
"psl": "^1.1.28",
|
||||
"punycode": "^2.1.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"cardinal": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/cardinal/-/cardinal-1.0.0.tgz",
|
||||
|
@ -2097,21 +2160,33 @@
|
|||
}
|
||||
},
|
||||
"discord-akairo": {
|
||||
"version": "github:1Computer1/discord-akairo#563d57b428ab7dfee3cdedf04834f6d3d606481e",
|
||||
"version": "github:1Computer1/discord-akairo#10cef7efc7a329cb1e0d96d73ccb4b83bc0afa72",
|
||||
"from": "github:1Computer1/discord-akairo#master"
|
||||
},
|
||||
"discord.js": {
|
||||
"version": "github:discordjs/discord.js#45b89710008d207da22000dcb633c0c0236db17e",
|
||||
"version": "github:discordjs/discord.js#bfcd4befc9a6d56c4c7db5c736bd7f31524f097c",
|
||||
"from": "github:discordjs/discord.js#master",
|
||||
"requires": {
|
||||
"@discordjs/collection": "^0.1.1",
|
||||
"@discordjs/collection": "^0.1.5",
|
||||
"abort-controller": "^3.0.0",
|
||||
"form-data": "^2.3.3",
|
||||
"node-fetch": "^2.3.0",
|
||||
"prism-media": "^1.0.0",
|
||||
"form-data": "^3.0.0",
|
||||
"node-fetch": "^2.6.0",
|
||||
"prism-media": "^1.2.0",
|
||||
"setimmediate": "^1.0.5",
|
||||
"tweetnacl": "^1.0.1",
|
||||
"ws": "^7.2.0"
|
||||
"tweetnacl": "^1.0.3",
|
||||
"ws": "^7.2.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"form-data": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz",
|
||||
"integrity": "sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==",
|
||||
"requires": {
|
||||
"asynckit": "^0.4.0",
|
||||
"combined-stream": "^1.0.8",
|
||||
"mime-types": "^2.1.12"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"doctrine": {
|
||||
|
@ -2467,13 +2542,13 @@
|
|||
"dev": true
|
||||
},
|
||||
"eslint-import-resolver-node": {
|
||||
"version": "0.3.2",
|
||||
"resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz",
|
||||
"integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==",
|
||||
"version": "0.3.3",
|
||||
"resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz",
|
||||
"integrity": "sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"debug": "^2.6.9",
|
||||
"resolve": "^1.5.0"
|
||||
"resolve": "^1.13.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"debug": {
|
||||
|
@ -2490,13 +2565,22 @@
|
|||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
|
||||
"dev": true
|
||||
},
|
||||
"resolve": {
|
||||
"version": "1.15.1",
|
||||
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz",
|
||||
"integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"path-parse": "^1.0.6"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"eslint-module-utils": {
|
||||
"version": "2.5.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.5.0.tgz",
|
||||
"integrity": "sha512-kCo8pZaNz2dsAW7nCUjuVoI11EBXXpIzfNxmaoLhXoRDOnqXLC4iSGVRdZPhOitfbdEfMEfKOiENaK6wDPZEGw==",
|
||||
"version": "2.5.2",
|
||||
"resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.5.2.tgz",
|
||||
"integrity": "sha512-LGScZ/JSlqGKiT8OC+cYRxseMjyqt6QO54nl281CK93unD89ijSeRV6An8Ci/2nvWVKe8K/Tqdm75RQoIOCr+Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"debug": "^2.6.9",
|
||||
|
@ -2531,9 +2615,9 @@
|
|||
}
|
||||
},
|
||||
"eslint-plugin-import": {
|
||||
"version": "2.19.1",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.19.1.tgz",
|
||||
"integrity": "sha512-x68131aKoCZlCae7rDXKSAQmbT5DQuManyXo2sK6fJJ0aK5CWAkv6A6HJZGgqC8IhjQxYPgo6/IY4Oz8AFsbBw==",
|
||||
"version": "2.20.1",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.20.1.tgz",
|
||||
"integrity": "sha512-qQHgFOTjguR+LnYRoToeZWT62XM55MBVXObHM6SKFd1VzDcX/vqT1kAz8ssqigh5eMj8qXcRoXXGZpPP6RfdCw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"array-includes": "^3.0.3",
|
||||
|
@ -2633,9 +2717,9 @@
|
|||
}
|
||||
},
|
||||
"resolve": {
|
||||
"version": "1.13.1",
|
||||
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.13.1.tgz",
|
||||
"integrity": "sha512-CxqObCX8K8YtAhOBRg+lrcdn+LK+WYOS8tSjqSFbjtrI5PnS63QPhZl4+yKfrU9tdsbMu9Anr/amegT87M9Z6w==",
|
||||
"version": "1.15.1",
|
||||
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz",
|
||||
"integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"path-parse": "^1.0.6"
|
||||
|
@ -2823,6 +2907,48 @@
|
|||
"tmp": "^0.0.33"
|
||||
}
|
||||
},
|
||||
"extract-zip": {
|
||||
"version": "1.6.7",
|
||||
"resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz",
|
||||
"integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=",
|
||||
"requires": {
|
||||
"concat-stream": "1.6.2",
|
||||
"debug": "2.6.9",
|
||||
"mkdirp": "0.5.1",
|
||||
"yauzl": "2.4.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "2.6.9",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
||||
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
||||
"requires": {
|
||||
"ms": "2.0.0"
|
||||
}
|
||||
},
|
||||
"fd-slicer": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz",
|
||||
"integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=",
|
||||
"requires": {
|
||||
"pend": "~1.2.0"
|
||||
}
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
|
||||
},
|
||||
"yauzl": {
|
||||
"version": "2.4.1",
|
||||
"resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz",
|
||||
"integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=",
|
||||
"requires": {
|
||||
"fd-slicer": "~1.0.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"extsprintf": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
|
||||
|
@ -2905,6 +3031,11 @@
|
|||
"resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
|
||||
"integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="
|
||||
},
|
||||
"file-url": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/file-url/-/file-url-3.0.0.tgz",
|
||||
"integrity": "sha512-g872QGsHexznxkIAdK8UiZRe7SkE6kvylShU4Nsj8NvfvZag7S0QuQ4IgvPDkk75HxgjIVDwycFTDAgIiO4nDA=="
|
||||
},
|
||||
"find-replace": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz",
|
||||
|
@ -4260,6 +4391,12 @@
|
|||
"resolved": "https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.4.tgz",
|
||||
"integrity": "sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw=="
|
||||
},
|
||||
"is-string": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz",
|
||||
"integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==",
|
||||
"dev": true
|
||||
},
|
||||
"is-subset": {
|
||||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz",
|
||||
|
@ -4796,9 +4933,9 @@
|
|||
"integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg=="
|
||||
},
|
||||
"moment-timezone": {
|
||||
"version": "0.5.27",
|
||||
"resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.27.tgz",
|
||||
"integrity": "sha512-EIKQs7h5sAsjhPCqN6ggx6cEbs94GK050254TIJySD1bzoM5JTYDwAU1IoVOeTOL6Gm27kYJ51/uuvq1kIlrbw==",
|
||||
"version": "0.5.28",
|
||||
"resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.28.tgz",
|
||||
"integrity": "sha512-TDJkZvAyKIVWg5EtVqRzU97w0Rb0YVbfpqyjgu6GwXCAohVRqwZjf4fOzDE6p1Ch98Sro/8hQQi65WDXW5STPw==",
|
||||
"requires": {
|
||||
"moment": ">= 2.9.0"
|
||||
}
|
||||
|
@ -5164,22 +5301,22 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"es-abstract": {
|
||||
"version": "1.17.0-next.1",
|
||||
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.0-next.1.tgz",
|
||||
"integrity": "sha512-7MmGr03N7Rnuid6+wyhD9sHNE2n4tFSwExnU2lQl3lIo2ShXWGePY80zYaoMOmILWv57H0amMjZGHNzzGG70Rw==",
|
||||
"version": "1.17.4",
|
||||
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz",
|
||||
"integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"es-to-primitive": "^1.2.1",
|
||||
"function-bind": "^1.1.1",
|
||||
"has": "^1.0.3",
|
||||
"has-symbols": "^1.0.1",
|
||||
"is-callable": "^1.1.4",
|
||||
"is-regex": "^1.0.4",
|
||||
"is-callable": "^1.1.5",
|
||||
"is-regex": "^1.0.5",
|
||||
"object-inspect": "^1.7.0",
|
||||
"object-keys": "^1.1.1",
|
||||
"object.assign": "^4.1.0",
|
||||
"string.prototype.trimleft": "^2.1.0",
|
||||
"string.prototype.trimright": "^2.1.0"
|
||||
"string.prototype.trimleft": "^2.1.1",
|
||||
"string.prototype.trimright": "^2.1.1"
|
||||
}
|
||||
},
|
||||
"es-to-primitive": {
|
||||
|
@ -5198,6 +5335,21 @@
|
|||
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
|
||||
"integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
|
||||
"dev": true
|
||||
},
|
||||
"is-callable": {
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
|
||||
"integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
|
||||
"dev": true
|
||||
},
|
||||
"is-regex": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
|
||||
"integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"has": "^1.0.3"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -5582,9 +5734,9 @@
|
|||
"integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc="
|
||||
},
|
||||
"prism-media": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.1.0.tgz",
|
||||
"integrity": "sha512-W+oxjRyjtd7hw3pefNZuc7YEZ6VICORJvVNfCPs0+7CsJ43CqMjGAYGjPL3hQ82vw03EVra+CiX4zisqOBUUGw=="
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.2.1.tgz",
|
||||
"integrity": "sha512-R3EbKwJiYlTvGwcG1DpUt+06DsxOGS5W4AMEHT7oVOjG93MjpdhGX1whHyjnqknylLMupKAsKMEXcTNRbPe6Vw=="
|
||||
},
|
||||
"process": {
|
||||
"version": "0.5.2",
|
||||
|
@ -5599,8 +5751,7 @@
|
|||
"progress": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
|
||||
"integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
|
||||
"dev": true
|
||||
"integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA=="
|
||||
},
|
||||
"proto-list": {
|
||||
"version": "1.2.4",
|
||||
|
@ -5639,6 +5790,11 @@
|
|||
"resolved": "https://registry.npmjs.org/protocols/-/protocols-1.4.7.tgz",
|
||||
"integrity": "sha512-Fx65lf9/YDn3hUX08XUc0J8rSux36rEsyiv21ZGUC1mOyeM3lTRpZLcrm8aAolzS4itwVfm7TAPyxC2E5zd6xg=="
|
||||
},
|
||||
"proxy-from-env": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz",
|
||||
"integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4="
|
||||
},
|
||||
"pseudomap": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
|
||||
|
@ -5663,6 +5819,68 @@
|
|||
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
|
||||
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
|
||||
},
|
||||
"puppeteer": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-2.1.1.tgz",
|
||||
"integrity": "sha512-LWzaDVQkk1EPiuYeTOj+CZRIjda4k2s5w4MK4xoH2+kgWV/SDlkYHmxatDdtYrciHUKSXTsGgPgPP8ILVdBsxg==",
|
||||
"requires": {
|
||||
"@types/mime-types": "^2.1.0",
|
||||
"debug": "^4.1.0",
|
||||
"extract-zip": "^1.6.6",
|
||||
"https-proxy-agent": "^4.0.0",
|
||||
"mime": "^2.0.3",
|
||||
"mime-types": "^2.1.25",
|
||||
"progress": "^2.0.1",
|
||||
"proxy-from-env": "^1.0.0",
|
||||
"rimraf": "^2.6.1",
|
||||
"ws": "^6.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"agent-base": {
|
||||
"version": "5.1.1",
|
||||
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz",
|
||||
"integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g=="
|
||||
},
|
||||
"debug": {
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
|
||||
"integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
|
||||
"requires": {
|
||||
"ms": "^2.1.1"
|
||||
}
|
||||
},
|
||||
"https-proxy-agent": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz",
|
||||
"integrity": "sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==",
|
||||
"requires": {
|
||||
"agent-base": "5",
|
||||
"debug": "4"
|
||||
}
|
||||
},
|
||||
"mime-db": {
|
||||
"version": "1.43.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz",
|
||||
"integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ=="
|
||||
},
|
||||
"mime-types": {
|
||||
"version": "2.1.26",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz",
|
||||
"integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==",
|
||||
"requires": {
|
||||
"mime-db": "1.43.0"
|
||||
}
|
||||
},
|
||||
"ws": {
|
||||
"version": "6.2.1",
|
||||
"resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz",
|
||||
"integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==",
|
||||
"requires": {
|
||||
"async-limiter": "~1.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"q": {
|
||||
"version": "1.5.1",
|
||||
"resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
|
||||
|
@ -6156,9 +6374,9 @@
|
|||
"integrity": "sha1-1WgS4cAXpuTnw+Ojeh2m143TyT4="
|
||||
},
|
||||
"sequelize": {
|
||||
"version": "5.21.3",
|
||||
"resolved": "https://registry.npmjs.org/sequelize/-/sequelize-5.21.3.tgz",
|
||||
"integrity": "sha512-ptdeAxwTY0zbj7AK8m+SH3z52uHVrt/qmOTSIGo/kyfnSp3h5HeKlywkJf5GEk09kuRrPHfWARVSXH1W3IGU7g==",
|
||||
"version": "5.21.5",
|
||||
"resolved": "https://registry.npmjs.org/sequelize/-/sequelize-5.21.5.tgz",
|
||||
"integrity": "sha512-n9hR5K4uQGmBGK/Y/iqewCeSFmKVsd0TRnh0tfoLoAkmXbKC4tpeK96RhKs7d+TTMtrJlgt2TNLVBaAxEwC4iw==",
|
||||
"requires": {
|
||||
"bluebird": "^3.5.0",
|
||||
"cls-bluebird": "^2.1.0",
|
||||
|
@ -6191,9 +6409,9 @@
|
|||
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
|
||||
},
|
||||
"uuid": {
|
||||
"version": "3.3.3",
|
||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz",
|
||||
"integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ=="
|
||||
"version": "3.4.0",
|
||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
|
||||
"integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -6467,9 +6685,9 @@
|
|||
}
|
||||
},
|
||||
"string.prototype.trimleft": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz",
|
||||
"integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==",
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz",
|
||||
"integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"define-properties": "^1.1.3",
|
||||
|
@ -6477,9 +6695,9 @@
|
|||
}
|
||||
},
|
||||
"string.prototype.trimright": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz",
|
||||
"integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==",
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz",
|
||||
"integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"define-properties": "^1.1.3",
|
||||
|
@ -6896,9 +7114,9 @@
|
|||
}
|
||||
},
|
||||
"tweetnacl": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.1.tgz",
|
||||
"integrity": "sha512-kcoMoKTPYnoeS50tzoqjPY3Uv9axeuuFAZY9M/9zFnhoVvRfxz9K29IMPD7jGmt2c8SW7i3gT9WqDl2+nV7p4A=="
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz",
|
||||
"integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw=="
|
||||
},
|
||||
"twit": {
|
||||
"version": "2.2.11",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "hahayes",
|
||||
"version": "2.1.0",
|
||||
"version": "3.0.0",
|
||||
"main": "index.js",
|
||||
"dependencies": {
|
||||
"4chan-boards": "^2.0.1",
|
||||
|
@ -8,6 +8,7 @@
|
|||
"asciify-image": "^0.1.5",
|
||||
"bufferutil": "^4.0.1",
|
||||
"canvas": "^2.6.0",
|
||||
"capture-website": "^0.8.1",
|
||||
"console-stamp": "^0.2.9",
|
||||
"discord-akairo": "github:1Computer1/discord-akairo#master",
|
||||
"discord.js": "github:discordjs/discord.js#master",
|
||||
|
@ -24,7 +25,7 @@
|
|||
"mysql2": "^1.7.0",
|
||||
"node-fetch": "^2.6.0",
|
||||
"node-opus": "^0.3.3",
|
||||
"sequelize": "^5.21.1",
|
||||
"sequelize": "^5.21.5",
|
||||
"sqlite3": "^4.1.0",
|
||||
"superagent": "^4.1.0",
|
||||
"turndown": "^5.0.3",
|
||||
|
@ -38,7 +39,7 @@
|
|||
"devDependencies": {
|
||||
"eslint": "^5.16.0",
|
||||
"eslint-config-standard": "^12.0.0",
|
||||
"eslint-plugin-import": "^2.18.2",
|
||||
"eslint-plugin-import": "^2.20.1",
|
||||
"eslint-plugin-node": "^8.0.1",
|
||||
"eslint-plugin-promise": "^4.2.1",
|
||||
"eslint-plugin-standard": "^4.0.1"
|
||||
|
|
4
rand.js
4
rand.js
|
@ -20,8 +20,8 @@ exports.random = function (text, message) {
|
|||
do {
|
||||
if (message) {
|
||||
text = text.replace(/\[author\]/, message.author.username);
|
||||
text = text.replace(/\[member\]/g, message.guild.members.random().user.username);
|
||||
text = text.replace(/\[memberRand\]/, message.guild.members.random().user.username);
|
||||
text = text.replace(/\[member\]/g, message.guild.members.cache.random().user.username);
|
||||
text = text.replace(/\[memberRand\]/, message.guild.members.cache.random().user.username);
|
||||
}
|
||||
text = text.replace(/\[number\]/, Math.floor((Math.random() * 9) + 1));
|
||||
text = text.replace(/\[kick\]/, ' ');
|
||||
|
|
Loading…
Reference in a new issue