You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Discord.js如何删除消息内旧附件 仅展示最新上传的图片?

解决方案

你遇到的是Discord消息编辑的默认附件逻辑问题:编辑消息时仅修改files字段不会覆盖原有附件,默认会将新附件追加到消息中,仅传入空files数组也不会删除已上传的旧附件。

修复方法

在编辑消息的参数中新增attachments: []字段,显式告知Discord清空所有原有附件,仅使用本次传入的新附件即可。

落子后编辑消息的修正代码

// 生成新画布、新附件、新embed的逻辑保持原有写法不变
const tictactoeImage = new Discord.MessageAttachment(canvas.toBuffer(),'TicTacToe.png');
const tictactoeEmbed = new Discord.MessageEmbed().setImage('attachment://TicTacToe.png');

return gamemessage.edit({
    embeds: [tictactoeEmbed],
    files: [tictactoeImage],
    components: [gamemessagecomponent],
    attachments: [] // 新增这行清空所有旧附件
});

清空消息测试的修正代码

return gamemessage.edit({
    content: 'Does this work?',
    embeds: [],
    files: [],
    components: [],
    attachments: [] // 新增这行即可删除所有旧图片
});

补充说明

  • 加入attachments: []后无需再给文件名加随机后缀也能正常刷新embed图片,旧附件会被完全移除,不会再出现多张图片堆叠的问题。
  • 如果你使用的是discord.js v14版本,只需将Discord.MessageAttachment替换为Discord.AttachmentBuilder,其余逻辑不变。

内容的提问来源于stack exchange,提问作者mariusHSK05

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 16:54:04