From c41b19858ef6833f78a8bdc0c5fd957fe44e6c55 Mon Sep 17 00:00:00 2001 From: WubzyGD Date: Sat, 27 Feb 2021 18:47:24 -0700 Subject: [PATCH] sync --- bot.js | 2 +- commands/dev/reload.js | 4 ++-- commands/fun/bite.js | 47 ++++++++++++++++++++++++++++++++++++++++++ commands/misc/ar.js | 2 +- commands/misc/help.js | 5 ++--- events/message.js | 2 ++ 6 files changed, 55 insertions(+), 7 deletions(-) create mode 100644 commands/fun/bite.js diff --git a/bot.js b/bot.js index 3d8c4a0..b65f609 100644 --- a/bot.js +++ b/bot.js @@ -6,7 +6,7 @@ const ora = require('ora'); const mongoose = require('mongoose'); client.misc = { - savers: ['497598953206841375'], + savers: ['497598953206841375', '480535078150340609'], activeDMs: new Discord.Collection(), statusPings: new Discord.Collection(), startup: new Date(), diff --git a/commands/dev/reload.js b/commands/dev/reload.js index b6c23fb..fd03543 100644 --- a/commands/dev/reload.js +++ b/commands/dev/reload.js @@ -43,7 +43,7 @@ module.exports = { let eventFilter = fs.readdirSync('./events/').filter(x => x.endsWith('.js')); for (let file of eventFilter) { let evtName = file.split('.')[0]; - if (Object.keys(require.cache).includes(require.resolve('../events/' + file))) {delete require.cache[require.resolve('../events/' + file)];} + if (Object.keys(require.cache).includes(require.resolve('../../events/' + file))) {delete require.cache[require.resolve('../../events/' + file)];} let evt = require('../events/' + file); client.removeAllListeners(evtName); client.on(evtName, evt.bind(null, client)); @@ -55,7 +55,7 @@ module.exports = { let responses = fs.readdirSync('./responses').filter(file => file.endsWith('.js')); client.responses.triggers = []; for (let responsef of responses) { - if (Object.keys(require.cache).includes(require.resolve(`../responses/${responsef}`))) {delete require.cache[require.resolve(`../responses/${responsef}`)];} + if (Object.keys(require.cache).includes(require.resolve(`../responses/${responsef}`))) {delete require.cache[require.resolve(`../../responses/${responsef}`)];} let response = require(`../responses/${responsef}`); client.responses.triggers.push([response.name, response.condition]); client.responses.commands.set(response.name, response); diff --git a/commands/fun/bite.js b/commands/fun/bite.js new file mode 100644 index 0000000..c48c357 --- /dev/null +++ b/commands/fun/bite.js @@ -0,0 +1,47 @@ +const Discord = require('discord.js'); + +const Saves = require('../../models/saves'); +const UserData = require('../../models/user'); + +const makeId = require('../../util/makeid'); + +module.exports = { + name: "bite", + aliases: [], + help: "Use `{{p}}slap @person` to have me personally deliver your anger to them with a nice s l a p.", + meta: { + category: 'Fun', + description: "Slap another user! Virtually, of course.", + syntax: '`slap <@user>`', + extra: null + }, + async execute(message, msg, args, cmd, prefix, mention, client) { + let savess = await Saves.findOne({name: 'bite'}) || new Saves({name: 'bite'}); + let saves = savess.saves; + if (!args.length) { + return message.channel.send(message.guild ? "Please mention someone to bite!" : "Oi! I get it if you don't like me but you can't just waltz into my DMs and bite me!");} + if (mention && args[0].match(/^<@(?:!?)(?:\d+)>$/)) { + if (!message.guild) {return message.reply("Oi! I get it if you don't like me but you can't just waltz into my DMs and bite me!");} + if (!message.guild.members.cache.has(mention.id)) {return message.reply("That user is not in this server!");} + if (message.author.id === mention.id) {return message.reply("Ew quit tryna bite yourself, that's weird.");} + return message.channel.send(new Discord.MessageEmbed() + .setAuthor(`${message.guild ? message.member.displayName : message.author.username} bites ${message.guild.members.cache.get(mention.id).displayName}`, message.author.avatarURL()) + .setImage(String(Array.from(saves.values())[Math.floor(Math.random() * saves.size)])) + .setColor('d93846') + ); + } + if (['s', 'save', 'n', 'new', 'a', 'add'].includes(args[0].toLowerCase())) { + if (!args[1]) {return message.channel.send('oi there cunt, give me a link of an image to add!');} + let tu = await UserData.findOne({uid: message.author.id}); + if ((!tu || !tu.developer) && !client.misc.savers.includes(message.author.id)) {return message.reply("You must be a Natsuki Developer in order to add new bite GIFs.");} + let e = true; + let id; + while (e === true) {id = makeId(6); if (!saves.has(id)) {e = false;}} + args.shift(); + saves.set(id, args.join(" ").trim()); + savess.saves = saves; + savess.save(); + return message.channel.send("Save added!"); + } + } +}; \ No newline at end of file diff --git a/commands/misc/ar.js b/commands/misc/ar.js index 007e5c5..778b4b7 100644 --- a/commands/misc/ar.js +++ b/commands/misc/ar.js @@ -21,7 +21,7 @@ module.exports = { .addField("Notice", "This command is server-only, and requires you to be an administrator or have the staff role."), async execute(message, msg, args, cmd, prefix, mention, client) { if (!message.guild) {return message.channel.send("You must be in a server in order to use this command.");} - if (!args.length) {return message.channel.send(`Syntax: \`${prefix}\``);} + if (!args.length) {return message.channel.send(`Syntax: \`${prefix}ar \``);} const tg = await GuildData.findOne({gid: message.guild.id}); if (['a', 'add', 'e', 'edit', 'delete', 'd', 's', 'settings'].includes(args[0].toLowerCase()) && ((!tg || !tg.staffrole || !tg.staffrole.length || !message.member.roles.cache.has(tg.staffrole)) && !message.member.permissions.has("ADMINISTRATOR"))) {return message.channel.send("You must have the staff role or be an administrator in this server in order to edit AR settings.");} diff --git a/commands/misc/help.js b/commands/misc/help.js index 9eaac85..66d88e7 100644 --- a/commands/misc/help.js +++ b/commands/misc/help.js @@ -36,12 +36,11 @@ module.exports = { helpSorted[category] = categorySorted; } - let cat = await ask(message, "What would you like help with? (`Fun`|`Roleplay`|`Utility`|`Misc`|`Moderation`|`Social`|`Leveling`) or `all` if you'd like to browse all commands", 60000); if (!cat) {return;} - if (!['f', 'fun', 'rp', 'roleplay', 'dnd', 'role play', 'rpg', 'dice', 'u', 'util', 'utility', 'utilities', 'm', 'misc', 'miscellaneous', 'mod', 'moderation', 's', 'social', 'leveling', 'l', 'level', 'a', 'all'].includes(`${cat}`.trim().toLowerCase())) {return message.channel.send("That wasn't a valid response! Try again?");} + let cat = await ask(message, "What would you like help with? (`Fun`|`Utility`|`Misc`|`Moderation`|`Social`|`Leveling`) or `all` if you'd like to browse all commands", 60000); if (!cat) {return;} + if (!['f', 'fun', 'u', 'util', 'utility', 'utilities', 'm', 'misc', 'miscellaneous', 'mod', 'moderation', 's', 'social', 'leveling', 'l', 'level', 'a', 'all'].includes(`${cat}`.trim().toLowerCase())) {return message.channel.send("That wasn't a valid response! Try again?");} let pages; if (['f', 'fun'].includes(`${cat}`.trim().toLowerCase())) {pages = helpSorted['Fun'];} - if (['roleplay', 'dnd', 'role play', 'rpg', 'dice'].includes(`${cat}`.trim().toLowerCase())) {pages = helpSorted['RP'];} if (['u', 'util', 'utility', 'utilities'].includes(`${cat}`.trim().toLowerCase())) {pages = helpSorted['Utility'];} if (['m', 'misc', 'miscellaneous'].includes(`${cat}`.trim().toLowerCase())) {pages = helpSorted['Misc'];} if (['d', 'dev', 'developer'].includes(`${cat}`.trim().toLowerCase())) {pages = helpSorted['Developer'];} diff --git a/events/message.js b/events/message.js index 4167901..0a2290d 100644 --- a/events/message.js +++ b/events/message.js @@ -26,6 +26,8 @@ module.exports = async (client, message) => { : message.content.slice(3 + client.user.id.length).trim().split(/\s+/g); let cmd = args.shift().toLowerCase().trim(); + if (message.content.includes("@everyone")) {return;} + if ([`<@${client.user.id}>`, `<@!${client.user.id}>`].includes(msg)) { return message.channel.send(new Discord.MessageEmbed() .setTitle(["Yep, that's me!", "^^ Hiya!", "Oh, hi there!", "Sure, what's up?", "How can I help!", "Natsuki is busy, but I can take a message for you!", "Teehee that's me!", "You were looking for Natsuki Tivastl, right?", "Sure! What's up?", "Pong!"][Math.floor(Math.random() * 10)])