Discord.JS v14.14.1:编辑DM消息遇错误,求按钮禁用方案
DM消息编辑组件报错的解决方案
错误根源
Discord私信(DM)不支持任何交互组件(按钮、ActionRow这类都不行),只有服务器内的消息才能使用组件功能。你试图在DM消息里编辑添加按钮,触发了Discord API的限制,所以报错。
可行的替代方案
既然DM里用不了按钮,要实现「提交后禁用操作」的需求,可以改成编辑消息内容来提示用户:
示例代码1:直接替换为提交成功提示
await i.message.edit({ content: "✅ 提交成功!", components: [] // 清空原组件(如果有的话) });
示例代码2:保留原内容并追加提示
await i.message.edit({ content: `${i.message.content}\n\n✅ 已提交,无法重复操作`, components: [] });
额外提示
如果你的功能必须用到交互组件,建议引导用户到服务器内的指定频道操作——毕竟Discord的DM环境从设计上就不支持任何交互组件。
内容的提问来源于stack exchange,提问作者Thebeston123
相关产品推荐
相关产品推荐

