@@ -286,56 +286,44 @@ class TextBasedChannel {
286
286
}
287
287
288
288
/**
289
- * Bulk deletes given messages that are newer than two weeks.
289
+ * Bulk deletes given messages up to 2 weeks old .
290
290
* @param {Collection<Snowflake, Message>|MessageResolvable[]|number } messages
291
291
* Messages or number of messages to delete
292
292
* @param {boolean } [filterOld=false] Filter messages to remove those which are older than two weeks automatically
293
- * @returns {Promise<Collection< Snowflake, Message|undefined>> } Returns the deleted messages
293
+ * @returns {Promise<Snowflake[]> } Returns the deleted messages ids
294
294
* @example
295
295
* // Bulk delete messages
296
296
* channel.bulkDelete(5)
297
- * .then(messages => console.log(`Bulk deleted ${messages.size } messages`))
297
+ * .then(messages => console.log(`Bulk deleted ${messages.length } messages`))
298
298
* .catch(console.error);
299
299
*/
300
300
async bulkDelete ( messages , filterOld = false ) {
301
301
if ( Array . isArray ( messages ) || messages instanceof Collection ) {
302
302
let messageIds =
303
303
messages instanceof Collection ? [ ...messages . keys ( ) ] : messages . map ( message => message . id ?? message ) ;
304
+
304
305
if ( filterOld ) {
305
306
messageIds = messageIds . filter (
306
307
id => Date . now ( ) - DiscordSnowflake . timestampFrom ( id ) < MaxBulkDeletableMessageAge ,
307
308
) ;
308
309
}
309
- if ( messageIds . length === 0 ) return new Collection ( ) ;
310
+
311
+ if ( messageIds . length === 0 ) return [ ] ;
312
+
310
313
if ( messageIds . length === 1 ) {
311
- const message = this . client . actions . MessageDelete . getMessage (
312
- {
313
- message_id : messageIds [ 0 ] ,
314
- } ,
315
- this ,
316
- ) ;
317
314
await this . client . rest . delete ( Routes . channelMessage ( this . id , messageIds [ 0 ] ) ) ;
318
- return message ? new Collection ( [ [ message . id , message ] ] ) : new Collection ( ) ;
315
+ return messageIds ;
319
316
}
317
+
320
318
await this . client . rest . post ( Routes . channelBulkDelete ( this . id ) , { body : { messages : messageIds } } ) ;
321
- return messageIds . reduce (
322
- ( col , id ) =>
323
- col . set (
324
- id ,
325
- this . client . actions . MessageDeleteBulk . getMessage (
326
- {
327
- message_id : id ,
328
- } ,
329
- this ,
330
- ) ,
331
- ) ,
332
- new Collection ( ) ,
333
- ) ;
319
+ return messageIds ;
334
320
}
335
- if ( ! isNaN ( messages ) ) {
321
+
322
+ if ( ! Number . isNaN ( messages ) ) {
336
323
const msgs = await this . messages . fetch ( { limit : messages } ) ;
337
324
return this . bulkDelete ( msgs , filterOld ) ;
338
325
}
326
+
339
327
throw new DiscordjsTypeError ( ErrorCodes . MessageBulkDeleteType ) ;
340
328
}
341
329
0 commit comments