我将如何执行清除命令,将其记录到清除的通道

时间:2018-08-10 07:57:28

标签: javascript node.js discord discord.js

我正在寻找创建一个命令,该命令可以清除聊天记录,同时还将在聊天记录中清除的内容记录到只有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.")

   }
}

1 个答案:

答案 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.embedsmessage.attachments

另一种选择可能是监视the messageDeleteBulk event,并使用类似的方法发送已删除的消息。