1- import { type CommandInteraction , SlashCommandBuilder , ChannelType , TextChannel , PermissionFlagsBits } from "discord.js" ;
1+ import { type CommandInteraction , SlashCommandBuilder , ChannelType , TextChannel , PermissionFlagsBits , Message } from "discord.js" ;
2+ import { formatMessagesForArchive , uploadToPastebin } from "../../utils/messageArchiver.ts" ;
3+ import { storeArchiveUrl } from "../../utils/archiveCache.ts" ;
24
35export const data = new SlashCommandBuilder ( )
46 . setName ( 'clear' )
@@ -23,11 +25,43 @@ export async function execute(interaction: CommandInteraction) {
2325
2426 if ( interaction . channel ?. isTextBased ( ) && interaction . channel . type === ChannelType . GuildText ) {
2527 const textChannel = interaction . channel as TextChannel ;
28+
2629 await textChannel . bulkDelete ( amount , true )
27- . then ( messages => {
30+ . then ( async ( messages ) => {
2831 const messageCount = messages . size ;
2932 const messageText = messageCount === 1 ? 'message' : 'messages' ;
30- interaction . reply ( `🗑️ Suppression de **${ messageCount } ${ messageText } **.` ) ;
33+
34+ // Archiver uniquement les messages qui ont été effectivement supprimés
35+ console . log ( `[Clear] Début de l'archivage de ${ messageCount } messages supprimés...` ) ;
36+
37+ if ( messages . size > 0 ) {
38+ const archiveContent = formatMessagesForArchive ( messages as any ) ;
39+ const title = `Messages supprimés - ${ interaction . guild ?. name } - ${ new Date ( ) . toLocaleString ( 'fr-FR' ) } ` ;
40+
41+ console . log ( `[Clear] Tentative d'upload sur Pastebin...` ) ;
42+ const pastebinUrl = await uploadToPastebin ( archiveContent , title ) ;
43+
44+ if ( pastebinUrl ) {
45+ console . log ( `[Clear] ✅ Archive créée avec succès: ${ pastebinUrl } ` ) ;
46+ // Stocker l'URL dans le cache pour l'événement MessageBulkDelete
47+ const messageIds = Array . from ( messages . keys ( ) ) ;
48+ storeArchiveUrl ( interaction . guild ! . id , textChannel . id , messageIds , pastebinUrl ) ;
49+ } else {
50+ console . error ( '[Clear] ❌ Échec de la création de l\'archive Pastebin' ) ;
51+ console . error ( '[Clear] Vérifiez les logs ci-dessus pour plus de détails' ) ;
52+ }
53+ }
54+
55+ // Répondre et supprimer le message après 10 secondes
56+ interaction . reply ( `🗑️ Suppression de **${ messageCount } ${ messageText } **.` )
57+ . then ( reply => {
58+ setTimeout ( ( ) => {
59+ reply . delete ( ) . catch ( ( ) => { } ) ;
60+ } , 10000 ) ;
61+ } )
62+ . catch ( error => {
63+ console . error ( '[Clear] Erreur lors de l\'envoi de la réponse:' , error ) ;
64+ } ) ;
3165 } )
3266 . catch ( error => {
3367 console . error ( 'Erreur lors de la suppression des messages :' , error ) ;
0 commit comments