2017-08-24 121 views

回答

0

望着bulkDelete源不返回一個值

https://github.com/hydrabolt/discord.js/blob/4520c801d370708bc1d914bfa2d9b61729dbdf1e/src/structures/interfaces/TextBasedChannel.js#L354

/** 
    * Bulk delete given messages that are newer than two weeks. 
    * <warn>This is only available when using a bot account.</warn> 
    * @param {Collection<Snowflake, Message>|Message[]|number} messages Messages or number of messages to delete 
    * @param {boolean} [filterOld=false] Filter messages to remove those which are older than two weeks automatically 
    * @returns {Promise<Collection<Snowflake, Message>>} Deleted messages 
    */ 
    bulkDelete(messages, filterOld = false) { 
    if (!isNaN(messages)) return this.fetchMessages({ limit: messages }).then(msgs => this.bulkDelete(msgs, filterOld)); 
    if (messages instanceof Array || messages instanceof Collection) { 
     let messageIDs = messages instanceof Collection ? messages.keyArray() : messages.map(m => m.id); 
     if (filterOld) { 
     messageIDs = messageIDs.filter(id => 
      Date.now() - Snowflake.deconstruct(id).date.getTime() < 1209600000 
     ); 
     } 
     return this.client.api.channels[this.id].messages['bulk-delete'] 
     .post({ data: { messages: messageIDs } }) 
     .then(() => 
      this.client.actions.MessageDeleteBulk.handle({ 
      channel_id: this.id, 
      ids: messageIDs, 
      }).messages 
     ); 
    } 
    throw new TypeError('MESSAGE_BULK_DELETE_TYPE'); 
    } 

所有你能做的就是重新創建批量刪除功能,或擴展你與使用對象的自己的函數返回可批量刪除的文件數量。

沿東西(未經測試)的線路:

findEglibleForDeletion(messages, filterOld = false) { 
if (!isNaN(messages)) return this.fetchMessages({ limit: messages }).length; 
if (messages instanceof Array || messages instanceof Collection) { 
    let messageIDs = messages instanceof Collection ? messages.keyArray() : messages.map(m => m.id); 
    if (filterOld) { 
    messageIDs = messageIDs.filter(id => 
     Date.now() - Snowflake.deconstruct(id).date.getTime() < 1209600000 
    ); 
    } 
    return messageIDs.length; 
} 
throw new TypeError('MESSAGE_BULK_DELETE_TYPE'); 

}

+0

您好,感謝那個;我應該把它放在TextBasedChannel.js中,如果我應該; 「(節點:3631)UnhandledPromiseRejectionWarning:未處理的承諾拒絕(拒絕ID:1):TypeError:message.channel.findEglibleForDeletion不是函數」。感謝您的快速答覆BTW! :D –

+0

你把它放在基於文本的通道類中嗎?如果是這樣,它應該與批量刪除一樣工作。你清除了緩存嗎? – Tschallacka