📅  最后修改于: 2023-12-03 15:10:38.768000             🧑  作者: Mango
本工具通过使用JavaScript的Node.js模块来监控你的Minecraft服务器状态。它可以检查服务器是否在线、检查玩家数量、检查Ping和传送延迟等。
首先,你需要安装Node.js。如果你还没有安装,请访问 https://nodejs.org/en/download/ 下载并安装。
接下来,你需要通过运行以下命令来安装所需的依赖项:
npm install mineflayer ping mcdata
你可以将以下代码保存为JavaScript文件,并通过运行 node <文件名>
来启动监控工具:
const mineflayer = require('mineflayer');
const ping = require('ping');
const mcdata = require('mcdata');
// 服务器的IP和端口
const serverIP = "服务器IP";
const serverPort = 25565;
// 监控间隔时间,以毫秒为单位
const monitoringInterval = 5000;
// 服务器状态
let serverStatus = {};
// 连接到服务器
const bot = mineflayer.createBot({
host: serverIP,
port: serverPort
});
// 监听bot连接成功事件
bot.once('spawn', () => {
console.log(`成功连接至${serverIP}:${serverPort}`);
// 每隔一段时间监控一次服务器状态
setInterval(() => {
// 检查服务器是否在线
ping.sys.probe(serverIP, (isAlive) => {
serverStatus.isOnline = isAlive;
if (isAlive) {
// 如果在线,则获取服务器信息
bot.mcData.ping((err, result) => {
if (err) {
console.error(err);
} else {
serverStatus.version = result.version.name;
serverStatus.players = `${result.players.online}/${result.players.max}`;
serverStatus.ping = `${result.ping}ms`;
}
});
// 获取传送延迟
bot.test.setInventorySlot(36, mcdata.itemsByName.bedrock.id, 0, (err) => {
if (err) {
console.error(err);
} else {
bot.test.bench((err) => {
if (err) {
console.error(err);
} else {
const delay = bot.test.getInventorySlot(36).nbt.value.Delay.value;
serverStatus.delay = `${delay}ms`;
}
});
}
});
}
});
}, monitoringInterval);
});
// 监听bot断开连接事件
bot.on('end', () => {
console.log(`与${serverIP}:${serverPort}的连接已断开`);
serverStatus = {};
});
监控工具将返回一个包含服务器状态信息的对象,信息包括:
你可以根据需要对返回值进行自定义处理。
本工具使用 MIT 许可证。