Ban command

This commit is contained in:
Tarrgon
2025-06-03 14:16:37 -04:00
parent b2e1b4beee
commit 77a482ac0f
11 changed files with 197 additions and 15 deletions
+10 -2
View File
@@ -1,4 +1,4 @@
import { ApplicationIntegrationType, BitFieldResolvable, ChatInputCommandInteraction, Client, GuildBasedChannel, InteractionContextType, MessageFlags, PermissionFlagsBits, SlashCommandBuilder } from 'discord.js';
import { ApplicationIntegrationType, BitFieldResolvable, ChatInputCommandInteraction, Client, GuildBasedChannel, GuildMember, InteractionContextType, MessageFlags, PermissionFlagsBits, SlashCommandBuilder } from 'discord.js';
import { channelIsInStaffCategory, deferInteraction, handleWhoIsInteraction } from '../utils';
import { getRecordMessageFromDiscordId } from '../utils/record-utils';
@@ -26,6 +26,7 @@ export default {
option
.setName('days')
.setDescription('How far back to delete messages (in days, default: 7 days).')
.setRequired(false)
.setMinValue(0)
.setMaxValue(7)
),
@@ -40,7 +41,14 @@ export default {
const reason = interaction.options.getString('reason') ?? '';
const seconds = (interaction.options.getNumber('days') ?? 7) * 86400;
const banMember = await interaction.guild.members.fetch(user.id);
let banMember: GuildMember | null = null;
try {
banMember = await interaction.guild.members.fetch(user.id);
} catch (e) {
// Member not in server.
}
const member = await interaction.guild.members.fetch(interaction.user.id);
if (banMember && member.roles.highest.comparePositionTo(banMember.roles.highest) <= 0) {