javascript - Discord JS - DiscordAPIError:未知消息
问题描述
我收到一个错误:
DiscordAPIError: Unknown Message
at RequestHandler.execute (D:\Programming\Discord Bot\node_modules\discord.js\src\rest\RequestHandler.js:298:13)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async RequestHandler.push (D:\Programming\Discord Bot\node_modules\discord.js\src\rest\RequestHandler.js:50:14)
at async MessageManager.delete (D:\Programming\Discord Bot\node_modules\discord.js\src\managers\MessageManager.js:205:5)
at async Message.delete (D:\Programming\Discord Bot\node_modules\discord.js\src\structures\Message.js:741:5)
at async AudioPlayer.<anonymous> (D:\Programming\Discord Bot\src\commands\next.js:44:21) {
method: 'delete',
path: '/channels/888095042437259287/messages/909879363472855080',
code: 10008,
httpStatus: 404,
requestData: { json: undefined, files: [] }
}
尝试删除上一个时。像这样的消息:
await client.message.channel.send({
content: `Song "${client.currentSong}" is playing`,
components: [row],
})
.then(message => {
client.player.on(AudioPlayerStatus.Idle, async () => {
await message.delete();
});
});
此代码通过另外一个事件代码执行:
client.player.on(AudioPlayerStatus.Idle, () => {
if (!client.loop) client.playlist.shift();
if (client.playlist.length === 0) return;
next.run(client.message, client.args, client);
});
为什么它不起作用?
解决方案
您正在创建一个无限事件侦听器,这意味着每当音频播放器空闲时,它都会尝试删除消息(即使它已经被删除)。更改它,client.player.once
以便第一次删除侦听器。
.then(message => {
client.player.once(AudioPlayerStatus.Idle, async () => {
await message.delete();
});
})
推荐阅读
- gnuplot - 节省时间 - 编译 c++ 并同时绘图 gnuplot
- javascript - 如何使 Laravel/Vue 实现显示单个条目
- json - 在 Google Cloud Storage 端点上获得 500
- bash - 在未压缩的 .tar 中编辑文本文件
- batch-file - 批处理 - 从目录 /b 返回完整路径
- python - 全屏启动程序 (Python)
- forms - 手动修改后的Alpaca ReadOnly
- mule - 从有效负载中获取属性的各种方法是什么?
- crystal-reports - Crystal Reports 选择公式如果不匹配则
- google-cloud-platform - 使用 Dataflow DirectRunner 将文件暂存到 GCS