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

Node.js 16+DiscordJS v13实现带延迟数据的Discord机器人Embed消息

适配DiscordJS v13的ping命令完整实现

首先需要在命令文件头部引入MessageEmbed构造器,完整代码如下:

const { MessageEmbed } = require('discord.js');

module.exports = {
    name: "ping",
    execute(message, args) {
        // 发送临时消息计算往返延迟
        message.channel.send("正在计算延迟...").then(sentMsg => {
            // 机器人自身往返延迟:临时消息创建时间 - 原命令消息创建时间
            const botLatency = sentMsg.createdTimestamp - message.createdTimestamp;
            // Discord官方API延迟
            const apiLatency = Math.round(message.client.ws.ping);

            // 构造Embed实例
            const pingEmbed = new MessageEmbed()
                .setColor('#5865F2') // 可替换为你需要的色值,和示例匹配即可
                .setTitle('🏓 Pong')
                .addFields(
                    { name: '机器人延迟', value: `${botLatency}ms`, inline: true },
                    { name: 'API延迟', value: `${apiLatency}ms`, inline: true }
                )
                .setTimestamp()
                .setFooter({
                    text: `请求由 ${message.author.tag} 触发`,
                    iconURL: message.author.displayAvatarURL({ dynamic: true })
                });

            // 替换临时消息为Embed
            sentMsg.edit({
                content: null,
                embeds: [pingEmbed]
            });
        });
    },
};

关键说明

  • DiscordJS v13必须通过MessageEmbed构造器生成嵌入消息,不可直接传入对象字面量
  • 计算逻辑完全符合需求:通过两条消息的时间戳差得到机器人自身的实际响应延迟,API延迟直接调用客户端内置的WebSocket ping值,数据准确
  • 可自行调整Embed的setColor、字段名称、图标等参数,和你预期的示例样式对齐即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 18:18:01