Repository navigation
Added
queryMany(inputs, options), which queries many servers with bounded concurrency (8 by default, at most 64) and yields{ index, input, result }entries as each settles. A failed target is a failure entry, never a rejected batch, and a batchsignalstops starting new inputs and cancels those in flight. Breaking out of the loop early cancels outstanding queries and waits for their cleanup.- A Minecraft Java legacy ping fallback for pre-1.7 servers (Beta 1.8 through 1.6). When a server closes or rejects the modern status handshake, the query retries once with the
FE 01ping and reports it as the newminecraft-legacy-pingsource; SLP timeouts do not fall back. Legacy results have no favicon, and Beta 1.8 through 1.3 servers report no version or protocol, so those fields are omitted. detect({ host, port? }), which identifies the game a server runs without the caller naming it, then returns that game's typed query result. It probes the protocol and port pairs the registry's conventions allow, at most 8 by default (maxProbes, up to 16) and four at a time within onetimeoutMsdeadline, resolves the host once, and cancels the remaining probes as soon as one answers. A2S games are told apart by their advertised Steam App ID, Cfx servers bygamename, and the result says whichevidencedecided it and lists every planned probe and its outcome. The CLI runs it asqueryhost auto <host> [port].steamAppIdon registry definitions of named A2S games.steamGameIdon generic A2S data, the full 64-bit Steam game ID when the server advertises it, since the 16-bitappIdtruncates larger App IDs.- An
onSourcecallback onQueryInputthat reports each source as it starts and completes, with the exportedQuerySourceEventtype. The completed reports match the result'ssources, nothing is reported after the query resolves, and a callback that throws cannot change the result. - A
crossplayhint on Minecraft Java and Bedrock data, with the exportedMinecraftCrossplayHinttype, when a server advertises a Geyser bridge for players of the other edition: a Geyser or Floodgate plugin in Java Query's plugin list, or Geyser's default sub-MOTD in a Bedrock pong. It costs no extra requests, and its absence does not mean the server is single-edition.
The legacy ping counts against each query's 16-attempt outbound limit like any other connection, so a query that has already used up its attempts reports the outbound limit instead of opening an extra socket.
Full changelog: v1.6.0...v1.7.0