机器人正常运行时间 Discord.JS
Bot Uptime Discord.JS
我正在尝试获取我的机器人的正常运行时间。每次我 运行 无论是在我的桌面上还是在 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);
}
}
抱歉,我也不知道这个问题,也许是您的 "moment-duration-format" 有问题?我从未使用过它。
我这样计算了我的机器人的正常运行时间,希望它能帮助到你
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;
为什么要在非主文件中创建新的 Discord 客户端? 1 个代币 - 1 个客户
您需要 运行 您的命令与 (message, args, bot)
一起执行,然后您将获得正确的正常运行时间。
Your bot arg has undefined
property of bot.uptime
, because you not
loggin in with that "new" Client.
这是我为我的机器人做的:
我使用了 client.uptime()
模块。
const Discord = require("discord.js");
const client = new Discord.Client();
client.on('message', message => {
if (!message.content.startsWith(prefix) || message.author.bot) return;
const args = message.content.slice(prefix.length).trim().split(/ + /);
const command = args.shift().toLowerCase();
if (command === 'uptime') {
if (!message.content.startsWith(prefix) || message.author.bot) return;
let totalSeconds = (client.uptime / 1000);
let days = Math.floor(totalSeconds / 86400);
totalSeconds %= 86400;
let hours = Math.floor(totalSeconds / 3600);
totalSeconds %= 3600;
let minutes = Math.floor(totalSeconds / 60);
let seconds = Math.floor(totalSeconds % 60);
const embed = new Discord.MessageEmbed()
.setTitle(`Uptime`)
.addField("Days", `${days}`)
.addField("Hours", `${hours}`)
.addField("Minutes", `${minutes}`)
.addField("Seconds", `${seconds}`)
message.channel.send(embed);
}
});
client.login("YOUR TOKEN");
我正在尝试获取我的机器人的正常运行时间。每次我 运行 无论是在我的桌面上还是在 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);
}
}
抱歉,我也不知道这个问题,也许是您的 "moment-duration-format" 有问题?我从未使用过它。
我这样计算了我的机器人的正常运行时间,希望它能帮助到你
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;
为什么要在非主文件中创建新的 Discord 客户端? 1 个代币 - 1 个客户
您需要 运行 您的命令与 (message, args, bot)
一起执行,然后您将获得正确的正常运行时间。
Your bot arg has
undefined
property ofbot.uptime
, because you not loggin in with that "new" Client.
这是我为我的机器人做的:
我使用了 client.uptime()
模块。
const Discord = require("discord.js");
const client = new Discord.Client();
client.on('message', message => {
if (!message.content.startsWith(prefix) || message.author.bot) return;
const args = message.content.slice(prefix.length).trim().split(/ + /);
const command = args.shift().toLowerCase();
if (command === 'uptime') {
if (!message.content.startsWith(prefix) || message.author.bot) return;
let totalSeconds = (client.uptime / 1000);
let days = Math.floor(totalSeconds / 86400);
totalSeconds %= 86400;
let hours = Math.floor(totalSeconds / 3600);
totalSeconds %= 3600;
let minutes = Math.floor(totalSeconds / 60);
let seconds = Math.floor(totalSeconds % 60);
const embed = new Discord.MessageEmbed()
.setTitle(`Uptime`)
.addField("Days", `${days}`)
.addField("Hours", `${hours}`)
.addField("Minutes", `${minutes}`)
.addField("Seconds", `${seconds}`)
message.channel.send(embed);
}
});
client.login("YOUR TOKEN");