1
0
mirror of https://github.com/toast-ts/Daggerbot-TS.git synced 2024-11-17 16:30:58 -05:00
Daggerbot-TS/src/commands/purge.ts

35 lines
1.6 KiB
TypeScript
Raw Normal View History

import Discord,{SlashCommandBuilder} from 'discord.js';
2023-04-14 06:47:58 -04:00
import TClient from '../client.js';
export default {
2023-03-05 05:04:10 -05:00
async run(client: TClient, interaction: Discord.ChatInputCommandInteraction<'cached'>){
if (!client.isStaff(interaction.member)) return client.youNeedRole(interaction, 'dcmod');
const amount = interaction.options.getInteger('amount') as number;
if (amount > 100) return interaction.reply({content: 'Discord API limits purging up to 100 messages.', ephemeral: true})
const user = interaction.options.getUser('user');
2023-03-05 05:04:10 -05:00
let messagesArray: Array<string> = [];
2023-03-05 05:04:10 -05:00
if (user){
(interaction.channel as Discord.TextChannel).messages.fetch({limit: amount}).then(msgs=>{
const msgList = msgs.filter(x=>x.author.id == user.id);
(interaction.channel as Discord.TextChannel).bulkDelete(msgList);
})
} else {
(interaction.channel as Discord.TextChannel).messages.fetch({limit: amount}).then(async messages=>{
messages.forEach(message=>messagesArray.push(message.id));
await (interaction.channel as Discord.TextChannel).bulkDelete(messagesArray);
})
}
await interaction.reply({content: `Successfully purged ${amount} messages.`, ephemeral: true})
},
data: new SlashCommandBuilder()
.setName('purge')
.setDescription('Purge the amount of messages in this channel')
2023-04-24 06:10:11 -04:00
.addIntegerOption(opt=>opt
2023-03-05 05:04:10 -05:00
.setName('amount')
.setDescription('Amount of messages to be obliterated')
.setRequired(true))
2023-04-24 06:10:11 -04:00
.addUserOption(opt=>opt
2023-03-05 05:04:10 -05:00
.setName('user')
.setDescription('Which user to have their messages obliterated?'))
}