aboutsummaryrefslogtreecommitdiff
path: root/src/commands/moderation/role.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/commands/moderation/role.ts')
-rw-r--r--src/commands/moderation/role.ts112
1 files changed, 29 insertions, 83 deletions
diff --git a/src/commands/moderation/role.ts b/src/commands/moderation/role.ts
index 2a67e5b..0c7d7db 100644
--- a/src/commands/moderation/role.ts
+++ b/src/commands/moderation/role.ts
@@ -1,34 +1,20 @@
/* eslint-disable @typescript-eslint/no-empty-function */
-import { BotCommand } from '../../lib/extensions/BotCommand';
+import { BushCommand } from '../../lib/extensions/BushCommand';
import AllowedMentions from '../../lib/utils/AllowedMentions';
import { Message, Role, GuildMember } from 'discord.js';
import { ApplicationCommandOptionType } from 'discord-api-types';
-export default class RoleCommand extends BotCommand {
+export default class RoleCommand extends BushCommand {
private roleWhitelist: Record<string, string[]> = {
'Partner': ['*', 'Admin Perms', 'Sr. Moderator', 'Moderator'],
- 'Suggester': [
- '*',
- 'Admin Perms',
- 'Sr. Moderator',
- 'Moderator',
- 'Helper',
- 'Trial Helper',
- 'Contributor'
- ],
+ 'Suggester': ['*', 'Admin Perms', 'Sr. Moderator', 'Moderator', 'Helper', 'Trial Helper', 'Contributor'],
'Level Locked': ['*', 'Admin Perms', 'Sr. Moderator', 'Moderator'],
'No Files': ['*', 'Admin Perms', 'Sr. Moderator', 'Moderator'],
'No Reactions': ['*', 'Admin Perms', 'Sr. Moderator', 'Moderator'],
'No Links': ['*', 'Admin Perms', 'Sr. Moderator', 'Moderator'],
'No Bots': ['*', 'Admin Perms', 'Sr. Moderator', 'Moderator'],
'No VC': ['*', 'Admin Perms', 'Sr. Moderator', 'Moderator'],
- 'No Giveaways': [
- '*',
- 'Admin Perms',
- 'Sr. Moderator',
- 'Moderator',
- 'Helper'
- ],
+ 'No Giveaways': ['*', 'Admin Perms', 'Sr. Moderator', 'Moderator', 'Helper'],
'No Support': ['*', 'Admin Perms', 'Sr. Moderator', 'Moderator'],
'Giveaway Donor': ['*', 'Admin Perms', 'Sr. Moderator', 'Moderator'],
'Giveaway (200m)': ['*', 'Admin Perms', 'Sr. Moderator', 'Moderator'],
@@ -42,7 +28,7 @@ export default class RoleCommand extends BotCommand {
constructor() {
super('role', {
aliases: ['role', 'addrole', 'removerole'],
- category: "Moulberry's Bush",
+ category: 'moderation',
description: {
content: "Manages users' roles.",
usage: 'role <add|remove> <user> <role>',
@@ -87,66 +73,38 @@ export default class RoleCommand extends BotCommand {
});
}
- public async exec(
- message: Message,
- { user, role }: { user: GuildMember; role: Role }
- ): Promise<unknown> {
- if (
- !message.member.permissions.has('MANAGE_ROLES') &&
- !this.client.ownerID.includes(message.author.id)
- ) {
- const mappedRole = this.client.util.moulberryBushRoleMap.find(
- (m) => m.id === role.id
- );
+ public async exec(message: Message, { user, role }: { user: GuildMember; role: Role }): Promise<unknown> {
+ if (!message.member.permissions.has('MANAGE_ROLES') && !this.client.ownerID.includes(message.author.id)) {
+ const mappedRole = this.client.util.moulberryBushRoleMap.find((m) => m.id === role.id);
if (!mappedRole || !this.roleWhitelist[mappedRole.name]) {
- return message.util.reply(
- `<:error:837123021016924261> <@&${role.id}> is not whitelisted, and you do not have manage roles permission.`,
- {
- allowedMentions: AllowedMentions.none()
- }
- );
+ return message.util.reply(`<:error:837123021016924261> <@&${role.id}> is not whitelisted, and you do not have manage roles permission.`, {
+ allowedMentions: AllowedMentions.none()
+ });
}
const allowedRoles = this.roleWhitelist[mappedRole.name].map((r) => {
- return this.client.util.moulberryBushRoleMap.find((m) => m.name === r)
- .id;
+ return this.client.util.moulberryBushRoleMap.find((m) => m.name === r).id;
});
- if (
- !message.member.roles.cache.some((role) =>
- allowedRoles.includes(role.id)
- )
- ) {
- return message.util.reply(
- `<:error:837123021016924261> <@&${role.id}> is whitelisted, but you do not have any of the roles required to manage it.`,
- {
- allowedMentions: AllowedMentions.none()
- }
- );
+ if (!message.member.roles.cache.some((role) => allowedRoles.includes(role.id))) {
+ return message.util.reply(`<:error:837123021016924261> <@&${role.id}> is whitelisted, but you do not have any of the roles required to manage it.`, {
+ allowedMentions: AllowedMentions.none()
+ });
}
}
if (!this.client.ownerID.includes(message.author.id)) {
if (role.comparePositionTo(message.member.roles.highest) >= 0) {
- return message.util.reply(
- `<:error:837123021016924261> <@&${role.id}> is higher or equal to your highest role.`,
- {
- allowedMentions: AllowedMentions.none()
- }
- );
+ return message.util.reply(`<:error:837123021016924261> <@&${role.id}> is higher or equal to your highest role.`, {
+ allowedMentions: AllowedMentions.none()
+ });
}
if (role.comparePositionTo(message.guild.me.roles.highest) >= 0) {
- return message.util.reply(
- `<:error:837123021016924261> <@&${role.id}> is higher or equal to my highest role.`,
- {
- allowedMentions: AllowedMentions.none()
- }
- );
+ return message.util.reply(`<:error:837123021016924261> <@&${role.id}> is higher or equal to my highest role.`, {
+ allowedMentions: AllowedMentions.none()
+ });
}
if (role.managed) {
- await message.util.reply(
- `<:error:837123021016924261> <@&${role.id}> is managed by an integration and cannot be managed.`,
- {
- allowedMentions: AllowedMentions.none()
- }
- );
+ await message.util.reply(`<:error:837123021016924261> <@&${role.id}> is managed by an integration and cannot be managed.`, {
+ allowedMentions: AllowedMentions.none()
+ });
}
}
// No checks if the user has MANAGE_ROLES
@@ -154,28 +112,16 @@ export default class RoleCommand extends BotCommand {
try {
await user.roles.remove(role.id);
} catch {
- return message.util.reply(
- `<:error:837123021016924261> Could not remove <@&${role.id}> from <@${user.id}>.`,
- { allowedMentions: AllowedMentions.none() }
- );
+ return message.util.reply(`<:error:837123021016924261> Could not remove <@&${role.id}> from <@${user.id}>.`, { allowedMentions: AllowedMentions.none() });
}
- return message.util.reply(
- `<:checkmark:837109864101707807> Successfully removed <@&${role.id}> from <@${user.id}>!`,
- { allowedMentions: AllowedMentions.none() }
- );
+ return message.util.reply(`<:checkmark:837109864101707807> Successfully removed <@&${role.id}> from <@${user.id}>!`, { allowedMentions: AllowedMentions.none() });
} else {
try {
await user.roles.add(role.id);
} catch {
- return message.util.reply(
- `<:error:837123021016924261> Could not add <@&${role.id}> to <@${user.id}>.`,
- { allowedMentions: AllowedMentions.none() }
- );
+ return message.util.reply(`<:error:837123021016924261> Could not add <@&${role.id}> to <@${user.id}>.`, { allowedMentions: AllowedMentions.none() });
}
- return message.util.reply(
- `<:checkmark:837109864101707807> Successfully added <@&${role.id}> to <@${user.id}>!`,
- { allowedMentions: AllowedMentions.none() }
- );
+ return message.util.reply(`<:checkmark:837109864101707807> Successfully added <@&${role.id}> to <@${user.id}>!`, { allowedMentions: AllowedMentions.none() });
}
}
}