为什么我的Discord.js项目里messageDelete事件总是无法触发?
- 内容介绍
- 文章标签
- 相关推荐
本文共计679个文字,预计阅读时间需要3分钟。
Discord.
在 Discord.js v14(特别是使用 @discordjs/rest 和 discord.js@v14.14+)中,messageDelete 是一个“非完整上下文事件”:当一条消息被删除时,如果该消息未被缓存(例如 bot 未见过它、或已从内存中清除),Discord 不会主动发送完整消息数据,而是仅提供一个轻量级引用(如 id、channelId、guildId)。此时,必须启用 Partials.Message 才能让 client 正确解析并触发该事件。
你当前的 intents 配置(含 GuildMessages 和 MessageContent)是正确的,但仅靠 intents 不足以支持 messageDelete 的可靠触发——intents 控制的是“接收什么数据”,而 partials 决定的是“如何重建缺失的数据结构”。
本文共计679个文字,预计阅读时间需要3分钟。
Discord.
在 Discord.js v14(特别是使用 @discordjs/rest 和 discord.js@v14.14+)中,messageDelete 是一个“非完整上下文事件”:当一条消息被删除时,如果该消息未被缓存(例如 bot 未见过它、或已从内存中清除),Discord 不会主动发送完整消息数据,而是仅提供一个轻量级引用(如 id、channelId、guildId)。此时,必须启用 Partials.Message 才能让 client 正确解析并触发该事件。
你当前的 intents 配置(含 GuildMessages 和 MessageContent)是正确的,但仅靠 intents 不足以支持 messageDelete 的可靠触发——intents 控制的是“接收什么数据”,而 partials 决定的是“如何重建缺失的数据结构”。

