#javascript #node.js #discord #discord.js
#javascript #node.js #Discord #discord.js
Вопрос:
Я пытался создать команду ping для моего бота, вот мой код
client.on('message', message => {
if (message.content === ' ping') {
message.channel.send(`🏓Latency is ${m.createdTimestamp - message.createdTimestamp}ms. API Latency is ${Math.round(client.ws.ping)}ms`);
}
});
Однако в конечном итоге я получаю следующую ошибку
C:UsersujjwaDesktopAll DiscTest allindex.js:236
message.channel.send(`🏓Latency is ${m.createdTimestamp - message.createdTimestamp}ms. API Latency is ${Math.round(client.ws.ping)}ms`);
^
ReferenceError: m is not defined
at Client.<anonymous> (C:UserslolDesktopAll DiscTest allindex.js:236:42)
at Client.emit (events.js:327:22)
at MessageCreateAction.handle (C:UserslolDesktopAll DiscTest allnode_modulesdiscord.jssrcclientactionsMessageCreate.js:31:14)
at Object.module.exports [as MESSAGE_CREATE] (C:UserslolDesktopAll DiscTest allnode_modulesdiscord.jssrcclientwebsockethandlersMESSAGE_CREATE.js:4:32)
at WebSocketManager.handlePacket (C:UserslolDesktopAll DiscTest allnode_modulesdiscord.jssrcclientwebsocketWebSocketManager.js:386:31)
at WebSocketShard.onPacket (C:UserslolDesktopAll DiscTest allnode_modulesdiscord.jssrcclientwebsocketWebSocketShard.js:436:22)
at WebSocketShard.onMessage (C:UserslolDesktopAll DiscTest allnode_modulesdiscord.jssrcclientwebsocketWebSocketShard.js:293:10)
at WebSocket.onMessage (C:UserslolDesktopAll DiscTest allnode_moduleswslibevent-target.js:125:16)
at WebSocket.emit (events.js:315:20)
at Receiver.receiverOnMessage (C:UserslolDesktopAll DiscTest allnode_moduleswslibwebsocket.js:797:20)
Не могли бы вы мне помочь?
Комментарии:
1. Вы имели в виду
message
вместоm
? Или где вы определилиm
?2. о, спасибо, я имел в виду сообщение вон там
Ответ №1:
Вам нужно использовать Date.now() - message.createdTimestamp
, чтобы получить задержку.
client.on('message', message => {
if (message.content === ' ping') {
message.channel.send(`🏓Latency is ${Date.now() - message.createdTimestamp}ms. API Latency is ${Math.round(client.ws.ping)}ms`);
}
});
Комментарии:
1. Это позволит получить только время между API и ботом. Обычно при ping учитывается время, необходимое для отправки из A в B и обратно в A. Знание задержки одним способом все еще полезно, однако сравнение его с другими pings будет вводить в заблуждение.
2. Мы, конечно, можем реализовать такое предложение к ответу выше.
3. Idk что вы думаете о tbh, это показывает задержку api и бота — ту, с которой столкнется пользователь
4. Я просто указываю, что «ping» обычно относится ко времени прохождения сетевых пакетов от источника к месту назначения и обратно к источнику. Сравнение удаленного времени с местным покажет задержку между ними, но не обязательно туда и обратно.
5. В Discord «ping» относится к задержке.
Ответ №2:
client.on('message', message => {
if (message.content === prefix 'ping') {
message.channel.send('Loading data').then (async (msg) =>{
msg.delete()
message.channel.send(`🏓Latency is ${msg.createdTimestamp - message.createdTimestamp}ms. API Latency is ${Math.round(client.ws.ping)}ms`);
})
}
});
Комментарии:
1. 1. Не уверен, почему этот ответ был отклонен. Это более точно, потому что оно проверяет оба способа, как и должен выполнять ping. Сравнение
now
с меткой времени сообщения будет проверять только одностороннюю задержку.
Ответ №3:
Я использую это как свою команду Ping (извините, если я допускаю какую-либо ошибку, я только что изучил JavaScript за последние 2 дня)
module.exports={
name:'ping',
description: "Command ini digunakan untuk Ping",
execute(message, args){
message.channel.send(`🏓Latency is ${Date.now() - message.createdTimestamp}ms`);
}
};
Ответ №4:
вам нужно использовать .then(), чтобы иметь m:
client.on('message', message => {
if (message.content === ' ping') {
message.channel.send('pinging').then(m => {
m.edit(`🏓Latency is ${m.createdTimestamp - message.createdTimestamp}ms. API Latency is ${Math.round(client.ws.ping)}ms`);
});
}
});
Ответ №5:
вам нужно сделать
client.on('message', message => {
if (message.content === ' ping') {
message.channel.send(`🏓Latency is ${Date.now() - message.createdTimestamp}ms. API Latency is ${Math.round(client.ws.ping)}ms`);
}
});
Ответ №6:
Я использовал код, в котором теперь указана дата, а в сообщении создана временная метка и запрос api.
module.exports = {
name: "ping",
category: "info",
description: "Get bot ping :/",
usage: "ping",
run: (client, message) => {
message.channel.send(`**:ping_pong:Latency is ${Date.now() - message.createdTimestamp}ms. API Latency is ${Math.round(client.ws.ping)}ms.:ping_pong:**`);
}
}
Ответ №7:
Что касается меня, я использовал это, мне показалось, что это сработало для меня!
module.exports = {
name: 'ping',
discription: 'description',
execute(message, args) {
message.channel.send(`🏓 | Latency is: **${Date.now() - message.createdTimestamp}ms.**`);
},
};