如何为Discord机器人实现命令触发Embed回复功能?
解决Discord机器人发送Embed消息的问题
- 你的代码片段存在两个问题:
if语句块为空,缺少核心的消息处理逻辑;同时没有添加指定频道的判断条件。 - 以下是完整的实现代码,假设你的命令前缀为
!,需要触发的指定频道ID为目标频道ID:
// 定义前缀和目标频道ID const prefix = "!"; const targetChannelId = "目标频道ID"; // 替换成你实际要指定的频道ID client.on("message", msg => { // 忽略机器人自身发送的消息,避免循环触发 if (msg.author.bot) return; // 判断是否在指定频道,且输入的是目标命令 if (msg.channel.id === targetChannelId && msg.content.startsWith(prefix + "hello")) { // 构建Embed消息 const embed = new client.discord.MessageEmbed() .setColor("#0099ff") .setTitle("问候") .setDescription(`你好呀,${msg.author.username}!`) .setTimestamp(); // 发送构造好的Embed消息 msg.channel.send({ embeds: [embed] }); } });
- 需要注意的细节:
- 确保使用的Discord.js版本为v13及以上,新版本用
MessageEmbed和embeds参数;若为旧版本,需替换为RichEmbed和embed参数。 - 开启Discord的开发者模式,才能复制到正确的频道ID替换代码中的
目标频道ID。 - 确认机器人在目标频道拥有发送消息的权限。
- 确保使用的Discord.js版本为v13及以上,新版本用
内容的提问来源于stack exchange,提问作者TekIcyOP
相关产品推荐
相关产品推荐

