mirror of
https://github.com/gamedig/node-gamedig.git
synced 2024-10-07 09:23:52 +02:00
708988213f
I am not sure if the TShock API changed this recently or what, but it returns a string in the current version (4.3.26 for Terraria 1.3.5.3), and comparing it to an integer was incorrectly causing an "Invalid status" error.
27 lines
721 B
JavaScript
27 lines
721 B
JavaScript
const Core = require('./core');
|
|
|
|
class Terraria extends Core {
|
|
async run(state) {
|
|
const body = await this.request({
|
|
uri: 'http://'+this.options.address+':'+this.options.port+'/v2/server/status',
|
|
qs: {
|
|
players: 'true',
|
|
token: this.options.token
|
|
}
|
|
});
|
|
|
|
const json = JSON.parse(body);
|
|
if(json.status !== '200') throw new Error('Invalid status');
|
|
|
|
for (const one of json.players) {
|
|
state.players.push({name:one.nickname,team:one.team});
|
|
}
|
|
|
|
state.name = json.name;
|
|
state.gamePort = json.port;
|
|
state.raw.numplayers = json.playercount;
|
|
}
|
|
}
|
|
|
|
module.exports = Terraria;
|