Javascript I';我在编写一个不和谐机器人,但当我';我使用ping命令,它显示0毫秒。我应该怎么做?
我正在尝试执行ping命令,但当我使用它时,ping为0Javascript I';我在编写一个不和谐机器人,但当我';我使用ping命令,它显示0毫秒。我应该怎么做?,javascript,node.js,discord,discord.js,Javascript,Node.js,Discord,Discord.js,我正在尝试执行ping命令,但当我使用它时,ping为0 const{MessageEmbed}=require(“discord.js”); module.exports={ 姓名:"平",, description:“这是ping命令”, 执行(消息、参数、不一致){ const msg=message.channel.send(“**ping…**”)。然后((m)=>m.delete({timeout:0})); const embed=new MessageEmbed().setCol
const{MessageEmbed}=require(“discord.js”);
module.exports={
姓名:"平",,
description:“这是ping命令”,
执行(消息、参数、不一致){
const msg=message.channel.send(“**ping…**”)。然后((m)=>m.delete({timeout:0}));
const embed=new MessageEmbed().setColor(“#42d242”).setDescription(`**:沙漏沙:${message.createdTimestamp-message.createdTimestamp}**`);
message.channel.send(嵌入);
},
};
对于初学者,您使用的是message.createdTimestamp-message.createdTimestamp
。如果我们用一个随机数代替它们来表示时间,我们会得到573-573
。显然这等于零。你是在从数字本身减去数字。试试像这样的东西
var ping = await msg.channel.send("Fetching ping...");
const pingEmb = new MessageEmbed()
.setColor("#42d242")
.setDescription(`:hourglass_flowing_sand: Heartbeat is ${client.ws.ping}ms,\nMessage Roundtrip took ${ping.createdTimestamp - message.createdTimestamp}ms.`);
return ping.edit("", {
embed: pingEmb
});
您的代码总是返回0的原因是您正在从自身中扣除,这将始终导致0,因为它是相同的数字
解决方案是创建一个函数,并使用该函数获取并从中扣除
const{MessageEmbed}=require(“discord.js”);
module.exports={
姓名:"平",,
description:“这是ping命令”,
执行(消息、参数、不一致){
const msg=message.channel.send(“**ping…**”)。然后((m)=>m.delete({timeout:0}));
const embed=new MessageEmbed().setColor(“#42d242”).setDescription(`**:沙漏沙:${new Date().getTime()-message.createdTimestamp}**`);
message.channel.send(嵌入);
},
};
message.createdTimestamp-message.createdTimestamp
就像计算1-1
,它总是会返回0,因为你在扣除相同的数字。当他们可以使用msg
的createdTimestamp
值时,为什么要使用new Date().getTime()
?在我的经验中,使用newdate().getTime()
不如msg.createdTimestamp-message.createdTimestamp
准确,但是ymmv@APartOfMe如果使用msg.createdTimestamp
测量的是两条消息之间的时间,而不是当前时间。此方法可能导致ping更高。