You need to enable JavaScript to run this app. 新手开发Discord.js机器人:如何实现ping触发pong的Embed回复?
优惠活动
大模型
产品
解决方案
定价
更多

新手开发Discord.js机器人:如何实现ping触发pong的Embed回复?

代码改造方案

改造后的完整基础代码

const Discord = require('discord.js');
const client = new Discord.Client();

client.on('message', message => {
  // 过滤机器人自身消息,避免死循环
  if (message.author.bot) return;
  if (message.content.startsWith('ping!')) {
    // 构造Embed消息
    const pongEmbed = new Discord.MessageEmbed()
      .setDescription('pong!') // 若需要将pong放在标题位置,替换为.setTitle('pong')即可
      .setColor('#0099ff')
      .setTimestamp();
    // 发送Embed回复
    message.reply({ embeds: [pongEmbed] });
  }
});

client.on('ready', () => {
   console.log('I am ready!'); 
});

client.login('your bot token');

关键改动说明

  • 新增机器人消息过滤:添加if (message.author.bot) return;判断,避免机器人收到自身发送的消息后反复触发回复逻辑,造成死循环。
  • 新增Embed构造逻辑:使用discord.js内置的MessageEmbed类生成嵌入消息,可根据需求自由调整样式(颜色、标题、附加字段等),基础版本直接配置显示pong即可。
  • 回复传参适配:采用embeds数组的对象格式传参,适配discord.js v13及以上版本的API要求;如果使用v12及更早版本,可将回复语句改为message.reply(pongEmbed);直接传入Embed实例。
  • 新版事件适配:如果使用discord.js v14及以上版本,需要将监听消息的事件从client.on('message', ...)修改为client.on('messageCreate', ...),旧版message事件在v14中已被废弃,无法正常触发。

内容的提问来源于stack exchange,提问作者Soumyajit Is Live

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.01 15:54:03