Discord.js Ping 号码问题

6 javascript bots ping discord

所以我最近决定制作一个Discord机器人,并且已经毫无问题地学习了一些教程。然而,当我尝试发出 ping 命令(你知道,那种说“你的 ping 是137 ms”)时,我得到了没有意义的数字。

-627 ms, 32 ms, 1001 ms, -10 ms,等数字238 ms。基本上予取予求之间-10001000

现在纠正我,如果我错了,但我很确定得到负数意味着我什至在我要求之前就发送了响应,而且我几乎可以肯定我没有写一个预知机器人:P

我花了一些时间在网上寻找为什么我收到奇怪的 ping 号码的原因,但我想出了 zilch。我心想,“嗯…………也许我把它们生成错了。” 所以我查看了其他人如何使用 discord.js生成他们的数字...

...aaa我撞到了一堵墙。据我所知,没有人尝试过使用 discord.js 生成 ping 数。如果他们有,他们还没有在网上分享他们的宝贵发现。至少,在我看来是这样的。(如果您有此类教程或帖子的链接,请发送给我)

我正在生成数字${Date.now() - message.createdTimestamp}这是我发现生成它们的唯一方法,所以如果有人有更好的方法,我很乐意看到它。

该代码段与我的其余代码非常吻合(是的,它是一个非常无聊的机器人):

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

client.on('ready', () => {
    console.log('Bot is up and running!');
});

var prefix = "?"

client.on('message', message => {
    if (message.author.bot) return;
    if (!message.content.startsWith(prefix)) return;

    if (message.content.startsWith(prefix + 'ping')) {
        message.channel.sendMessage('Pong! Your ping is `' + `${Date.now() - message.createdTimestamp}` + ' ms`');
    }
});

client.login(token);
Run Code Online (Sandbox Code Playgroud)

如果有人能给我一个为什么我得到负数的原因,或者给我一个更好的方法来生成它们,我将非常感激。提前致谢。

Bus*_*men 1

您可能会得到不同的结果,因为该结果Date.now基于您计算机的时钟并且message.createdTimestamp来自 Discord 服务器(而不是您的计算机)时钟。

没有人共享 ping 功能的原因是它只是读取客户端对象属性client.ws.ping

https://discord.js.org/#/docs/main/stable/class/WebSocketManager?scrollTo=ping