Я ищу, чтобы создать команду, которая очищает чат, а также регистрирует, что было очищено в чате, до канала мод-журналов, который могут видеть только 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.")
}
}
Я думаю, что единственный вариант - использовать 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 и отправлять сообщения, которые были удалены с помощью аналогичного метода.