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 +35 -0
- src/config.js +5 -5
- src/events/messageCreate.js +3 -1
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:
|
| 85 |
},
|
| 86 |
{
|
| 87 |
name: '@@ Known',
|
| 88 |
color: '#9b59b6',
|
| 89 |
permissions: [],
|
| 90 |
hoist: true,
|
| 91 |
-
mentionable:
|
| 92 |
},
|
| 93 |
{
|
| 94 |
name: '@@ Booster',
|
| 95 |
color: '#f47fff',
|
| 96 |
permissions: [],
|
| 97 |
hoist: true,
|
| 98 |
-
mentionable:
|
| 99 |
},
|
| 100 |
{
|
| 101 |
name: '@@ Verified',
|
| 102 |
color: '#2ecc71',
|
| 103 |
permissions: [],
|
| 104 |
hoist: false,
|
| 105 |
-
mentionable:
|
| 106 |
},
|
| 107 |
{
|
| 108 |
name: '@@ Buyer',
|
| 109 |
color: '#3498db',
|
| 110 |
permissions: [],
|
| 111 |
hoist: true,
|
| 112 |
-
mentionable:
|
| 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;
|