我正在寻找创建一个命令,该命令可以清除聊天记录,同时还将在聊天记录中清除的内容记录到只有Mods / Admins及更高版本才能看到的mod-logs频道。
我正在寻找与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 :(得分: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
。
另一种选择可能是监视the messageDeleteBulk event,并使用类似的方法发送已删除的消息。