2017-08-24 82 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