Added givenPortOnly user option

Allows user to disable gamedig's default behavior of adding query attempts using the default query port(-offset)
This commit is contained in:
cetteup 2020-08-24 20:27:44 +02:00
parent b99abcd8b3
commit a362d1d113
3 changed files with 9 additions and 3 deletions

View File

@ -43,6 +43,7 @@ this query port may work instead. (defaults to protocol default port)
will cause many queries to take longer even if the server is online. (default 2000) will cause many queries to take longer even if the server is online. (default 2000)
* **attemptTimeout**: number - Milliseconds allowed for an entire query attempt. This timeout is not commonly hit, * **attemptTimeout**: number - Milliseconds allowed for an entire query attempt. This timeout is not commonly hit,
as the socketTimeout typically fires first. (default 10000) as the socketTimeout typically fires first. (default 10000)
* **givenPortOnly**: boolean - Only attempt to query server on given port. (default false)
* **debug**: boolean - Enables massive amounts of debug logging to stdout. (default false) * **debug**: boolean - Enables massive amounts of debug logging to stdout. (default false)
### Return Value ### Return Value

7
bin/gamedig.js Normal file → Executable file
View File

@ -4,13 +4,15 @@ const Minimist = require('minimist'),
Gamedig = require('..'); Gamedig = require('..');
const argv = Minimist(process.argv.slice(2), { const argv = Minimist(process.argv.slice(2), {
boolean: ['pretty','debug'] boolean: ['pretty','debug','givenPortOnly']
}); });
const debug = argv.debug; const debug = argv.debug;
delete argv.debug; delete argv.debug;
const pretty = !!argv.pretty || debug; const pretty = !!argv.pretty || debug;
delete argv.pretty; delete argv.pretty;
const givenPortOnly = argv.givenPortOnly;
delete argv.givenPortOnly;
const options = {}; const options = {};
for(const key of Object.keys(argv)) { for(const key of Object.keys(argv)) {
@ -34,6 +36,9 @@ if (argv._.length >= 1) {
if (debug) { if (debug) {
options.debug = true; options.debug = true;
} }
if (givenPortOnly) {
options.givenPortOnly = true;
}
Gamedig.query(options) Gamedig.query(options)
.then((state) => { .then((state) => {

View File

@ -30,7 +30,7 @@ class QueryRunner {
const attempts = []; const attempts = [];
if (userOptions.port) { if (userOptions.port) {
if (gameQueryPortOffset) { if (gameQueryPortOffset && !userOptions.givenPortOnly) {
attempts.push({ attempts.push({
...defaultOptions, ...defaultOptions,
...gameOptions, ...gameOptions,
@ -38,7 +38,7 @@ class QueryRunner {
port: userOptions.port + gameQueryPortOffset port: userOptions.port + gameQueryPortOffset
}); });
} }
if (userOptions.port === gameOptions.port && gameQueryPort) { if (userOptions.port === gameOptions.port && gameQueryPort && !userOptions.givenPortOnly) {
attempts.push({ attempts.push({
...defaultOptions, ...defaultOptions,
...gameOptions, ...gameOptions,