gamedig / node-gamedig

Query game servers and not only! Node.JS/Deno/Bun or Bash (via the CLI).
https://www.npmjs.com/package/gamedig
MIT License
600 stars 147 forks source link

bug: Trackmania Nations Forever Query not possible #634

Open Hornochs opened 4 days ago

Hornochs commented 4 days ago

Describe the bug Querying Trackmania Nations Forever is not possible and runs into an error

Steps To Reproduce

GameDig.query({ type: 'trackmaniaforever', host: '10.13.37.7', port: '5000', login: 'User', password: 'User', debug: true }).then((state) => { console.log(state); }).catch((error) => { console.log(Server is offline, error: ${error}); });


**Expected behavior**
Successfull Query

**Screenshots or Data**
Following is the Debug Log:

Q#0 DNS Lookup: 10.13.37.7 Q#0 Raw IP Address: 10.13.37.7 Q#0 Registered RTT: 87ms Q#0 Query failed with error Error: XML-RPC fault: Method 'GetCurrentMapInfo' not defined at createFault (/home/stephanschaffner/gamedig/node_modules/xmlrpc/lib/deserializer.js:83:21) at Deserializer.onDone (/home/stephanschaffner/gamedig/node_modules/xmlrpc/lib/deserializer.js:89:21) at SAXStream.emit (node:events:517:28) at SAXStream._parser.onend (/home/stephanschaffner/gamedig/node_modules/sax/lib/sax.js:190:10) at emit (/home/stephanschaffner/gamedig/node_modules/sax/lib/sax.js:624:35) at end (/home/stephanschaffner/gamedig/node_modules/sax/lib/sax.js:667:5) at SAXParser.end (/home/stephanschaffner/gamedig/node_modules/sax/lib/sax.js:154:24) at SAXStream.end (/home/stephanschaffner/gamedig/node_modules/sax/lib/sax.js:248:18) at StringStream.onend (/home/stephanschaffner/gamedig/node_modules/string-to-stream/node_modules/readable-stream/lib/_stream_readable.js:577:10) at Object.onceWrapper (node:events:631:28)



**Additional context**
I'm in the finding if its a GameDig Bug, or a GameServer Bug
CosminPerRam commented 3 days ago

Seems like its a GameDig issue. The query fails here: https://github.com/gamedig/node-gamedig/blob/30ed54dfcdbc5fb1d7fb5f7e1d23c61ec1e640c3/protocols/nadeo.js#L23 And if you comment this, then here: https://github.com/gamedig/node-gamedig/blob/30ed54dfcdbc5fb1d7fb5f7e1d23c61ec1e640c3/protocols/nadeo.js#L43 If I comment both blocks, the query succeeds.

Maybe the API changed or the server hasnt loaded a map yet, still investigating.

Hornochs commented 3 days ago

Or maybe the current handler is for the current games? Trackmania Nations (Forever) is quite old. Maybe the API was changed with the later Nadeo Games?

CosminPerRam commented 17 hours ago

Or maybe the current handler is for the current games? Trackmania Nations (Forever) is quite old. Maybe the API was changed with the later Nadeo Games?

No, as far as I know the protocol hasn't changed in a good while.

Some docs regarding available methods: ListMethods.txt (renamed to .txt from .html cause Github wouldn't let me attach it otherwise).