ping-minecraft
Version:
A minecraft server ping & query tool
75 lines (68 loc) • 1.91 kB
JavaScript
import ping from './ping.mjs';
export default ping;
export { ping };
if (process.argv.length > 2) {
const q = process.argv[2];
const optionsArray = [];
for (var i = 3; i < process.argv.length; i++) {
optionsArray.push(process.argv[i]);
}
let dnsServer = 0;
let version = 0;
for (const opt of optionsArray) {
if (
opt == '-version' ||
opt == '-ver' ||
opt == '-v' ||
opt == 'version' ||
opt == 'ver' ||
opt == 'v'
) {
version = undefined;
} else if (version == undefined) {
version = opt;
} else if (opt == '-dns' || opt == '-d' || opt == 'dns' || opt == 'd') {
dnsServer = false;
} else if (dnsServer == false) {
dnsServer = opt;
}
}
console.log('Running Ping-Minecraft at', new Date(), '\n');
console.log('target :', q);
dnsServer ? console.log('dns :', dnsServer) : null;
ping(q, {
filterBogon: false,
dnsServer: dnsServer,
version: version,
})
.then((res) => {
if (res.ip) {
console.log('ip :', res.ip, '\n');
}
if (res.error) {
console.log('error :', res.error, '\n');
return;
}
console.log('port :', res.port, '\n');
console.log(
'version :',
res.version.name + ' (' + res.version.protocol + ')'
);
console.log('players :', res.players.current + '/' + res.players.max);
console.log(
' sample :',
res.players.sample && res.players.sample.length > 0
? res.players.sample.length + ' players'
: '0 players'
);
for (const s of res.players.sample) {
console.log(' ' + s.name + ' (' + s.id + ')');
}
console.log('motd :', res.description);
console.log('favicon :', res.favicon.length, 'chars');
console.log('');
})
.catch((err) => {
console.error(err);
});
}