wsb-bot / src /commands /fixPings.js
APRK01
fix: make staff and manager roles unmentionable as well
283d024
const { PermissionFlagsBits } = require('discord.js');
const { successEmbed } = require('../utils/embeds');
module.exports = {
async execute(client, message) {
const guild = await client.guilds.fetch(process.env.GUILD_ID);
await guild.roles.fetch();
const log = [];
// 1. Fix @everyone role (remove MentionEveryone)
const everyoneRole = guild.roles.everyone;
if (everyoneRole.permissions.has(PermissionFlagsBits.MentionEveryone)) {
const newPerms = everyoneRole.permissions.remove(PermissionFlagsBits.MentionEveryone);
await everyoneRole.setPermissions(newPerms);
log.push(`βœ… Removed MentionEveryone permission from **@everyone**`);
} else {
log.push(`⏭️ **@everyone** already cannot mention everyone/here`);
}
// 2. Make large/public roles unmentionable
const unmentionableRoles = [
'@@ Server Manager', '@@ Staff', '@@ Moderator',
'@@ Verified', '@@ Buyer', '@@ Booster', '@@ Known', '@@ Helper'
];
for (const rName of unmentionableRoles) {
const role = guild.roles.cache.find(r => r.name === rName);
if (role && role.mentionable) {
await role.setMentionable(false);
log.push(`βœ… Made **${rName}** unmentionable`);
} else if (role) {
log.push(`⏭️ **${rName}** is already unmentionable`);
}
}
await message.reply({ embeds: [successEmbed('βœ… Ping Exploit Fixed', log.join('\n'))] });
},
};