@imeaces/mcping-tool
Version:
Ping Minecraft in a more complex way
27 lines • 845 B
JavaScript
import * as dns from "node:dns";
import { createPendingPromise } from "./lib.js";
export function resolveMinecraftServerSrvRecord(name, timeout = 5000) {
const pendingPromise = createPendingPromise();
dns.resolveSrv("_minecraft._tcp." + name, onDnsReceive);
// 超时设置
setTimeout(() => {
pendingPromise.resolve(null);
}, timeout);
function onDnsReceive(e, r) {
try {
if (e || !r || r.length === 0) {
pendingPromise.resolve(null);
}
else {
let record = r[0];
let { name: ip, port } = record;
pendingPromise.resolve({ ip, port });
}
}
catch {
//nothing, just wait until timeout
}
}
return pendingPromise.promise;
}
//# sourceMappingURL=srv.js.map