general.ping: send nonce and use it to calculate rtt

This commit is contained in:
Cynthia Foxwell 2024-06-01 21:39:23 -06:00
parent 9c77cf9e16
commit d166bbe870

View file

@ -122,8 +122,8 @@ ping.description = "Measures response times to Discord.";
ping.addAlias("p"); ping.addAlias("p");
ping.callback = async function (msg) { ping.callback = async function (msg) {
const nonceTimestamp = msg.nonce && snowflakeToTimestamp(msg.nonce); const nonceTimestamp = msg.nonce && snowflakeToTimestamp(msg.nonce);
const now = snowflakeToTimestamp(msg.id); const msgTimestamp = snowflakeToTimestamp(msg.id);
const noncePing = Math.floor(now - nonceTimestamp); const noncePing = Math.floor(msgTimestamp - nonceTimestamp);
const gateway = hf.bot.shards.get( const gateway = hf.bot.shards.get(
hf.bot.guildShardMap[hf.bot.channelGuildMap[msg.channel.id]] || 0 hf.bot.guildShardMap[hf.bot.channelGuildMap[msg.channel.id]] || 0
@ -133,6 +133,7 @@ ping.callback = async function (msg) {
content: `Pong.\n**RTT:** \`...\`\n**Gateway:** \`${gateway}ms\`${ content: `Pong.\n**RTT:** \`...\`\n**Gateway:** \`${gateway}ms\`${
nonceTimestamp ? `\n**Your Message:** \`${noncePing}ms\`` : "" nonceTimestamp ? `\n**Your Message:** \`${noncePing}ms\`` : ""
}`, }`,
nonce: Date.now(),
allowedMentions: { allowedMentions: {
repliedUser: false, repliedUser: false,
}, },
@ -140,11 +141,9 @@ ping.callback = async function (msg) {
messageID: msg.id, messageID: msg.id,
}, },
}); });
const rtt = Math.floor( const rtt = Math.floor(newMsg.timestamp - newMsg.nonce);
newMsg.timestamp - (msg.editedTimestamp || msg.timestamp)
);
newMsg.edit({ await newMsg.edit({
content: `Pong.\n**RTT:** \`${rtt}ms\`\n**Gateway:** \`${gateway}ms\`${ content: `Pong.\n**RTT:** \`${rtt}ms\`\n**Gateway:** \`${gateway}ms\`${
nonceTimestamp ? `\n**Your Message:** \`${noncePing}ms\`` : "" nonceTimestamp ? `\n**Your Message:** \`${noncePing}ms\`` : ""
}`, }`,