diff --git a/CHANGELOG.md b/CHANGELOG.md index 1f49af4..88b7468 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ +### 3.0.1 +* Clarified that nodejs 12 is now required for gamedig 3 +* Fixed misc player fields not going into `raw` subobject in `assettocorsa`, `fivem`, and `gamespy2` + ### 3.0.0 Major Changes: +* **NodeJS 12 is now required** * The `name` field is now guaranteed to exist on all player objects. If a player's name is unknown, the `name` will be an empty string. * All non-`name` player fields have been moved into a `raw` sub-field. This means that, like the `raw` subobject of the parent response, all non-`name` fields are now considered to be unstable and may be changed during minor releases of GameDig. diff --git a/package-lock.json b/package-lock.json index 9948560..4a2b8dd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "gamedig", - "version": "2.0.21", + "version": "3.0.1", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -51,9 +51,9 @@ } }, "@types/node": { - "version": "8.10.61", - "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.61.tgz", - "integrity": "sha512-l+zSbvT8TPRaCxL1l9cwHCb0tSqGAGcjPJFItGGYat5oCTiq1uQQKYg5m7AF1mgnEBzFXGLJ2LRmNjtreRX76Q==" + "version": "12.20.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.7.tgz", + "integrity": "sha512-gWL8VUkg8VRaCAUgG9WmhefMqHmMblxe2rVpMF86nZY/+ZysU+BkAp+3cz03AixWDSSz0ks5WX59yAhv/cDwFA==" }, "@types/responselike": { "version": "1.0.0", diff --git a/package.json b/package.json index 63e5dd7..65010ab 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ ], "main": "lib/index.js", "author": "GameDig Contributors", - "version": "3.0.0", + "version": "3.0.1", "repository": { "type": "git", "url": "https://github.com/gamedig/node-gamedig.git" @@ -34,7 +34,7 @@ }, "license": "MIT", "engines": { - "node": ">=8.0.0" + "node": ">=12.0.0" }, "dependencies": { "cheerio": "^1.0.0-rc.3", @@ -61,6 +61,6 @@ ], "devDependencies": { "@types/cheerio": "^0.22.21", - "@types/node": "^8.10.61" + "@types/node": "^12.20.7" } } diff --git a/protocols/assettocorsa.js b/protocols/assettocorsa.js index 1bbb9ba..98d9fac 100644 --- a/protocols/assettocorsa.js +++ b/protocols/assettocorsa.js @@ -23,19 +23,18 @@ class AssettoCorsa extends Core { state.raw.carInfo = carInfo.Cars; state.raw.serverInfo = serverInfo; - state.players = carInfo.Cars.reduce((r, e) => { - if (e.IsConnected) { - r.push({ - name: e.DriverName, - car: e.Model, - skin: e.Skin, - nation: e.DriverNation, - team: e.DriverTeam + for (const car of carInfo.Cars) { + if (car.IsConnected) { + state.players.push({ + name: car.DriverName, + car: car.Model, + skin: car.Skin, + nation: car.DriverNation, + team: car.DriverTeam }); } - return r; - }, state.players); + } } } -module.exports = AssettoCorsa; \ No newline at end of file +module.exports = AssettoCorsa; diff --git a/protocols/fivem.js b/protocols/fivem.js index 20af4c2..8fc0288 100644 --- a/protocols/fivem.js +++ b/protocols/fivem.js @@ -25,7 +25,6 @@ class FiveM extends Quake2 { responseType: 'json' }); state.raw.players = json; - state.players = []; for (const player of json) { state.players.push({name: player.name, ping: player.ping}); } diff --git a/protocols/gamespy2.js b/protocols/gamespy2.js index 2936762..b913859 100644 --- a/protocols/gamespy2.js +++ b/protocols/gamespy2.js @@ -29,7 +29,9 @@ class Gamespy2 extends Core { { const body = await this.sendPacket([0, 0xff, 0]); const reader = this.reader(body); - state.players = this.readFieldData(reader); + for (const rawPlayer of this.readFieldData(reader)) { + state.players.push(rawPlayer); + } } // Parse teams