@@ -24,21 +24,8 @@ module.exports = {
24
24
}
25
25
26
26
await interaction . deferReply ( { ephemeral : true } ) ;
27
-
28
- let messages ;
29
- if ( user ) {
30
- messages = await interaction . channel . messages . fetch ( )
31
- . then ( messages => messages . filter ( m => m . author . id === user . id ) )
32
- . then ( messages => messages . first ( parseInt ( amount ) ) ) ;
33
- } else {
34
- messages = await interaction . channel . messages . fetch ( { limit : parseInt ( amount ) } ) ;
35
- }
36
-
37
- await interaction . channel . bulkDelete ( messages , true ) ;
38
-
39
- const deletedMessages = await interaction . channel . bulkDelete ( messages , true ) ;
40
27
41
- const deletedSize = deletedMessages . size ;
28
+ const deletedSize = await deleteMessages ( interaction . channel , parseInt ( amount ) , user ) ;
42
29
43
30
const deletedUser = user ? user . username : 'everyone' ;
44
31
@@ -54,4 +41,29 @@ module.exports = {
54
41
return interaction . followUp ( { embeds : [ clearEmbed ] , ephemeral : true } ) ;
55
42
56
43
}
44
+ }
45
+
46
+ async function deleteMessages ( channel , totalToDelete , user ) {
47
+ let remaining = totalToDelete ;
48
+ let count ;
49
+ if ( user ) {
50
+ let messages ;
51
+ while ( remaining > 0 ) {
52
+ messages = await channel . messages . fetch ( )
53
+ . then ( messages => messages . filter ( m => m . author . id === user . id ) )
54
+ . then ( messages => messages . first ( parseInt ( remaining ) ) ) ;
55
+ const deleteCount = remaining > 100 ? 100 : remaining ;
56
+ // the true here forces the bot to delete msgs that older then 14 days.
57
+ count += await channel . bulkDelete ( messages , true ) ;
58
+ remaining -= deleteCount ;
59
+ }
60
+ return count ;
61
+ }
62
+ while ( remaining > 0 ) {
63
+ const deleteCount = remaining > 100 ? 100 : remaining ;
64
+ // the true here forces the bot to delete msgs that older then 14 days.
65
+ count += await channel . bulkDelete ( deleteCount , true ) ;
66
+ remaining -= deleteCount ;
67
+ }
68
+ return count ;
57
69
}
0 commit comments