mirror of
https://github.com/gamedig/node-gamedig.git
synced 2024-11-18 09:40:38 +01:00
a7c3b5474c
* add top level version on existing entries * start adding version on new protocols WIP * add version to more games * more games with version * add more games * more version * even more games with version * add 'delete state.raw.version' * fix delete version * Update CHANGELOG.md * add version in Results.js * more games * add new game * more games * add version on README * add new game * other game * new game * add unreal2 version * add ventrilo version * add eldewrito eldewrito * add beammp version * fix starmade version * add new version in samp protocol * docs: tweak the changelog line a bit --------- Co-authored-by: CosminPerRam <cosmin.p@live.com>
33 lines
971 B
JavaScript
33 lines
971 B
JavaScript
import Core from './core.js'
|
|
import beammpmaster from './beammpmaster.js'
|
|
|
|
export default class beammp extends Core {
|
|
async run (state) {
|
|
const master = new beammpmaster()
|
|
master.options = this.options
|
|
const masterState = await master.runOnceSafe()
|
|
const servers = masterState.raw.servers
|
|
const server = servers.find(s => s.ip === this.options.host)
|
|
|
|
if (!server) {
|
|
throw new Error('Server not found in the master list')
|
|
}
|
|
|
|
state.name = server.sname.replace(/\^./g, '')
|
|
state.map = server.map
|
|
state.password = server.password
|
|
state.numplayers = parseInt(server.players)
|
|
state.maxplayers = parseInt(server.players)
|
|
|
|
const players = server.playerslist.split(';')
|
|
if (players[players.length - 1] === '') {
|
|
players.pop()
|
|
}
|
|
players.forEach(player => {
|
|
state.players.push({ name: player })
|
|
})
|
|
|
|
state.raw = server
|
|
if ('version' in state.raw) state.version = state.raw.version
|
|
}
|
|
}
|