Skip to content

v1.7.0

Latest

Choose a tag to compare

@xIGBClutchIx xIGBClutchIx released this 10 Oct 15:18
· 4 commits to main since this release
3448245

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 batch signal stops 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 01 ping and reports it as the new minecraft-legacy-ping source; 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 one timeoutMs deadline, 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 by gamename, and the result says which evidence decided it and lists every planned probe and its outcome. The CLI runs it as queryhost auto <host> [port].
  • steamAppId on registry definitions of named A2S games.
  • steamGameId on generic A2S data, the full 64-bit Steam game ID when the server advertises it, since the 16-bit appId truncates larger App IDs.
  • An onSource callback on QueryInput that reports each source as it starts and completes, with the exported QuerySourceEvent type. The completed reports match the result's sources, nothing is reported after the query resolves, and a callback that throws cannot change the result.
  • A crossplay hint on Minecraft Java and Bedrock data, with the exported MinecraftCrossplayHint type, 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