Cache mgnr, bl functional+bugs, bl cache

master
Kit Kasune 4 years ago
parent 9b0029cf37
commit 41628dfd21
  1. 6
      bot.js
  2. 23
      commands/blacklist.js
  3. 6
      events/message.js
  4. 6
      events/ready.js
  5. 16
      util/cache.js
  6. 17
      util/cache/bl.js

@ -12,7 +12,11 @@ client.misc = {
startup: new Date(), startup: new Date(),
startupNoConnect: null, startupNoConnect: null,
cache: { cache: {
ar: new Map() ar: new Map(),
bl: {
guild: [],
user: []
}
} }
}; };

@ -7,11 +7,10 @@ module.exports = {
aliases: ['bl'], aliases: ['bl'],
help: "Disables a user from using Natsuki ( Usage: {{p}}blacklist <user_id> <add || del> )", help: "Disables a user from using Natsuki ( Usage: {{p}}blacklist <user_id> <add || del> )",
async execute(message, msg, args, cmd, prefix, mention, client) { async execute(message, msg, args, cmd, prefix, mention, client) {
let tu = await UserData.findOne({uid: message.author.id});
let tu = await UserData.findOne({ uid: message.author.id });
if (['g', 'guild'].includes(args[0].toLowerCase())) { if (['g', 'guild'].includes(args[0].toLowerCase())) {
if(!tu || !tu.admin) { return message.channel.send('Sorry... you have to be a Natsuki Admin to do this!');} if (!tu || !tu.admin) {return message.channel.send('Sorry... you have to be a Natsuki Admin to do this!');}
let guild = !args[1].match(/\d+/) ? message.guild ? message.guild : null : client.guilds.cache.has(args[1]) ? client.guilds.cache.get(args[1]) : null; let guild = !args[1].match(/\d+/) ? message.guild ? message.guild : null : client.guilds.cache.has(args[1]) ? client.guilds.cache.get(args[1]) : null;
if (!guild) {return message.channel.send("You must provide a guild ID or be in a guild that you wish to blacklist!");} if (!guild) {return message.channel.send("You must provide a guild ID or be in a guild that you wish to blacklist!");}
@ -21,30 +20,28 @@ module.exports = {
if (args[1].match(/\d+/)) {args.shift();} if (args[1].match(/\d+/)) {args.shift();}
if (!args[1]) {return message.channel.send("You must specify whether to `add` or `del` a guild's blacklist!");} if (!args[1]) {return message.channel.send("You must specify whether to `add` or `del` a guild's blacklist!");}
let tu = await UserData.findOne({uid: message.author.id});
if (!tu || !tu.admin) {return message.reply("You must be a Natsuki Admin to blacklist!");}
if (message.guild.id === "762707532417335296") {return message.reply("You can't blacklist my support server!");} if (message.guild.id === "762707532417335296") {return message.reply("You can't blacklist my support server!");}
if (['a', 'add'].includes(args[1].toLowerCase())) { if (['a', 'add'].includes(args[1].toLowerCase())) {
if (tg.blacklisted) {return message.reply("That guild is already blacklisted!");} if (tg.blacklisted) {return message.reply("That guild is already blacklisted!");}
tg.blacklisted = true; tg.blacklisted = true;
tg.save(); tg.save();
client.misc.cache.bl.guild.push(message.guild.id);
return message.channel.send("Gotcha! This server will not be able to use my commands!"); return message.channel.send("Gotcha! This server will not be able to use my commands!");
} }
if (['r', 'rem', 'remove', 'd', 'del', 'delete'].includes(args[1].toLowerCase())) { if (['r', 'rem', 'remove', 'd', 'del', 'delete'].includes(args[1].toLowerCase())) {
if (tg.blacklisted) {return message.reply("That guild isn't blacklisted in the first place!");} if (!tg.blacklisted) {return message.reply("That guild isn't blacklisted in the first place!");}
tg.blacklisted = false; tg.blacklisted = false;
tg.save(); tg.save();
delete client.misc.cache.bl.guild[client.misc.cache.bl.guild.indexOf(message.guild.id)];
return message.channel.send("I have graced your merciful request; this server can once again make use of my wonderous abilities!"); return message.channel.send("I have graced your merciful request; this server can once again make use of my wonderous abilities!");
} }
return message.channel.send("Valid args: `[guildID] <add|del>`"); return message.channel.send("Valid args: `[guildID] <add|del>`");
} }
if (['u', 'user'].includes(args[0].toLowerCase())) { if (['u', 'user'].includes(args[0].toLowerCase())) {
args.shift(); args.shift();
if (!args[1]) {return message.channel.send("You must specify whether to `add` or `del` a user's blacklist!");} if (!args[1]) {return message.channel.send("You must specify whether to `add` or `del` a user's blacklist!");}
@ -55,7 +52,7 @@ module.exports = {
if (bu.developer) {message.channel.send("Developers cannot be blacklisted!"); return null;} if (bu.developer) {message.channel.send("Developers cannot be blacklisted!"); return null;}
} }
if(['a', 'add'].includes(args[1].toLowerCase())) { if (['a', 'add'].includes(args[1].toLowerCase())) {
let blacklistUser = args[0].match(/^<@(?:!?)(?:\d+)>$/) && mention && client.users.cache.has(mention.id) ? mention.id : client.users.cache.has(args[0]) ? client.users.cache.get(args[0]).id : null; let blacklistUser = args[0].match(/^<@(?:!?)(?:\d+)>$/) && mention && client.users.cache.has(mention.id) ? mention.id : client.users.cache.has(args[0]) ? client.users.cache.get(args[0]).id : null;
if (!blacklistUser) {return message.reply("You must specify a user to blacklist!");} if (!blacklistUser) {return message.reply("You must specify a user to blacklist!");}
let usersData = await UserData.findOne( { uid: blacklistUser } ) || new UserData({uid: blacklistUser}); let usersData = await UserData.findOne( { uid: blacklistUser } ) || new UserData({uid: blacklistUser});
@ -65,10 +62,12 @@ module.exports = {
if (usersData.blacklisted === true) {return message.reply('they\'re already blacklisted :eyes:');} if (usersData.blacklisted === true) {return message.reply('they\'re already blacklisted :eyes:');}
await UserData.findOneAndUpdate({ uid: blacklistUser }, { blacklisted: true }.catch(() => {})); await UserData.findOneAndUpdate({ uid: blacklistUser }, { blacklisted: true }.catch(() => {}));
client.misc.cache.bl.user.push(blacklistUser);
return message.channel.send(`Another one bites the dust! **${blacklistUser.user.tag}** has been blacklisted!`) return message.channel.send(`Another one bites the dust! **${blacklistUser.user.tag}** has been blacklisted!`)
} }
if(['r', 'rem', 'remove', 'd', 'del', 'delete'].includes(args[1].toLowerCase())) { if (['r', 'rem', 'remove', 'd', 'del', 'delete'].includes(args[1].toLowerCase())) {
let blacklistedUser = args[0].match(/^<@(?:!?)(?:\d+)>$/) && mention && client.users.cache.has(mention.id) ? mention.id : client.users.cache.has(args[0]) ? client.users.cache.get(args[0]).id : null; let blacklistedUser = args[0].match(/^<@(?:!?)(?:\d+)>$/) && mention && client.users.cache.has(mention.id) ? mention.id : client.users.cache.has(args[0]) ? client.users.cache.get(args[0]).id : null;
if (!blacklistedUser) { return message.reply("You need to specify who you're letting free..." );} if (!blacklistedUser) { return message.reply("You need to specify who you're letting free..." );}
let userData = await UserData.findOne( { uid: blacklistedUser } ) || new UserData({uid: blacklistedUser}); let userData = await UserData.findOne( { uid: blacklistedUser } ) || new UserData({uid: blacklistedUser});
@ -78,11 +77,11 @@ module.exports = {
if(userData.blacklisted === false) {return message.reply('hate to break it you... they\'re not even blacklisted!');} if(userData.blacklisted === false) {return message.reply('hate to break it you... they\'re not even blacklisted!');}
await UserData.findOneAndUpdate({ uid: blacklistedUser }, { blacklisted: false }.catch(() => {})); await UserData.findOneAndUpdate({ uid: blacklistedUser }, { blacklisted: false }.catch(() => {}));
delete client.misc.cache.bl.user[client.misc.cache.bl.user.indexOf(blacklistedUser)];
return message.channel.send(`Alright, there you go, I unblacklisted **${blacklistedUser.user.tag}**`) return message.channel.send(`Alright, there you go, I unblacklisted **${blacklistedUser.user.tag}**`)
} }
return message.channel.send("Valid args: `<userID|@user> <add|del>`"); return message.channel.send("Valid args: `<userID|@user> <add|del>`");
} }
}}; }};

@ -51,6 +51,12 @@ module.exports = async (client, message) => {
try { try {
if (msg.startsWith(prefix) || msg.startsWith(`<@${client.user.id}>`) || msg.startsWith(`<@!${client.user.id}>`)) { if (msg.startsWith(prefix) || msg.startsWith(`<@${client.user.id}>`) || msg.startsWith(`<@!${client.user.id}>`)) {
let command = client.commands.get(cmd) || client.commands.get(client.aliases.get(cmd)); let command = client.commands.get(cmd) || client.commands.get(client.aliases.get(cmd));
if (command && command.name !== "blacklist") {
if (client.misc.cache.bl.guild.includes(message.guild.id)) {return message.channel.send("Your server has been blacklisted from using my commands! Shame, tsk tsk");}
if (client.misc.cache.bl.user.includes(message.author.id)) {return message.channel.send("You've been blacklisted from using my commands! Now what'd ya do to deserve that??");}
}
if (!command) {let trigger; for (trigger of client.responses.triggers) {if (await trigger[1](message, msg, args, cmd, prefix, mention, client)) {await client.responses.commands.get(trigger[0]).execute(message, msg, args, cmd, prefix, mention, client); break;}} return;} if (!command) {let trigger; for (trigger of client.responses.triggers) {if (await trigger[1](message, msg, args, cmd, prefix, mention, client)) {await client.responses.commands.get(trigger[0]).execute(message, msg, args, cmd, prefix, mention, client); break;}} return;}
message.channel.startTyping(); message.channel.startTyping();
await wait(800); await wait(800);

@ -71,11 +71,7 @@ module.exports = async client => {
setInterval(() => {setPL(); siftStatuses(client, null);}, 120000); setInterval(() => {setPL(); siftStatuses(client, null);}, 120000);
console.log(''); await require('../util/cache')(client);
let ora_arCache = ora("Caching ARs...").start();
await require('../util/cache/ar')(client);
ora_arCache.stop(); ora_arCache.clear();
console.log(`${chalk.gray('[PROC]')} >> ${chalk.blueBright(`Cached`)} ${chalk.white(`${client.misc.cache.ar.size}`)} ${chalk.blueBright(`guilds with auto responses.`)}`);
let botData = await BotDataSchema.findOne({finder: 'lel'}) let botData = await BotDataSchema.findOne({finder: 'lel'})
? await BotDataSchema.findOne({finder: 'lel'}) ? await BotDataSchema.findOne({finder: 'lel'})

@ -0,0 +1,16 @@
const ora = require('ora');
const chalk = require('chalk');
module.exports = async (client) => {
console.log('');
let ora_arCache = ora("Caching ARs...").start();
await require('./cache/ar')(client);
ora_arCache.stop(); ora_arCache.clear();
console.log(`${chalk.gray('[PROC]')} >> ${chalk.blueBright(`Cached`)} ${chalk.white(`${client.misc.cache.ar.size}`)} ${chalk.blueBright(`guilds with auto responses.`)}`);
let ora_blCache = ora("Caching Blacklists...").start();
await require('./cache/bl')(client);
ora_blCache.stop(); ora_blCache.clear();
console.log(`${chalk.gray('[PROC]')} >> ${chalk.blueBright(`Cached`)} ${chalk.white(`${client.misc.cache.bl.guild.length}`)} ${chalk.blueBright(`guild blacklists`)}`);
console.log(`${chalk.gray('[PROC]')} >> ${chalk.blueBright(`Cached`)} ${chalk.white(`${client.misc.cache.bl.user.length}`)} ${chalk.blueBright(`user blacklists`)}`);
};

17
util/cache/bl.js vendored

@ -0,0 +1,17 @@
const GuildData = require('../../models/guild');
const UserData = require('../../models/user');
module.exports = async (client) => {
client.misc.cache.bl = {
guild: [],
user: []
};
for await (const guild of GuildData.find()) {
if (guild.blacklisted) {client.misc.cache.bl.guild.push(guild.gid);}
}
for await (const user of UserData.find()) {
if (user.blackisted) {client.misc.cache.bl.user.push(user.uid);}
}
};
Loading…
Cancel
Save