【发布时间】:2021-08-22 18:11:24
【问题描述】:
我正在尝试使用 discord.js 和 minecraft-server-util 编写 Minecraft 服务器信息检查器,但会检查 args 是否存在或只有 1 个参数不起作用,并且它正在通过这些检查而无所事事错了,但是当我不包含任何内容时,server-util 部分会向控制台发送错误“预期主机(参数)有内容,得到一个空字符串”如果你能帮助我,我不确定问题是什么那就太好了。
命令名称:@javaserverstatus 命令和前缀是 17 个字符,这就是为什么 slice 设置为 17。
client.on('message', (message) => {
const args = message.content.slice(17).trim().split(' ') // this is where args is defined.
if (message.content === `${prefix}javaserverstatus`) {
if (!args.length) {
return message.channel.send(`You didn't provide a server, ${message.author}!`) // checks if args exist
}
if (args.length > 1) {
return message.channel.send(`Wrong input! EG. play.hypixel.net, ${message.author}`) // checks if there are only 1 arguments
}
}
const util = require('minecraft-server-util')
var serverinfo = null
util
.status(args.toString()) // This code is giving an error saying args does not exist.
.then((response) => {
console.log(response)
serverinfo = response
const embed = new Discord.MessageEmbed()
.setTitle(args + ' Server Status')
.setColor(0xff0000)
.setDescription('IP: ' + response.host + '\n' + 'Port: ' + response.port + '\n' + 'Version: ' + response.version + '\n' + 'Online Players: ' + response.onlinePlayers.toString() + '\n' + 'Max Players: ' + response.maxPlayers.toString() + '\n')
message.channel.send(embed)
})
.catch((error) => {
console.error(error)
})
})
【问题讨论】:
标签: javascript discord discord.js minecraft