feat: add requestPlayers option (#624)

* feat: add  option

* docs: alter readme
This commit is contained in:
CosminPerRam 2024-09-01 16:13:03 +03:00 committed by GitHub
parent 0fe87c52eb
commit e74ae933b3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 11 additions and 3 deletions

View file

@ -4,6 +4,7 @@
* Fix: `Deus Ex` using the wrong protocol (#621)
* Fix: `Soldier ff Fortune` using the wrong protocol (#623)
* Feat: For the Quake2 protocol `version`'s field, also look for `version` in the raw object
* Feat: Add option `requestPlayers`, defaults to `true`.
## 5.1.2
* Added Vintage Story support via the master server (#606)

View file

@ -55,6 +55,7 @@ Confused on how this works, or you want to see more? Checkout the [examples](/ex
| **ipFamily** | number | 0 | IP family/version returned when looking up hostnames via DNS, can be 0 (IPv4 and IPv6), 4 (IPv4 only) or 6 (IPv6 only). |
| **debug** | boolean | false | Enables massive amounts of debug logging to stdout. |
| **requestRules** | boolean | false | Valve games only. Additional 'rules' may be fetched into the `raw` key. |
| **requestPlayers** | boolean | true | Valve games only. Disable this if you don't want to fetch players data. |
| **requestRulesRequired** | boolean | false | Valve games only. `requestRules` is always required to have a response or the query will timeout. |
| **requestPlayersRequired** | boolean | false | Valve games only. Querying players is always required to have a response or the query will timeout. Some [games](GAMES_LIST.md) may not provide a players response. |
| **stripColors** | boolean | true | Enables stripping colors for protocols: unreal2, savage2, quake3, nadeo, gamespy2, doom3, armagetron. |

View file

@ -6,11 +6,12 @@ import Minimist from 'minimist'
import { GameDig } from './../lib/index.js'
const argv = Minimist(process.argv.slice(2), {
boolean: ['pretty', 'debug', 'givenPortOnly', 'requestRules', 'requestRulesRequired', 'requestPlayersRequired', 'stripColors', 'portCache', 'noBreadthOrder', 'checkOldIDs'],
boolean: ['pretty', 'debug', 'givenPortOnly', 'requestRules', 'requestPlayers', 'requestRulesRequired', 'requestPlayersRequired', 'stripColors', 'portCache', 'noBreadthOrder', 'checkOldIDs'],
string: ['guildId', 'serverId', 'listenUdpPort', 'ipFamily', 'token'],
default: {
stripColors: true,
portCache: true
portCache: true,
requestPlayers: true
}
})

View file

@ -9,7 +9,8 @@ const defaultOptions = {
stripColors: true,
portCache: true,
noBreadthOrder: false,
ipFamily: 0
ipFamily: 0,
requestPlayers: true
}
export default class QueryRunner {

View file

@ -163,6 +163,10 @@ export default class valve extends Core {
async queryPlayers (/** Results */ state) {
state.raw.players = []
if (!this.options.requestPlayers) {
return
}
this.logger.debug('Requesting player list ...')
const b = await this.sendPacket(
this.goldsrcInfo ? undefined : 0x55,