From eecbf95fe74b9c90609943cf75396d4b4c91971b Mon Sep 17 00:00:00 2001 From: Kaushik Duddala <72582623+launch-dot-vbs@users.noreply.github.com> Date: Sun, 30 May 2021 12:53:08 -0500 Subject: [PATCH 1/9] Creating new file --- addons/reports.js | 1 + 1 file changed, 1 insertion(+) create mode 100644 addons/reports.js diff --git a/addons/reports.js b/addons/reports.js new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/addons/reports.js @@ -0,0 +1 @@ + From 56f03690de21eec5c833b8e101ded6bb9c04fe74 Mon Sep 17 00:00:00 2001 From: Kaushik Duddala <72582623+KaushikDuddala@users.noreply.github.com> Date: Sun, 30 May 2021 20:57:59 -0500 Subject: [PATCH 2/9] Adding the code in --- addons/reports.js | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/addons/reports.js b/addons/reports.js index 8b13789..3cfa78c 100644 --- a/addons/reports.js +++ b/addons/reports.js @@ -1 +1,36 @@ +var exports = module.exports; +exports.message = function(client, msg) { + //Checking if message is to open a report + if (msg.content === '!report') { + const user = message.author.id; //assigning user var for easier access + const name = "ticket-" + user; //making a name for the new channel + if(message.guild.channels.cache.find(ch => ch.name == name)){ + message.channel.send("You have already opened a ticket") //making sure they dont have a ticket already open for anti-spam + }else{ + message.guild.channels.create(name).then((chan)=>{ + chan.updateOverwrite(message.guild.roles.everyone, { + SEND_MESSAGES: false, + VIEW_CHANNEL: false + }) //setting everyone permissions as false + chan.updateOverwrite(user,{ + SEND_MESSAGES: true, + VIEW_CHANNEL: true + }) //setting send permissions for person who opened the ticket + chan.updateOverwrite("839199970077704262",{ + SEND_MESSAGES:true, + VIEW_CHANNEL:true + }) + msg.delete() //deleting where they said !report so others dont know for privacy and stuff + chan.send("Moderators will be here shortly, In the meantime explain your report and wait until they respond, after they respond a moderator may do !close and close this ticket.").then((m)=>{ + m.pin() //making a info message and pinning it + }) + }) + + } + //checking if message is to close the ticket + }else if(msg.content = '!close'){ + if(!message.member.roles.cache.some((role) => role.name === 'Mod')) return message.channel.send("Only a moderator can end a ticket!") //making it so only mods can do it + if(message.member.roles.cache.some((role) => role.name === 'Mod')) message.channnel.delete() //deleting the channel, probably going to make it so that it only works only channels starting with "ticket" in case a mod accidently does it in general or something + } +}; From 915160a7f4bd2f3e59651c68528a2c455608502e Mon Sep 17 00:00:00 2001 From: Kaushik Duddala <72582623+KaushikDuddala@users.noreply.github.com> Date: Sun, 30 May 2021 22:10:45 -0500 Subject: [PATCH 3/9] Fixing a bug and changing channel name --- addons/reports.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/addons/reports.js b/addons/reports.js index 3cfa78c..eababc3 100644 --- a/addons/reports.js +++ b/addons/reports.js @@ -4,7 +4,8 @@ exports.message = function(client, msg) { //Checking if message is to open a report if (msg.content === '!report') { const user = message.author.id; //assigning user var for easier access - const name = "ticket-" + user; //making a name for the new channel + let userName = client.users.cache.get(user); //making the name the users name instead of their ID + const name = "ticket-" + userName.username; //making a name for the new channel if(message.guild.channels.cache.find(ch => ch.name == name)){ message.channel.send("You have already opened a ticket") //making sure they dont have a ticket already open for anti-spam }else{ @@ -30,7 +31,9 @@ exports.message = function(client, msg) { } //checking if message is to close the ticket }else if(msg.content = '!close'){ - if(!message.member.roles.cache.some((role) => role.name === 'Mod')) return message.channel.send("Only a moderator can end a ticket!") //making it so only mods can do it - if(message.member.roles.cache.some((role) => role.name === 'Mod')) message.channnel.delete() //deleting the channel, probably going to make it so that it only works only channels starting with "ticket" in case a mod accidently does it in general or something + const user = client.users.cache.get(message.author.id); + if(!message.member.roles.cache.has("848736231197638667")) return message.channel.send("Only a moderator can end a ticket!") //making it so only mods can do it + if(message.member.roles.cache.has("848736231197638667")) return message.channel.delete() //deleting the channel, probably going to make it so that it only works only channels starting with "ticket" in case a mod accidently does it in general or something + } } }; From 21c7b50287fc6368a66a9f4e4f50b3282e8b17ae Mon Sep 17 00:00:00 2001 From: Kaushik Duddala <72582623+KaushikDuddala@users.noreply.github.com> Date: Sun, 30 May 2021 22:12:13 -0500 Subject: [PATCH 4/9] Adding my name onto the big board :) --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8e451e9..0fc98d4 100644 --- a/README.md +++ b/README.md @@ -36,4 +36,5 @@ Currently, the bot has the ability to support addons, and to create one, first t - **Clear Command** by Razboy20 - **Rollback Tracker** by Qursch and Razboy20 - **Definition Command** by Martin M. -- **S P A C E Filter** by Martin M. \ No newline at end of file +- **S P A C E Filter** by Martin M. +- **Report System** by Kaushik D. From 2a8e8dec8959ddeea6c1be6d3d8c384d9def01b5 Mon Sep 17 00:00:00 2001 From: Kaushik Duddala <72582623+KaushikDuddala@users.noreply.github.com> Date: Sat, 5 Jun 2021 10:22:58 -0500 Subject: [PATCH 5/9] Reworking Space Filter, Found a way to get past it --- addons/space_filter.js | 87 +++++++++++++++++++++++++++++++++--------- 1 file changed, 69 insertions(+), 18 deletions(-) diff --git a/addons/space_filter.js b/addons/space_filter.js index 0126c91..97fd56c 100644 --- a/addons/space_filter.js +++ b/addons/space_filter.js @@ -1,25 +1,76 @@ module.exports.message = async function (client, msg) { - const space_channel = "603336862878138408"; - if (msg.channel.id != space_channel) return; - if (msg.author.bot) return; - const split_msg = msg.content.split(" "); - - for (let i in split_msg) { - const filtered = split_msg[i]; + const space_channel = "850514018426814474"; + if (message.channel.id != space_channel) return; + if (message.author.bot) return; + const split_message = message.content.split(" "); + console.log(split_message) + for (let i in split_message) { + const filtered = split_message[i]; + console.log(filtered) if (filtered.length > 1) { - if ( - !filtered.toLowerCase().startsWith("https://") && - !filtered.toLowerCase().startsWith("http://") && - !filtered.match(/^<[@#&]|(@&)\d+>$/) - ) { - await msg.delete(); - const _msg = await msg.reply("P l e a s e s p a c e y o u r m e s s a g e s h e r e . T h a n k Y o u !"); + let link = false + let personPing = false + let channelMention = false + let rolePing = false + let emoji = false + if (filtered.toLowerCase().startsWith("https://") || filtered.toLowerCase().startsWith("http://")) { + link = true + }else if (filtered.match(/^<@\d+>$|^<@!\d+>$/)){ + const user_id = filtered.match(/\d+/) + const Guild = client.guilds.cache.get("822201265379475497"); + const Members = Guild.members.cache.map(member => member.id); + if (Members.includes(user_id[0])){ + personPing = true + }else{ + await message.delete(); + const _message = await message.reply("P l e a s e s p a c e y o u r m e s s a g e s h e r e . T h a n k Y o u !"); + setTimeout(() => { + _message.delete(); + }, 3000); + break; + } + }else if(filtered.match(/^<#\d+>$/)){ + const channel_id = filtered.match(/\d+/) + let channels = await client.channels.cache.keyArray() + if (channels.includes(channel_id[0])){ + channelMention = true + }else{ + await message.delete(); + const _message = await message.reply("P l e a s e s p a c e y o u r m e s s a g e s h e r e . T h a n k Y o u !"); + setTimeout(() => { + _message.delete(); + }, 3000); + break; + } + }else if(filtered.match(/^<@&\d+>/)){ + const role_id = await filtered.match(/\d+/) + console.log(role_id) + const roles = await message.guild.roles.cache.keyArray(); + console.log(roles) + if(roles.includes(role_id[0])){ + rolePing = true + }else{ + await message.delete(); + const _message = await message.reply("P l e a s e s p a c e y o u r m e s s a g e s h e r e . T h a n k Y o u !"); + setTimeout(() => { + _message.delete(); + }, 3000); + break; + } + }else if(filtered.match(/^<:[A-Za-z._]+:\d+>$/)){ + emoji = true; + }else if(filtered.match(/(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff]|[\u0023-\u0039]\ufe0f?\u20e3|\u3299|\u3297|\u303d|\u3030|\u24c2|\ud83c[\udd70-\udd71]|\ud83c[\udd7e-\udd7f]|\ud83c\udd8e|\ud83c[\udd91-\udd9a]|\ud83c[\udde6-\uddff]|\ud83c[\ude01-\ude02]|\ud83c\ude1a|\ud83c\ude2f|\ud83c[\ude32-\ude3a]|\ud83c[\ude50-\ude51]|\u203c|\u2049|[\u25aa-\u25ab]|\u25b6|\u25c0|[\u25fb-\u25fe]|\u00a9|\u00ae|\u2122|\u2139|\ud83c\udc04|[\u2600-\u26FF]|\u2b05|\u2b06|\u2b07|\u2b1b|\u2b1c|\u2b50|\u2b55|\u231a|\u231b|\u2328|\u23cf|[\u23e9-\u23f3]|[\u23f8-\u23fa]|\ud83c\udccf|\u2934|\u2935|[\u2190-\u21ff])/g)){ + emoji = true + }else if (!emoji && !channelMention && !rolePing && !personPing && !link){ + await message.delete(); + const _message = await message.reply("P l e a s e s p a c e y o u r m e s s a g e s h e r e . T h a n k Y o u !"); setTimeout(() => { - _msg.delete(); - }, 3000); - + _message.delete(); + }, 3000); break; + }else{ + } } } -}; +} From da0b94d75292b077c4bdf620bbd67d44d8142db8 Mon Sep 17 00:00:00 2001 From: Kaushik Duddala <72582623+KaushikDuddala@users.noreply.github.com> Date: Sat, 5 Jun 2021 10:43:26 -0500 Subject: [PATCH 6/9] Fixing Channel ID --- addons/space_filter.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/space_filter.js b/addons/space_filter.js index 97fd56c..b49a16e 100644 --- a/addons/space_filter.js +++ b/addons/space_filter.js @@ -1,5 +1,5 @@ module.exports.message = async function (client, msg) { - const space_channel = "850514018426814474"; + const space_channel = "603336862878138408"; if (message.channel.id != space_channel) return; if (message.author.bot) return; const split_message = message.content.split(" "); From f290fec36127b297d5034ff03bb6b30fa7d32e21 Mon Sep 17 00:00:00 2001 From: Kaushik Duddala <72582623+KaushikDuddala@users.noreply.github.com> Date: Mon, 7 Jun 2021 08:32:57 -0500 Subject: [PATCH 7/9] Fixing another ID (Guild ID) --- addons/space_filter.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/space_filter.js b/addons/space_filter.js index b49a16e..2dec052 100644 --- a/addons/space_filter.js +++ b/addons/space_filter.js @@ -17,7 +17,7 @@ module.exports.message = async function (client, msg) { link = true }else if (filtered.match(/^<@\d+>$|^<@!\d+>$/)){ const user_id = filtered.match(/\d+/) - const Guild = client.guilds.cache.get("822201265379475497"); + const Guild = client.guilds.cache.get("603301961584082994"); const Members = Guild.members.cache.map(member => member.id); if (Members.includes(user_id[0])){ personPing = true From 7984fca313bf5fd3eb34fd0f48c5858faeafc535 Mon Sep 17 00:00:00 2001 From: Kaushik Duddala <72582623+KaushikDuddala@users.noreply.github.com> Date: Thu, 26 Aug 2021 20:27:49 -0500 Subject: [PATCH 8/9] Delete reports.js deleting due to someone making a pr earlier than this being accepted to add the same --- addons/reports.js | 39 --------------------------------------- 1 file changed, 39 deletions(-) delete mode 100644 addons/reports.js diff --git a/addons/reports.js b/addons/reports.js deleted file mode 100644 index eababc3..0000000 --- a/addons/reports.js +++ /dev/null @@ -1,39 +0,0 @@ -var exports = module.exports; - -exports.message = function(client, msg) { - //Checking if message is to open a report - if (msg.content === '!report') { - const user = message.author.id; //assigning user var for easier access - let userName = client.users.cache.get(user); //making the name the users name instead of their ID - const name = "ticket-" + userName.username; //making a name for the new channel - if(message.guild.channels.cache.find(ch => ch.name == name)){ - message.channel.send("You have already opened a ticket") //making sure they dont have a ticket already open for anti-spam - }else{ - message.guild.channels.create(name).then((chan)=>{ - chan.updateOverwrite(message.guild.roles.everyone, { - SEND_MESSAGES: false, - VIEW_CHANNEL: false - }) //setting everyone permissions as false - chan.updateOverwrite(user,{ - SEND_MESSAGES: true, - VIEW_CHANNEL: true - }) //setting send permissions for person who opened the ticket - chan.updateOverwrite("839199970077704262",{ - SEND_MESSAGES:true, - VIEW_CHANNEL:true - }) - msg.delete() //deleting where they said !report so others dont know for privacy and stuff - chan.send("Moderators will be here shortly, In the meantime explain your report and wait until they respond, after they respond a moderator may do !close and close this ticket.").then((m)=>{ - m.pin() //making a info message and pinning it - }) - }) - - } - //checking if message is to close the ticket - }else if(msg.content = '!close'){ - const user = client.users.cache.get(message.author.id); - if(!message.member.roles.cache.has("848736231197638667")) return message.channel.send("Only a moderator can end a ticket!") //making it so only mods can do it - if(message.member.roles.cache.has("848736231197638667")) return message.channel.delete() //deleting the channel, probably going to make it so that it only works only channels starting with "ticket" in case a mod accidently does it in general or something - } - } -}; From 6b72446a85b4aa057c9884d72e82940865f021a1 Mon Sep 17 00:00:00 2001 From: Kaushik Duddala <72582623+KaushikDuddala@users.noreply.github.com> Date: Thu, 26 Aug 2021 20:29:01 -0500 Subject: [PATCH 9/9] Update README.md --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 0fc98d4..8a9b873 100644 --- a/README.md +++ b/README.md @@ -37,4 +37,3 @@ Currently, the bot has the ability to support addons, and to create one, first t - **Rollback Tracker** by Qursch and Razboy20 - **Definition Command** by Martin M. - **S P A C E Filter** by Martin M. -- **Report System** by Kaushik D.