From 76a8c62b80a40f6f19768ec8d3174ba7ec6b98dc Mon Sep 17 00:00:00 2001 From: AnxietyisReal <96593068+AnxietyisReal@users.noreply.github.com> Date: Mon, 28 Aug 2023 12:48:18 +1000 Subject: [PATCH] Create ResponseSystem --- src/config.json | 3 +- src/events/messageCreate.ts | 53 +++++--------------------------- src/funcs/ResponseSystem.ts | 60 +++++++++++++++++++++++++++++++++++++ 3 files changed, 69 insertions(+), 47 deletions(-) create mode 100644 src/funcs/ResponseSystem.ts diff --git a/src/config.json b/src/config.json index c3986b4..cc3ddaa 100644 --- a/src/config.json +++ b/src/config.json @@ -51,7 +51,8 @@ "633345781780185099", "215497515934416896", "141304507249197057", - "178941218510602240" + "178941218510602240", + "700641965787709520" ], "mainServer": { "id": "468835415093411861", diff --git a/src/events/messageCreate.ts b/src/events/messageCreate.ts index c6a9596..6647fb2 100644 --- a/src/events/messageCreate.ts +++ b/src/events/messageCreate.ts @@ -1,5 +1,6 @@ import Discord from 'discord.js'; -import TClient from 'src/client'; +import TClient from '../client.js'; +import Response from '../funcs/ResponseSystem.js'; export default { async run(client:TClient, message:Discord.Message){ if (message.author.bot) return; @@ -64,53 +65,17 @@ export default { // Autoresponse:tm: if (client.config.botSwitches.autores && !automodded) { - /* function ResponseMadeBy(id:string){ <-- Will be enabled once autoresponse suggestion comes in. - return `╰ *Response made by <@${id}>*`; - } */ - const PersonnyMcPerson = `**${message.member.displayName}**`; - const GeneralChatID = '468835415093411863'; const incomingArrays = { - morning: ['good morning all', 'good morning everyone', 'good morning lads', 'morning all', 'morning everyone', 'morning lads', 'morning guys', 'good morning everybody', 'morning yall', 'morning y\'all'], - afternoon: ['good afternoon', 'afternoon all', 'afternoon everyone'], - evening: ['good evening', 'evening all', 'evening everyone', 'evening lads'], - night: ['night all', 'night everyone', 'night guys', 'goodnight', 'good night'], password: ['whats the password', 'what\'s the password', 'password pls'], cantRead: ['i cant read', 'i can\'t read', 'cant read', 'can\'t read'], theyBrokeIt: ['break', 'broke', 'broken'], deadChat: ['dead chat', 'chat is dead', 'dead server', 'inactive chat', 'inactive channel'] } - const outgoingArrays = { - morning: [ - `Morning ${PersonnyMcPerson}, did you sleep great?`, `Good morning ${PersonnyMcPerson}!`, `Hope you enjoyed your breakfast, ${PersonnyMcPerson}!`, - `Gm ${PersonnyMcPerson}.`, `Uh.. What time is it? Oh yea, morning ${PersonnyMcPerson}.`, `Morning and hope you had a good dream last night, ${PersonnyMcPerson}.`, - 'Time to get started with today\'s stuff!', `Don't forget to do your morning routine, ${PersonnyMcPerson}!`, 'Enjoy the breakfast and start your day.', - 'Nuh! No morning message for you!\n*Just kidding, good morning!*', `Rise and shine, ${PersonnyMcPerson}.`, 'Howdy! How\'s your morning?', - `*opens blinds wide enough to blast sunrays into the room*\nWakey wakey, ${PersonnyMcPerson}. Time to get up!`, 'https://tenor.com/view/skyrim-intro-awake-finally-awake-gif-22633549', - `Good grief, is it Monday already? Anyways, morning ${PersonnyMcPerson}..`, `This time I can shout! So here we go! 1..2..3\n*inhales*\nMORNING ${PersonnyMcPerson.toUpperCase()}!`, - 'Gooooood morning to you!', `Good morning to you! You know what else is good? A segue to our sponsor, breakfast!\nGet started with getting out of the bed and have some breakfast!`, - `## Morning ${PersonnyMcPerson}!`, '### Have a wonderful day ahead of you!', `Here, have some pancakes for breakfast, ${PersonnyMcPerson}`, 'Is it Friday yet? This week is getting boring already!', - `You have reached ${client.moment.utc().dayOfYear().toLocaleString('en-US')}th day of the year, also good morning to you as well!`, 'Good morning! Have a cookie to start your day with. :cookie:', - 'https://tenor.com/view/rambo-family-rambo-rise-and-shine-wake-up-gif-22012440' - ], - afternoon: [ - `Afternoon ${PersonnyMcPerson}!`, `What a nice day outside, ${PersonnyMcPerson}`, `Good afternoon ${PersonnyMcPerson}`, - 'Hope you had a good day so far.', `Did you enjoy your day yet, ${PersonnyMcPerson}?`, 'Weather doesn\'t look too bad outside right?', - `How's the trip outside, ${PersonnyMcPerson}?`, `~~Morning~~ Afternoon ${PersonnyMcPerson}!`, 'Afternoon already? Jeez, time go brrrr!', - 'We\'re halfway through the day, aren\'t we?', `Ready to enjoy your delicious lunch, ${PersonnyMcPerson}?`, '### Quite a wonderful weather today!' - ], - evening: [ - 'I can\'t believe the time flies so quickly!', `Evening ${PersonnyMcPerson}!`, `Hope you enjoyed the dinner, ${PersonnyMcPerson}!`, - `Good evening ${PersonnyMcPerson}!`, 'You look tired, ready to go to sleep yet?', 'Being outside was an exhausting task isn\'t it?', - 'Did you have a good day so far?', 'May I suggest sleep?', `You heard me! ${PersonnyMcPerson}, it's almost dinner time!`, - `How's your day going, ${PersonnyMcPerson}?`, `${PersonnyMcPerson}, may I suggest... *sleep?*`, 'Today is almost over, you deserve some rest!' - ], - night: [ - `Good night ${PersonnyMcPerson}!`, `Night ${PersonnyMcPerson}!`, `Sweet dreams, ${PersonnyMcPerson}.`, `Don't fall out of sky in your dreamworld, ${PersonnyMcPerson}!`, - 'Nighty night!', `I hope tomorrow is a good day for you, ${PersonnyMcPerson}!`, `Have a good sleep, ${PersonnyMcPerson}!`, `I :b:et you a cookie if you actually slept through the night! ${PersonnyMcPerson}`, - `Sleep well ${PersonnyMcPerson}.`, `Gn ${PersonnyMcPerson}.`, `Close your eyelids and sleep, ${PersonnyMcPerson}.`, `Good night ${PersonnyMcPerson} and hope your pillow is nice and cold!`, - `# Night ${PersonnyMcPerson}!`, `You should try maintaining your sleep schedule if you're that really tired, ${PersonnyMcPerson}.` - ] - } + const GeneralChatID = '929807948748832801'; + Response.create(client, message, GeneralChatID, 'morning'); + Response.create(client, message, GeneralChatID, 'afternoon'); + Response.create(client, message, GeneralChatID, 'evening'); + Response.create(client, message, GeneralChatID, 'night'); if (message.mentions.members.has('309373272594579456') && !client.isStaff(message.member)) message.reply('Please don\'t tag Daggerwin, read rule 14 in <#468846117405196289>'); if (message.mentions.members.has('215497515934416896') && !client.isStaff(message.member) && message.type != 19) message.reply('Please don\'t tag Monster unless it\'s important!'); @@ -120,10 +85,6 @@ export default { if (incomingArrays.deadChat.some(e=>message.content.toLowerCase().includes(e))) message.reply('https://cdn.discordapp.com/attachments/925589318276382720/1011333656167579849/F57G5ZS.png'); if (msgarr.includes('nawdic') && incomingArrays.theyBrokeIt.some(e=>msgarr.includes(e)) && client.isStaff(message.member) && message.channelId !== '516344221452599306') message.reply({embeds: [new client.embed().setTitle('*Nawdic has done an oopsie*').setImage('https://c.tenor.com/JSj9ie_MD9kAAAAC/kopfsch%C3%BCtteln-an-kopf-fassen-oh-no.gif').setColor(client.config.embedColor)]}); if (msgarr.includes('monster') && incomingArrays.theyBrokeIt.some(e=>msgarr.includes(e)) && client.isStaff(message.member) && message.channelId !== '516344221452599306') message.reply({embeds: [new client.embed().setTitle('*Monster has broken something*').setImage('https://media.tenor.com/ZIzIjb_wvEoAAAAC/face-palm.gif').setColor(client.config.embedColor)]}); - if (incomingArrays.morning.some(e=>message.content.toLowerCase().startsWith(e)) && message.channelId == GeneralChatID && message.type == 0) message.reply(`${outgoingArrays.morning[Math.floor(Math.random()*outgoingArrays.morning.length)]}`); - if (incomingArrays.afternoon.some(e=>message.content.toLowerCase().startsWith(e)) && message.channelId == GeneralChatID && message.type == 0) message.reply(`${outgoingArrays.afternoon[Math.floor(Math.random()*outgoingArrays.afternoon.length)]}`); - if (incomingArrays.evening.some(e=>message.content.toLowerCase().startsWith(e)) && message.channelId == GeneralChatID && message.type == 0) message.reply(`${outgoingArrays.evening[Math.floor(Math.random()*outgoingArrays.evening.length)]}`); - if (incomingArrays.night.some(e=>message.content.toLowerCase().startsWith(e)) && message.channelId == GeneralChatID && message.type == 0) message.reply(`${outgoingArrays.night[Math.floor(Math.random()*outgoingArrays.night.length)]}`); // Failsafe thingy (Toastproof maybe) if (message.content.startsWith('!!_wepanikfrfr') && client.config.whitelist.includes(message.author.id)) (client.guilds.cache.get(message.guildId) as Discord.Guild).commands.set(client.registry).then(()=>message.reply('How did you manage to lose the commands??? Anyways, it\'s re-registered now.')).catch((e:Error)=>message.reply(`Failed to deploy slash commands:\n\`\`\`${e.message}\`\`\``)); } diff --git a/src/funcs/ResponseSystem.ts b/src/funcs/ResponseSystem.ts new file mode 100644 index 0000000..1183735 --- /dev/null +++ b/src/funcs/ResponseSystem.ts @@ -0,0 +1,60 @@ +import Discord from 'discord.js'; +import TClient from 'src/client'; + +/* function ResponseMadeBy(id:string){ <-- Will be enabled once autoresponse suggestion comes in. + return `╰ *Response made by <@${id}>*`; +} */ + +export default class Response { + static readonly incomingArrays = { + morning: ['good morning all', 'good morning everyone', 'good morning lads', 'morning all', 'morning everyone', 'morning lads', 'morning guys', 'good morning everybody', 'morning yall', 'morning y\'all'], + afternoon: ['good afternoon', 'afternoon all', 'afternoon everyone'], + evening: ['good evening', 'evening all', 'evening everyone', 'evening lads'], + night: ['night all', 'night everyone', 'night guys', 'goodnight', 'good night'] + } as const + + static create(client:TClient, message:Discord.Message, channel:Discord.Snowflake, keyword:string) { + if (message.channelId != channel || message.type != 0) throw new Error('Invalid channel or message type.'); + this.respond(client, message, keyword); + } + static respond(client:TClient, message:Discord.Message, responseKeyword:string) { + if (this.incomingArrays[responseKeyword].some(m=>message.content.toLowerCase().startsWith(m))) return message.reply(`${this.outgoingArrays(client, message)[responseKeyword][Math.floor(Math.random() * this.outgoingArrays(client, message)[responseKeyword].length)]}`) + } + static outgoingArrays(client:TClient, message:Discord.Message) { + const PersonnyMcPerson = `**${message.member.displayName}**`; + return { + morning: [ + `Morning ${PersonnyMcPerson}, did you sleep great?`, `Good morning ${PersonnyMcPerson}!`, `Hope you enjoyed your breakfast, ${PersonnyMcPerson}!`, + `Gm ${PersonnyMcPerson}.`, `Uh.. What time is it? Oh yea, morning ${PersonnyMcPerson}.`, `Morning and hope you had a good dream last night, ${PersonnyMcPerson}.`, + 'Time to get started with today\'s stuff!', `Don't forget to do your morning routine, ${PersonnyMcPerson}!`, 'Enjoy the breakfast and start your day.', + 'Nuh! No morning message for you!\n*Just kidding, good morning!*', `Rise and shine, ${PersonnyMcPerson}.`, 'Howdy! How\'s your morning?', + `*opens blinds wide enough to blast sunrays into the room*\nWakey wakey, ${PersonnyMcPerson}. Time to get up!`, 'https://tenor.com/view/skyrim-intro-awake-finally-awake-gif-22633549', + `Good grief, is it Monday already? Anyways, morning ${PersonnyMcPerson}..`, `This time I can shout! So here we go! 1..2..3\n*inhales*\nMORNING ${PersonnyMcPerson.toUpperCase()}!`, + 'Gooooood morning to you!', `Good morning to you! You know what else is good? A segue to our sponsor, breakfast!\nGet started with getting out of the bed and have some breakfast!`, + `## Morning ${PersonnyMcPerson}!`, '### Have a wonderful day ahead of you!', `Here, have some pancakes for breakfast, ${PersonnyMcPerson}`, 'Is it Friday yet? This week is getting boring already!', + `You have reached ${client.moment.utc().dayOfYear().toLocaleString('en-US')}th day of the year, also good morning to you as well!`, 'Good morning! Have a cookie to start your day with. :cookie:', + 'https://tenor.com/view/rambo-family-rambo-rise-and-shine-wake-up-gif-22012440' + ], + afternoon: [ + `Afternoon ${PersonnyMcPerson}!`, `What a nice day outside, ${PersonnyMcPerson}`, `Good afternoon ${PersonnyMcPerson}`, + 'Hope you had a good day so far.', `Did you enjoy your day yet, ${PersonnyMcPerson}?`, 'Weather doesn\'t look too bad outside right?', + `How's the trip outside, ${PersonnyMcPerson}?`, `~~Morning~~ Afternoon ${PersonnyMcPerson}!`, 'Afternoon already? Jeez, time go brrrr!', + 'We\'re halfway through the day, aren\'t we?', `Ready to enjoy your delicious lunch, ${PersonnyMcPerson}?`, '### Quite a wonderful weather today!' + ], + evening: [ + 'I can\'t believe the time flies so quickly!', `Evening ${PersonnyMcPerson}!`, `Hope you enjoyed the dinner, ${PersonnyMcPerson}!`, + `Good evening ${PersonnyMcPerson}!`, 'You look tired, ready to go to sleep yet?', 'Being outside was an exhausting task isn\'t it?', + 'Did you have a good day so far?', 'May I suggest sleep?', `You heard me! ${PersonnyMcPerson}, it's almost dinner time!`, + `How's your day going, ${PersonnyMcPerson}?`, `${PersonnyMcPerson}, may I suggest... *sleep?*`, 'Today is almost over, you deserve some rest!' + ], + night: [ + `Good night ${PersonnyMcPerson}!`, `Night ${PersonnyMcPerson}!`, `Sweet dreams, ${PersonnyMcPerson}.`, `Don't fall out of sky in your dreamworld, ${PersonnyMcPerson}!`, + 'Nighty night!', `I hope tomorrow is a good day for you, ${PersonnyMcPerson}!`, `Have a good sleep, ${PersonnyMcPerson}!`, `I :b:et you a cookie if you actually slept through the night! ${PersonnyMcPerson}`, + `Sleep well ${PersonnyMcPerson}.`, `Gn ${PersonnyMcPerson}.`, `Close your eyelids and sleep, ${PersonnyMcPerson}.`, `Good night ${PersonnyMcPerson} and hope your pillow is nice and cold!`, + `# Night ${PersonnyMcPerson}!`, `You should try maintaining your sleep schedule if you're that really tired, ${PersonnyMcPerson}.` + ] + } as const + } +} +// ty Noinkin for coming up with this suggestion/idea plus with bit of help <3 +// 𝘢𝘭𝘴𝘰 𝘪𝘮 𝘯𝘰𝘵 𝘢 𝘣𝘰𝘺 :)