From a054557f1076f2676be4388bd26cfdc6df89e652 Mon Sep 17 00:00:00 2001 From: mmorrison Date: Sun, 6 Jan 2019 18:52:03 -0600 Subject: [PATCH] Clean up imports to make Intellij code analysis happy --- lib/HexUtil.js | 1 + lib/index.js | 2 ++ lib/reader.js | 1 + protocols/americasarmy.js | 4 +++- protocols/armagetron.js | 4 +++- protocols/ase.js | 4 +++- protocols/battlefield.js | 5 +++-- protocols/buildandshoot.js | 5 +++-- protocols/doom3.js | 4 +++- protocols/ffow.js | 4 +++- protocols/fivem.js | 5 +++-- protocols/gamespy1.js | 5 +++-- protocols/gamespy2.js | 4 +++- protocols/gamespy3.js | 10 +++++++--- protocols/geneshift.js | 5 +++-- protocols/hexen2.js | 4 +++- protocols/jc2mp.js | 4 +++- protocols/killingfloor.js | 4 +++- protocols/kspdmp.js | 5 +++-- protocols/m2mp.js | 4 +++- protocols/minecraft.js | 6 ++++-- protocols/mumble.js | 4 +++- protocols/mumbleping.js | 4 +++- protocols/nadeo.js | 5 +++-- protocols/openttd.js | 5 +++-- protocols/quake1.js | 4 +++- protocols/quake2.js | 4 +++- protocols/quake3.js | 4 +++- protocols/starmade.js | 4 +++- protocols/teamspeak2.js | 5 +++-- protocols/teamspeak3.js | 5 +++-- protocols/terraria.js | 5 +++-- protocols/tribes1.js | 4 +++- protocols/tribes1master.js | 4 +++- protocols/unreal2.js | 5 +++-- protocols/ut2004.js | 4 +++- protocols/ut3.js | 4 +++- protocols/valve.js | 28 ++++++++++++++++++++++------ protocols/ventrilo.js | 4 +++- protocols/warsow.js | 4 +++- 40 files changed, 139 insertions(+), 57 deletions(-) diff --git a/lib/HexUtil.js b/lib/HexUtil.js index c819589..483f6b6 100644 --- a/lib/HexUtil.js +++ b/lib/HexUtil.js @@ -1,4 +1,5 @@ class HexUtil { + /** @param {Buffer} buffer */ static debugDump(buffer) { let hexLine = ''; let chrLine = ''; diff --git a/lib/index.js b/lib/index.js index 5a8c5c7..c0466f0 100644 --- a/lib/index.js +++ b/lib/index.js @@ -101,5 +101,7 @@ class Gamedig { } } +Gamedig.debug = false; +Gamedig.isCommandLine = false; module.exports = Gamedig; diff --git a/lib/reader.js b/lib/reader.js index 2974e71..662c9a2 100644 --- a/lib/reader.js +++ b/lib/reader.js @@ -126,6 +126,7 @@ class Reader { return r; } + /** @returns Buffer */ part(bytes) { let r; if(this.remaining() >= bytes) { diff --git a/protocols/americasarmy.js b/protocols/americasarmy.js index 2f7fb15..cf92afc 100644 --- a/protocols/americasarmy.js +++ b/protocols/americasarmy.js @@ -1,4 +1,6 @@ -class AmericasArmy extends require('./gamespy2') { +const Gamespy2 = require('./gamespy2'); + +class AmericasArmy extends Gamespy2 { finalizeState(state) { super.finalizeState(state); state.name = this.stripColor(state.name); diff --git a/protocols/armagetron.js b/protocols/armagetron.js index f67259e..e156023 100644 --- a/protocols/armagetron.js +++ b/protocols/armagetron.js @@ -1,4 +1,6 @@ -class Armagetron extends require('./core') { +const Core = require('./core'); + +class Armagetron extends Core { constructor() { super(); this.encoding = 'latin1'; diff --git a/protocols/ase.js b/protocols/ase.js index 73f5357..038a7c7 100644 --- a/protocols/ase.js +++ b/protocols/ase.js @@ -1,4 +1,6 @@ -class Ase extends require('./core') { +const Core = require('./core'); + +class Ase extends Core { run(state) { this.udpSend('s',(buffer) => { const reader = this.reader(buffer); diff --git a/protocols/battlefield.js b/protocols/battlefield.js index 26f641b..9f3463f 100644 --- a/protocols/battlefield.js +++ b/protocols/battlefield.js @@ -1,6 +1,7 @@ -const async = require('async'); +const async = require('async'), + Core = require('./core'); -class Battlefield extends require('./core') { +class Battlefield extends Core { constructor() { super(); this.encoding = 'latin1'; diff --git a/protocols/buildandshoot.js b/protocols/buildandshoot.js index c8ba5c8..6620c40 100644 --- a/protocols/buildandshoot.js +++ b/protocols/buildandshoot.js @@ -1,6 +1,7 @@ -const request = require('request'); +const request = require('request'), + Core = require('./core'); -class BuildAndShoot extends require('./core') { +class BuildAndShoot extends Core { run(state) { request({ uri: 'http://'+this.options.address+':'+this.options.port_query+'/', diff --git a/protocols/doom3.js b/protocols/doom3.js index 3267df6..dc55713 100644 --- a/protocols/doom3.js +++ b/protocols/doom3.js @@ -1,4 +1,6 @@ -class Doom3 extends require('./core') { +const Core = require('./core'); + +class Doom3 extends Core { constructor() { super(); this.pretty = 'Doom 3'; diff --git a/protocols/ffow.js b/protocols/ffow.js index 905cb7a..6df907b 100644 --- a/protocols/ffow.js +++ b/protocols/ffow.js @@ -1,4 +1,6 @@ -class Ffow extends require('./valve') { +const Valve = require('./valve'); + +class Ffow extends Valve { constructor() { super(); this.byteorder = 'be'; diff --git a/protocols/fivem.js b/protocols/fivem.js index a7c708d..49ed7a7 100644 --- a/protocols/fivem.js +++ b/protocols/fivem.js @@ -1,6 +1,7 @@ -const request = require('request'); +const request = require('request'), + Quake2 = require('./quake2'); -class FiveM extends require('./quake2') { +class FiveM extends Quake2 { constructor() { super(); this.sendHeader = 'getinfo xxx'; diff --git a/protocols/gamespy1.js b/protocols/gamespy1.js index 7dc9b16..76a078d 100644 --- a/protocols/gamespy1.js +++ b/protocols/gamespy1.js @@ -1,6 +1,7 @@ -const async = require('async'); +const async = require('async'), + Core = require('./core'); -class Gamespy1 extends require('./core') { +class Gamespy1 extends Core { constructor() { super(); this.sessionId = 1; diff --git a/protocols/gamespy2.js b/protocols/gamespy2.js index 2e70194..d6c7f25 100644 --- a/protocols/gamespy2.js +++ b/protocols/gamespy2.js @@ -1,4 +1,6 @@ -class Gamespy2 extends require('./core') { +const Core = require('./core'); + +class Gamespy2 extends Core { constructor() { super(); this.sessionId = 1; diff --git a/protocols/gamespy3.js b/protocols/gamespy3.js index 3768746..48ace96 100644 --- a/protocols/gamespy3.js +++ b/protocols/gamespy3.js @@ -1,6 +1,7 @@ -const async = require('async'); +const async = require('async'), + Core = require('./core'); -class Gamespy3 extends require('./core') { +class Gamespy3 extends Core { constructor() { super(); this.sessionId = 1; @@ -12,7 +13,10 @@ class Gamespy3 extends require('./core') { } run(state) { - let challenge,packets; + let challenge; + + /** @type Buffer[] */ + let packets; async.series([ (c) => { diff --git a/protocols/geneshift.js b/protocols/geneshift.js index 71f5fe4..bdfff25 100644 --- a/protocols/geneshift.js +++ b/protocols/geneshift.js @@ -1,6 +1,7 @@ -const request = require('request'); +const request = require('request'), + Core = require('./core'); -class GeneShift extends require('./core') { +class GeneShift extends Core { run(state) { request({ uri: 'http://geneshift.net/game/receiveLobby.php', diff --git a/protocols/hexen2.js b/protocols/hexen2.js index 09006dd..067b23c 100644 --- a/protocols/hexen2.js +++ b/protocols/hexen2.js @@ -1,4 +1,6 @@ -class Hexen2 extends require('./quake1') { +const Quake1 = require('./quake1'); + +class Hexen2 extends Quake1 { constructor() { super(); this.sendHeader = '\xFFstatus\x0a'; diff --git a/protocols/jc2mp.js b/protocols/jc2mp.js index 28e2f70..2c704e1 100644 --- a/protocols/jc2mp.js +++ b/protocols/jc2mp.js @@ -1,6 +1,8 @@ +const Gamespy3 = require('./gamespy3'); + // supposedly, gamespy3 is the "official" query protocol for jcmp, // but it's broken (requires useOnlySingleSplit), and doesn't include player names -class Jc2mp extends require('./gamespy3') { +class Jc2mp extends Gamespy3 { constructor() { super(); this.useOnlySingleSplit = true; diff --git a/protocols/killingfloor.js b/protocols/killingfloor.js index 87e7470..ab50dda 100644 --- a/protocols/killingfloor.js +++ b/protocols/killingfloor.js @@ -1,4 +1,6 @@ -class KillingFloor extends require('./unreal2') { +const Unreal2 = require('./unreal2'); + +class KillingFloor extends Unreal2 { readExtraInfo(reader,state) { state.raw.wavecurrent = reader.uint(4); state.raw.wavetotal = reader.uint(4); diff --git a/protocols/kspdmp.js b/protocols/kspdmp.js index 328f988..9008c15 100644 --- a/protocols/kspdmp.js +++ b/protocols/kspdmp.js @@ -1,6 +1,7 @@ -const request = require('request'); +const request = require('request'), + Core = require('./core'); -class Kspdmp extends require('./core') { +class Kspdmp extends Core { run(state) { request({ uri: 'http://'+this.options.address+':'+this.options.port_query, diff --git a/protocols/m2mp.js b/protocols/m2mp.js index 3948c13..262b728 100644 --- a/protocols/m2mp.js +++ b/protocols/m2mp.js @@ -1,4 +1,6 @@ -class M2mp extends require('./core') { +const Core = require('./core'); + +class M2mp extends Core { constructor() { super(); this.encoding = 'latin1'; diff --git a/protocols/minecraft.js b/protocols/minecraft.js index f8719f9..61c0730 100644 --- a/protocols/minecraft.js +++ b/protocols/minecraft.js @@ -1,5 +1,6 @@ const varint = require('varint'), - async = require('async'); + async = require('async'), + Core = require('./core'); function varIntBuffer(num) { return Buffer.from(varint.encode(num)); @@ -14,8 +15,9 @@ function buildPacket(id,data) { ]); } -class Minecraft extends require('./core') { +class Minecraft extends Core { run(state) { + /** @type Buffer */ let receivedData; async.series([ diff --git a/protocols/mumble.js b/protocols/mumble.js index c0a9793..cf3f060 100644 --- a/protocols/mumble.js +++ b/protocols/mumble.js @@ -1,4 +1,6 @@ -class Mumble extends require('./core') { +const Core = require('./core'); + +class Mumble extends Core { constructor() { super(); this.options.socketTimeout = 5000; diff --git a/protocols/mumbleping.js b/protocols/mumbleping.js index 142e7e8..30a4adf 100644 --- a/protocols/mumbleping.js +++ b/protocols/mumbleping.js @@ -1,4 +1,6 @@ -class MumblePing extends require('./core') { +const Core = require('./core'); + +class MumblePing extends Core { constructor() { super(); this.byteorder = 'be'; diff --git a/protocols/nadeo.js b/protocols/nadeo.js index 77f2ce2..fe851c0 100644 --- a/protocols/nadeo.js +++ b/protocols/nadeo.js @@ -1,7 +1,8 @@ const gbxremote = require('gbxremote'), - async = require('async'); + async = require('async'), + Core = require('./core'); -class Nadeo extends require('./core') { +class Nadeo extends Core { constructor() { super(); this.options.port = 2350; diff --git a/protocols/openttd.js b/protocols/openttd.js index f8db0bb..39558ad 100644 --- a/protocols/openttd.js +++ b/protocols/openttd.js @@ -1,7 +1,8 @@ const async = require('async'), - moment = require('moment'); + moment = require('moment'), + Core = require('./core'); -class OpenTtd extends require('./core') { +class OpenTtd extends Core { run(state) { async.series([ (c) => { diff --git a/protocols/quake1.js b/protocols/quake1.js index 6130f17..be1dca2 100644 --- a/protocols/quake1.js +++ b/protocols/quake1.js @@ -1,4 +1,6 @@ -class Quake1 extends require('./quake2') { +const Quake2 = require('./quake2'); + +class Quake1 extends Quake2 { constructor() { super(); this.responseHeader = 'n'; diff --git a/protocols/quake2.js b/protocols/quake2.js index 4550cda..b9f8706 100644 --- a/protocols/quake2.js +++ b/protocols/quake2.js @@ -1,4 +1,6 @@ -class Quake2 extends require('./core') { +const Core = require('./core'); + +class Quake2 extends Core { constructor() { super(); this.encoding = 'latin1'; diff --git a/protocols/quake3.js b/protocols/quake3.js index 0168066..77a1be1 100644 --- a/protocols/quake3.js +++ b/protocols/quake3.js @@ -1,4 +1,6 @@ -class Quake3 extends require('./quake2') { +const Quake2 = require('./quake2'); + +class Quake3 extends Quake2 { constructor() { super(); this.sendHeader = 'getstatus'; diff --git a/protocols/starmade.js b/protocols/starmade.js index ffccc9e..a1ee3ce 100644 --- a/protocols/starmade.js +++ b/protocols/starmade.js @@ -1,4 +1,6 @@ -class Starmade extends require('./core') { +const Core = require('./core'); + +class Starmade extends Core { constructor() { super(); this.encoding = 'latin1'; diff --git a/protocols/teamspeak2.js b/protocols/teamspeak2.js index 0112e24..d2e665e 100644 --- a/protocols/teamspeak2.js +++ b/protocols/teamspeak2.js @@ -1,6 +1,7 @@ -const async = require('async'); +const async = require('async'), + Core = require('./core'); -class Teamspeak2 extends require('./core') { +class Teamspeak2 extends Core { run(state) { async.series([ (c) => { diff --git a/protocols/teamspeak3.js b/protocols/teamspeak3.js index a6718ce..3d4e59a 100644 --- a/protocols/teamspeak3.js +++ b/protocols/teamspeak3.js @@ -1,6 +1,7 @@ -const async = require('async'); +const async = require('async'), + Core = require('./core'); -class Teamspeak3 extends require('./core') { +class Teamspeak3 extends Core { run(state) { async.series([ (c) => { diff --git a/protocols/terraria.js b/protocols/terraria.js index 451fa4d..e343f00 100644 --- a/protocols/terraria.js +++ b/protocols/terraria.js @@ -1,6 +1,7 @@ -const request = require('request'); +const request = require('request'), + Core = require('./core'); -class Terraria extends require('./core') { +class Terraria extends Core { run(state) { request({ uri: 'http://'+this.options.address+':'+this.options.port_query+'/v2/server/status', diff --git a/protocols/tribes1.js b/protocols/tribes1.js index 6769088..ece5efe 100644 --- a/protocols/tribes1.js +++ b/protocols/tribes1.js @@ -1,4 +1,6 @@ -class Tribes1 extends require('./core') { +const Core = require('./core'); + +class Tribes1 extends Core { constructor() { super(); this.encoding = 'latin1'; diff --git a/protocols/tribes1master.js b/protocols/tribes1master.js index 31f10e2..b06cf83 100644 --- a/protocols/tribes1master.js +++ b/protocols/tribes1master.js @@ -1,6 +1,8 @@ +const Core = require('./core'); + /** Unsupported -- use at your own risk!! */ -class Tribes1Master extends require('./core') { +class Tribes1Master extends Core { constructor() { super(); this.encoding = 'latin1'; diff --git a/protocols/unreal2.js b/protocols/unreal2.js index e995e9f..a34021a 100644 --- a/protocols/unreal2.js +++ b/protocols/unreal2.js @@ -1,6 +1,7 @@ -const async = require('async'); +const async = require('async'), + Core = require('./core'); -class Unreal2 extends require('./core') { +class Unreal2 extends Core { constructor() { super(); this.encoding = 'latin1'; diff --git a/protocols/ut2004.js b/protocols/ut2004.js index 7458d74..ab36ed1 100644 --- a/protocols/ut2004.js +++ b/protocols/ut2004.js @@ -1,4 +1,6 @@ -class Ut2004 extends require('./unreal2') { +const Unreal2 = require('./unreal2'); + +class Ut2004 extends Unreal2 { readExtraInfo(reader,state) { state.raw.ping = reader.uint(4); state.raw.flags = reader.uint(4); diff --git a/protocols/ut3.js b/protocols/ut3.js index 18c932d..20fd9b2 100644 --- a/protocols/ut3.js +++ b/protocols/ut3.js @@ -1,4 +1,6 @@ -class Ut3 extends require('./gamespy3') { +const Gamespy3 = require('./gamespy3'); + +class Ut3 extends Gamespy3 { finalizeState(state) { super.finalizeState(state); diff --git a/protocols/valve.js b/protocols/valve.js index af24d31..a925a57 100644 --- a/protocols/valve.js +++ b/protocols/valve.js @@ -1,7 +1,8 @@ const async = require('async'), - Bzip2 = require('compressjs').Bzip2; + Bzip2 = require('compressjs').Bzip2, + Core = require('./core'); -class Valve extends require('./core') { +class Valve extends Core { constructor() { super(); @@ -128,7 +129,7 @@ class Valve extends require('./core') { queryChallenge(state,c) { if(this.legacyChallenge) { - this.sendPacket(0x57,false,false,0x41,(b) => { + this.sendPacket(0x57,false,null,0x41,(b) => { // sendPacket will catch the response packet and // save the challenge for us c(); @@ -140,7 +141,7 @@ class Valve extends require('./core') { queryPlayers(state,c) { state.raw.players = []; - this.sendPacket(0x55,true,false,0x44,(b) => { + this.sendPacket(0x55,true,null,0x44,(b) => { const reader = this.reader(b); const num = reader.uint(1); for(let i = 0; i < num; i++) { @@ -175,7 +176,7 @@ class Valve extends require('./core') { queryRules(state,c) { state.raw.rules = {}; - this.sendPacket(0x56,true,false,0x45,(b) => { + this.sendPacket(0x56,true,null,0x45,(b) => { const reader = this.reader(b); const num = reader.uint(2); for(let i = 0; i < num; i++) { @@ -237,7 +238,22 @@ class Valve extends require('./core') { c(); } - sendPacket(type,sendChallenge,payload,expect,callback,ontimeout) { + /** + * @param {number} type + * @param {boolean} sendChallenge + * @param {?string|Buffer} payload + * @param {number} expect + * @param {function(Buffer)} callback + * @param {(function():boolean)=} ontimeout + **/ + sendPacket( + type, + sendChallenge, + payload, + expect, + callback, + ontimeout + ) { const packetStorage = {}; const receivedFull = (reader) => { diff --git a/protocols/ventrilo.js b/protocols/ventrilo.js index f26e807..95acdc1 100644 --- a/protocols/ventrilo.js +++ b/protocols/ventrilo.js @@ -1,4 +1,6 @@ -class Ventrilo extends require('./core') { +const Core = require('./core'); + +class Ventrilo extends Core { constructor() { super(); this.byteorder = 'be'; diff --git a/protocols/warsow.js b/protocols/warsow.js index 2061eac..b5f82e0 100644 --- a/protocols/warsow.js +++ b/protocols/warsow.js @@ -1,4 +1,6 @@ -class Warsow extends require('./quake3') { +const Quake3 = require('./quake3'); + +class Warsow extends Quake3 { finalizeState(state) { super.finalizeState(state); if(state.players) {