【Discord Bot】discord.jsでpingを測る方法
こんにちは!
今日はdiscord.jsにてpingを測る方法を書いていきます。
そもそもpingって?
pingというのは...
このようにBotの反応速度を示すものが多いです。
または単に、「Pong!」と返すものもあります。(Botの応答テストによく使われています。)
今回は上の「反応速度を表示する」ものを作っていきます。
discord.jsにおけるPingの種類
discord.jsには、Ping値(反応速度)を示すものは2つあります。
1.WebSocketのPing
WebSocket(ws)でpingを出す場合、
client.ws.ping
で出すことができます。
一般にはこっちのpingのほうがよく使われています。
サンプルコード:(一部割愛しています)
const discord = require("discord.js");
const client = new discord.Client();//このあたりも自分のコードに入っていると思います。
//この間に起動処理やウェブページ表示処理が入りますが割愛します。
client.on('message', async message => {
if (message.author.id == client.user.id || message.author.bot) return;
if (!message.content.startsWith(prefix)) return; //ボットのプレフィックスからメッセージが始まっているか確認
const args = message.content.slice(prefix.length).trim().split(/ +/g);
const command = args.shift().toLowerCase();
if (command === "ping") {
message.reply(`Ping値は${client.ws.ping}msです。`);//Ping値を投稿
}
});
2.APIレイテンシ
参考記事:https://stackoverflow.com/questions/63411268/discord-js-ping-command
APIレイテンシでpingを出す場合、
Date.now() - message.createdTimestamp
で出すことができます。
これの意味は、「今の時間」から「メッセージが投稿された時間」を引いたものです。
基本的にさっきのWebSocketより値が多くなります。
サンプルコード:(一部割愛)
const discord = require("discord.js");
const client = new discord.Client();//このあたりも自分のコードに入っていると思います。
//この間に起動処理やウェブページ表示処理が入りますが割愛します。
client.on('message', async message => {
if (message.author.id == client.user.id || message.author.bot) return;
if (!message.content.startsWith(prefix)) return; //ボットのプレフィックスからメッセージが始まっているか確認
const args = message.content.slice(prefix.length).trim().split(/ +/g);
const command = args.shift().toLowerCase();
if (command === "ping") {
message.reply(`Ping値は${Date.now() - message.createdTimestamp}msです。`);//Ping値を投稿
}
});
以上です!
--------------------------------------
あっ、スキも押していってくださいね~
食べ物がランダムで出ますよ(((なんだそれは
また、マガジンに登録したり、私をフォローしてくれたらプログラミング言語がランダムで出ますよ()