mirror of
https://github.com/tribufu/node-gamedig
synced 2026-05-06 07:07:33 +00:00
* feat: refactor to use http only * feat: place entire player data in raw field * feat: add basic data to raw * feat: remove rejectUnauthorized usage * docs: add GAMES_LIST.md entry * docs: add note about mods usage
49 lines
1.1 KiB
JavaScript
49 lines
1.1 KiB
JavaScript
import Core from './core.js'
|
|
|
|
export default class hytale extends Core {
|
|
async run (state) {
|
|
this.usedTcp = true
|
|
|
|
const response = await this.queryEndpoint()
|
|
|
|
state.raw.basic = response.Basic
|
|
|
|
if (response.Server) {
|
|
state.name = response.Server.Name
|
|
state.version = response.Server.Version
|
|
state.maxplayers = response.Server.MaxPlayers
|
|
state.raw.server = response.Server
|
|
}
|
|
|
|
if (response.Universe) {
|
|
state.numplayers = response.Universe.CurrentPlayers
|
|
state.map = response.Universe.DefaultWorld
|
|
state.raw.universe = response.Universe
|
|
}
|
|
|
|
if (response.Players) {
|
|
state.players = response.Players.map(player => ({
|
|
name: player.Name,
|
|
raw: player
|
|
}))
|
|
}
|
|
|
|
if (response.Plugins) {
|
|
state.raw.plugins = response.Plugins
|
|
}
|
|
}
|
|
|
|
async queryEndpoint () {
|
|
const url = `http://${this.options.host}:${this.options.port}/Nitrado/Query`
|
|
|
|
const requestOptions = {
|
|
url,
|
|
headers: {
|
|
Accept: 'application/json'
|
|
},
|
|
responseType: 'json'
|
|
}
|
|
|
|
return await this.request(requestOptions)
|
|
}
|
|
}
|