Как бы я сделал команду очистки, которая регистрирует канал, который был очищен

1

Я ищу, чтобы создать команду, которая очищает чат, а также регистрирует, что было очищено в чате, до канала мод-журналов, который могут видеть только Mods/Admins и выше.

Я ищу что-то похожее на команду чистки Dyno BOT, но без стороны webapp.

Также я делаю свой код так:

if(command==="purge){
message.delete()// This deletes the command


// CODE GOES HERE
}else{ 
// This mentions the commanding person if they do not have the following permission MANAGE_MESSAGES
message.reply("Nice try, you do not have MANAGE_MESSAGES permission.")

   }
}
  • 0
    Это может вам помочь: stackoverflow.com/a/46563610/9304377
  • 0
    Это помогает, для очистки, но не для ведения журнала, к сожалению :(
Показать ещё 2 комментария
Теги:
discord
discord.js

1 ответ

0

Я думаю, что единственный вариант - использовать channel.fetchMessages и отправлять каждое сообщение перед удалением.

Этот пример может работать:

async function purgeMessages(count, channel, logChannel) {
    const messages = await channel.fetchMessages({ limit: count }).catch(console.error);
    for (const message of messages.values()) {
        await logChannel.send(message.content).catch(console.error);
        await message.delete().catch(console.error);
    }
}

Обратите внимание, что это не будет отправлять вложения или вложения. Если вы хотите отправить их также, вам нужно будет message.embeds и message.attachments.

Другой вариант - отслеживать событие messageDeleteBulk и отправлять сообщения, которые были удалены с помощью аналогичного метода.

  • 0
    Разве это не будет легко вызывать ограничения скорости, если вы начнете посылать 100 сообщений так быстро, как сможете на другой канал?
  • 0
    Определенно будет нарушать ограничения скорости, как отправка сообщений, так и удаление других.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню