Fix raw player subobject in fivem, assettocorsa, gamespy2 Fixes #222

Clarify nodejs 12 requirement for gamedig 3 Fixes #220
Release 3.0.1
This commit is contained in:
Michael Morrison 2021-04-10 22:27:33 -05:00
parent d65a24dc18
commit fec5a1fac6
6 changed files with 25 additions and 20 deletions

View File

@ -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.

8
package-lock.json generated
View File

@ -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",

View File

@ -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"
}
}

View File

@ -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;
module.exports = AssettoCorsa;

View File

@ -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});
}

View File

@ -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