APRK01 commited on
Commit
e771551
Β·
1 Parent(s): 79b4bed

fix: make large roles unmentionable and add check to strip MentionEveryone from everyone role

Browse files
src/commands/fixPings.js ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const { PermissionFlagsBits } = require('discord.js');
2
+ const { successEmbed } = require('../utils/embeds');
3
+
4
+ module.exports = {
5
+ async execute(client, message) {
6
+ const guild = await client.guilds.fetch(process.env.GUILD_ID);
7
+ await guild.roles.fetch();
8
+
9
+ const log = [];
10
+
11
+ // 1. Fix @everyone role (remove MentionEveryone)
12
+ const everyoneRole = guild.roles.everyone;
13
+ if (everyoneRole.permissions.has(PermissionFlagsBits.MentionEveryone)) {
14
+ const newPerms = everyoneRole.permissions.remove(PermissionFlagsBits.MentionEveryone);
15
+ await everyoneRole.setPermissions(newPerms);
16
+ log.push(`βœ… Removed MentionEveryone permission from **@everyone**`);
17
+ } else {
18
+ log.push(`⏭️ **@everyone** already cannot mention everyone/here`);
19
+ }
20
+
21
+ // 2. Make large/public roles unmentionable
22
+ const unmentionableRoles = ['@@ Verified', '@@ Buyer', '@@ Booster', '@@ Known', '@@ Helper'];
23
+ for (const rName of unmentionableRoles) {
24
+ const role = guild.roles.cache.find(r => r.name === rName);
25
+ if (role && role.mentionable) {
26
+ await role.setMentionable(false);
27
+ log.push(`βœ… Made **${rName}** unmentionable`);
28
+ } else if (role) {
29
+ log.push(`⏭️ **${rName}** is already unmentionable`);
30
+ }
31
+ }
32
+
33
+ await message.reply({ embeds: [successEmbed('βœ… Ping Exploit Fixed', log.join('\n'))] });
34
+ },
35
+ };
src/config.js CHANGED
@@ -81,35 +81,35 @@ const Roles = [
81
  color: '#1abc9c',
82
  permissions: [],
83
  hoist: true,
84
- mentionable: true,
85
  },
86
  {
87
  name: '@@ Known',
88
  color: '#9b59b6',
89
  permissions: [],
90
  hoist: true,
91
- mentionable: true,
92
  },
93
  {
94
  name: '@@ Booster',
95
  color: '#f47fff',
96
  permissions: [],
97
  hoist: true,
98
- mentionable: true,
99
  },
100
  {
101
  name: '@@ Verified',
102
  color: '#2ecc71',
103
  permissions: [],
104
  hoist: false,
105
- mentionable: true,
106
  },
107
  {
108
  name: '@@ Buyer',
109
  color: '#3498db',
110
  permissions: [],
111
  hoist: true,
112
- mentionable: true,
113
  },
114
  ];
115
 
 
81
  color: '#1abc9c',
82
  permissions: [],
83
  hoist: true,
84
+ mentionable: false,
85
  },
86
  {
87
  name: '@@ Known',
88
  color: '#9b59b6',
89
  permissions: [],
90
  hoist: true,
91
+ mentionable: false,
92
  },
93
  {
94
  name: '@@ Booster',
95
  color: '#f47fff',
96
  permissions: [],
97
  hoist: true,
98
+ mentionable: false,
99
  },
100
  {
101
  name: '@@ Verified',
102
  color: '#2ecc71',
103
  permissions: [],
104
  hoist: false,
105
+ mentionable: false,
106
  },
107
  {
108
  name: '@@ Buyer',
109
  color: '#3498db',
110
  permissions: [],
111
  hoist: true,
112
+ mentionable: false,
113
  },
114
  ];
115
 
src/events/messageCreate.js CHANGED
@@ -16,6 +16,7 @@ const permissionAudit = require('../commands/permissionAudit');
16
  const postRules = require('../commands/postRules');
17
  const postDisclaimer = require('../commands/postDisclaimer');
18
  const applyUpdates = require('../commands/applyUpdates');
 
19
 
20
  const OWNER_ID = process.env.OWNER_ID;
21
 
@@ -31,6 +32,7 @@ const commands = {
31
  'post rules': postRules,
32
  'post disclaimer': postDisclaimer,
33
  'apply updates': applyUpdates,
 
34
  };
35
 
36
  module.exports = {
@@ -145,7 +147,7 @@ module.exports = {
145
  content.startsWith('backup') || content.startsWith('shutdown') ||
146
  content.startsWith('ticket') || content.startsWith('permission') ||
147
  content.startsWith('post') || content.startsWith('drop') ||
148
- content.startsWith('apply')) {
149
  return message.reply({ embeds: [errorEmbed('Unknown Command', `Did you mean one of these?\n${[...Object.keys(commands), 'drop'].map(c => `\`${c}\``).join('\n')}`)] });
150
  }
151
  return;
 
16
  const postRules = require('../commands/postRules');
17
  const postDisclaimer = require('../commands/postDisclaimer');
18
  const applyUpdates = require('../commands/applyUpdates');
19
+ const fixPings = require('../commands/fixPings');
20
 
21
  const OWNER_ID = process.env.OWNER_ID;
22
 
 
32
  'post rules': postRules,
33
  'post disclaimer': postDisclaimer,
34
  'apply updates': applyUpdates,
35
+ 'fix pings': fixPings,
36
  };
37
 
38
  module.exports = {
 
147
  content.startsWith('backup') || content.startsWith('shutdown') ||
148
  content.startsWith('ticket') || content.startsWith('permission') ||
149
  content.startsWith('post') || content.startsWith('drop') ||
150
+ content.startsWith('apply') || content.startsWith('fix')) {
151
  return message.reply({ embeds: [errorEmbed('Unknown Command', `Did you mean one of these?\n${[...Object.keys(commands), 'drop'].map(c => `\`${c}\``).join('\n')}`)] });
152
  }
153
  return;