如何让Discord机器人在用户使用建议命令时自动给开发者发送DM
实现方案
你只需要补充获取开发者用户对象、发送DM的逻辑即可,操作步骤如下:
- 先获取你自己的Discord数字用户ID,替换代码中的占位符
- 确保你开启了允许服务器成员发送DM,或者已经加机器人为好友,避免机器人发消息被拦截
完整补全后代码
const suggestsomething = new Discord.MessageEmbed() .setAuthor(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) .setColor(message.guild.me.displayColor) .setDescription("Suggest something don't leave it empty.") .setTimestamp() if(!args[0]) return message.channel.send(suggestsomething) const suggestion = args.join(" "); // 新增代码开始 const DEVELOPER_USER_ID = "替换为你自己的Discord用户ID"; // 构造要发送给开发者的建议Embed const devSuggestEmbed = new Discord.MessageEmbed() .setTitle("用户提交的新建议") .setAuthor(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) .setDescription(suggestion) .addField("用户ID", message.author.id) .addField("来源服务器", message.guild?.name || "私信渠道") .setColor("#5865F2") .setTimestamp() // 拉取开发者用户对象并发送DM client.users.fetch(DEVELOPER_USER_ID) .then(devUser => devUser.send({ embeds: [devSuggestEmbed] })) .then(() => { // 给提交用户返回成功提示 const successTip = new Discord.MessageEmbed() .setColor(message.guild.me.displayColor) .setDescription("✅ 你的建议已成功提交给开发者,感谢反馈!") .setTimestamp() message.channel.send(successTip) }) .catch(err => { console.error("建议发送失败:", err) const failTip = new Discord.MessageEmbed() .setColor("#ED4245") .setDescription("❌ 建议提交失败,请稍后重试") .setTimestamp() message.channel.send(failTip) }) // 新增代码结束
版本适配说明
如果你使用的是 discord.js v14 及以上版本,需要将所有的Discord.MessageEmbed替换为Discord.EmbedBuilder,其余逻辑保持一致即可。
内容的提问来源于stack exchange,提问作者Whitzy
相关产品推荐
相关产品推荐

