Bot Uptime Discord. JS - PullRequest
       16

Bot Uptime Discord. JS

0 голосов
/ 07 февраля 2020

Я пытаюсь получить время работы моего бота. Каждый раз, когда я запускаю его на своем рабочем столе или в Heroku, все, что он мне дает, это «0» для всех форматов времени.

const Discord = require('discord.js');
const moment = require("moment");
const bot = new Discord.Client();
require("moment-duration-format");
module.exports = {
    name: 'stats',
    description: "Bot Stats",
    execute(message, args){


          const duration = moment.duration(bot.uptime).format(" D [days], H [hrs], m [mins], s [secs]");

          const statEmbed = new Discord.RichEmbed()
          .setTitle("**  = STATISTICS =**")
          .addField("**Mem Usage  ::**", `**${(process.memoryUsage().heapUsed / 1024 / 1024).toFixed(2)} MB**`)
          .addField("**Uptime**", `**${duration}**`);

          message.channel.send(statEmbed)
        }
}

Ответы [ 2 ]

0 голосов
/ 07 февраля 2020

Почему вы создаете новый клиент Discord в неосновном файле? 1 токен - 1 клиент

Вам нужно запустить команду execute с (message, args, bot), и тогда вы получите правильное время работы.

Ваш аргумент бота имеет undefined свойство bot.uptime, поскольку вы не входите в систему с этим «новым» клиентом.

0 голосов
/ 07 февраля 2020

Извините, я тоже не знаю проблему, может быть, это проблема вашего "момента-продолжительности-формата"? Я никогда не работал с ним.

Я рассчитал время работы моего бота следующим образом, надеюсь, это поможет вам

let totalSeconds = (bot.uptime / 1000);
let days = Math.floor(totalSeconds / 86400);
let hours = Math.floor(totalSeconds / 3600);
totalSeconds %= 3600;
let minutes = Math.floor(totalSeconds / 60);
let seconds = totalSeconds % 60;
...