mirror of
https://github.com/tribufu/node-gamedig
synced 2026-05-18 09:35:50 +00:00
Add Assetto Corsa support
This commit is contained in:
parent
211c2d1635
commit
9db659b86b
3 changed files with 43 additions and 0 deletions
41
protocols/assettocorsa.js
Normal file
41
protocols/assettocorsa.js
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
const Core = require('./core');
|
||||
|
||||
class AssettoCorsa extends Core {
|
||||
async run(state) {
|
||||
const serverInfo = await this.request({
|
||||
json: true,
|
||||
uri: `http://${this.options.address}:${this.options.port}/INFO`
|
||||
});
|
||||
const carInfo = await this.request({
|
||||
json: true,
|
||||
uri: `http://${this.options.address}:${this.options.port}/JSON|${parseInt(Math.random() * 999999999999999, 10)}`
|
||||
});
|
||||
|
||||
if (!serverInfo || !carInfo || !carInfo.Cars) {
|
||||
throw new Error('Query not successful');
|
||||
}
|
||||
|
||||
state.maxplayers = serverInfo.maxclients;
|
||||
state.name = serverInfo.name;
|
||||
state.map = serverInfo.track;
|
||||
state.password = serverInfo.pass;
|
||||
state.gamePort = serverInfo.port;
|
||||
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
|
||||
});
|
||||
}
|
||||
return r;
|
||||
}, state.players);
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = AssettoCorsa;
|
||||
Loading…
Add table
Add a link
Reference in a new issue