mirror of
https://github.com/AsgardEternal/SquadJS.git
synced 2024-09-28 14:04:25 -05:00
fix+chore: improved server information parsing + fixed server public slots count
This commit is contained in:
parent
685248df56
commit
522b85cdcc
@ -76,7 +76,7 @@ export default class SquadServer extends EventEmitter {
|
|||||||
await this.logParser.watch();
|
await this.logParser.watch();
|
||||||
|
|
||||||
await this.updateSquadList();
|
await this.updateSquadList();
|
||||||
await this.updatePlayerList();
|
await this.updatePlayerList(this);
|
||||||
await this.updateLayerInformation();
|
await this.updateLayerInformation();
|
||||||
await this.updateA2SInformation();
|
await this.updateA2SInformation();
|
||||||
|
|
||||||
@ -96,12 +96,13 @@ export default class SquadServer extends EventEmitter {
|
|||||||
port: this.options.rconPort,
|
port: this.options.rconPort,
|
||||||
password: this.options.rconPassword,
|
password: this.options.rconPassword,
|
||||||
autoReconnectInterval: this.options.rconAutoReconnectInterval,
|
autoReconnectInterval: this.options.rconAutoReconnectInterval,
|
||||||
|
dumpRconResponsesToFile: this.options.dumpRconResponsesToFile,
|
||||||
passThroughPort: this.options.rconPassThroughPort,
|
passThroughPort: this.options.rconPassThroughPort,
|
||||||
passThrough: this.options.rconPassThrough
|
passThrough: this.options.rconPassThrough
|
||||||
});
|
});
|
||||||
|
|
||||||
this.rcon.on('CHAT_MESSAGE', async (data) => {
|
this.rcon.on('CHAT_MESSAGE', async (data) => {
|
||||||
data.player = await this.getPlayerByEOSID(data.steamID);
|
data.player = await this.getPlayerBySteamID(data.steamID);
|
||||||
this.emit('CHAT_MESSAGE', data);
|
this.emit('CHAT_MESSAGE', data);
|
||||||
|
|
||||||
const command = data.message.match(/!([^ ]+) ?(.*)/);
|
const command = data.message.match(/!([^ ]+) ?(.*)/);
|
||||||
@ -113,7 +114,7 @@ export default class SquadServer extends EventEmitter {
|
|||||||
});
|
});
|
||||||
|
|
||||||
this.rcon.on('POSSESSED_ADMIN_CAMERA', async (data) => {
|
this.rcon.on('POSSESSED_ADMIN_CAMERA', async (data) => {
|
||||||
data.player = await this.getPlayerByEOSID(data.steamID);
|
data.player = await this.getPlayerBySteamID(data.steamID);
|
||||||
|
|
||||||
this.adminsInAdminCam[ data.steamID ] = data.time;
|
this.adminsInAdminCam[ data.steamID ] = data.time;
|
||||||
|
|
||||||
@ -121,7 +122,7 @@ export default class SquadServer extends EventEmitter {
|
|||||||
});
|
});
|
||||||
|
|
||||||
this.rcon.on('UNPOSSESSED_ADMIN_CAMERA', async (data) => {
|
this.rcon.on('UNPOSSESSED_ADMIN_CAMERA', async (data) => {
|
||||||
data.player = await this.getPlayerByEOSID(data.steamID);
|
data.player = await this.getPlayerBySteamID(data.steamID);
|
||||||
if (this.adminsInAdminCam[ data.steamID ]) {
|
if (this.adminsInAdminCam[ data.steamID ]) {
|
||||||
data.duration = data.time.getTime() - this.adminsInAdminCam[ data.steamID ].getTime();
|
data.duration = data.time.getTime() - this.adminsInAdminCam[ data.steamID ].getTime();
|
||||||
} else {
|
} else {
|
||||||
@ -144,19 +145,19 @@ export default class SquadServer extends EventEmitter {
|
|||||||
});
|
});
|
||||||
|
|
||||||
this.rcon.on('PLAYER_KICKED', async (data) => {
|
this.rcon.on('PLAYER_KICKED', async (data) => {
|
||||||
data.player = await this.getPlayerByEOSID(data.steamID);
|
data.player = await this.getPlayerBySteamID(data.steamID);
|
||||||
|
|
||||||
this.emit('PLAYER_KICKED', data);
|
this.emit('PLAYER_KICKED', data);
|
||||||
});
|
});
|
||||||
|
|
||||||
this.rcon.on('PLAYER_BANNED', async (data) => {
|
this.rcon.on('PLAYER_BANNED', async (data) => {
|
||||||
data.player = await this.getPlayerByEOSID(data.steamID);
|
data.player = await this.getPlayerBySteamID(data.steamID);
|
||||||
|
|
||||||
this.emit('PLAYER_BANNED', data);
|
this.emit('PLAYER_BANNED', data);
|
||||||
});
|
});
|
||||||
|
|
||||||
this.rcon.on('SQUAD_CREATED', async (data) => {
|
this.rcon.on('SQUAD_CREATED', async (data) => {
|
||||||
data.player = await this.getPlayerByEOSID(data.playerSteamID, true);
|
data.player = await this.getPlayerBySteamID(data.playerSteamID, true);
|
||||||
delete data.playerName;
|
delete data.playerName;
|
||||||
delete data.playerSteamID;
|
delete data.playerSteamID;
|
||||||
|
|
||||||
@ -213,7 +214,7 @@ export default class SquadServer extends EventEmitter {
|
|||||||
|
|
||||||
this.rcon.addIds(data.steamID, data.eosID)
|
this.rcon.addIds(data.steamID, data.eosID)
|
||||||
|
|
||||||
data.player = await this.getPlayerByEOSID(data.steamID);
|
data.player = await this.getPlayerBySteamID(data.steamID);
|
||||||
if (data.player) data.player.suffix = data.playerSuffix;
|
if (data.player) data.player.suffix = data.playerSuffix;
|
||||||
|
|
||||||
delete data.steamID;
|
delete data.steamID;
|
||||||
@ -223,7 +224,7 @@ export default class SquadServer extends EventEmitter {
|
|||||||
});
|
});
|
||||||
|
|
||||||
this.logParser.on('PLAYER_DISCONNECTED', async (data) => {
|
this.logParser.on('PLAYER_DISCONNECTED', async (data) => {
|
||||||
data.player = await this.getPlayerByEOSID(data.steamID);
|
data.player = await this.getPlayerBySteamID(data.steamID);
|
||||||
|
|
||||||
delete data.steamID;
|
delete data.steamID;
|
||||||
|
|
||||||
@ -379,8 +380,8 @@ export default class SquadServer extends EventEmitter {
|
|||||||
players.push({
|
players.push({
|
||||||
...oldPlayerInfo[ player.steamID ],
|
...oldPlayerInfo[ player.steamID ],
|
||||||
...player,
|
...player,
|
||||||
playercontroller: this.logParser.eventStore.players[player.steamID]
|
playercontroller: this.logParser.eventStore.players[ player.steamID ]
|
||||||
? this.logParser.eventStore.players[player.steamID].controller
|
? this.logParser.eventStore.players[ player.steamID ].controller
|
||||||
: null,
|
: null,
|
||||||
squad: await this.getSquadByID(player.teamID, player.squadID)
|
squad: await this.getSquadByID(player.teamID, player.squadID)
|
||||||
});
|
});
|
||||||
@ -484,16 +485,22 @@ export default class SquadServer extends EventEmitter {
|
|||||||
|
|
||||||
const info = {
|
const info = {
|
||||||
raw: data,
|
raw: data,
|
||||||
serverName: data.name,
|
serverName: data.ServerName_s,
|
||||||
|
|
||||||
maxPlayers: parseInt(data.MaxPlayers),
|
maxPlayers: parseInt(data.MaxPlayers),
|
||||||
publicSlots: parseInt(data.PublicQueueLimit_I),
|
publicQueueLimit: parseInt(data.PublicQueueLimit_I),
|
||||||
reserveSlots: parseInt(data.PlayerReserveCount_I),
|
reserveSlots: parseInt(data.PlayerReserveCount_I),
|
||||||
|
|
||||||
a2sPlayerCount: parseInt(data.PlayerCount_I),
|
playerCount: parseInt(data.PlayerCount_I),
|
||||||
publicQueue: parseInt(data.PublicQueue_I),
|
publicQueue: parseInt(data.PublicQueue_I),
|
||||||
reserveQueue: parseInt(data.ReservedQueue_I),
|
reserveQueue: parseInt(data.ReservedQueue_I),
|
||||||
|
|
||||||
|
currentLayer: data.MapName_s,
|
||||||
|
nextLayer: data.NextLayer_s,
|
||||||
|
|
||||||
|
teamOne: data.TeamOne_s.replace(new RegExp(data.MapName_s, "i"), ''),
|
||||||
|
teamTwo: data.TeamTwo_s.replace(new RegExp(data.MapName_s, "i"), ''),
|
||||||
|
|
||||||
matchTimeout: parseFloat(data.MatchTimeout_d),
|
matchTimeout: parseFloat(data.MatchTimeout_d),
|
||||||
gameVersion: data.GameVersion_s
|
gameVersion: data.GameVersion_s
|
||||||
};
|
};
|
||||||
@ -501,10 +508,10 @@ export default class SquadServer extends EventEmitter {
|
|||||||
this.serverName = info.serverName;
|
this.serverName = info.serverName;
|
||||||
|
|
||||||
this.maxPlayers = info.maxPlayers;
|
this.maxPlayers = info.maxPlayers;
|
||||||
this.publicSlots = info.publicSlots;
|
this.publicSlots = info.maxPlayers - info.reserveSlots;
|
||||||
this.reserveSlots = info.reserveSlots;
|
this.reserveSlots = info.reserveSlots;
|
||||||
|
|
||||||
this.a2sPlayerCount = info.a2sPlayerCount;
|
this.a2sPlayerCount = info.playerCount;
|
||||||
this.publicQueue = info.publicQueue;
|
this.publicQueue = info.publicQueue;
|
||||||
this.reserveQueue = info.reserveQueue;
|
this.reserveQueue = info.reserveQueue;
|
||||||
|
|
||||||
@ -512,6 +519,7 @@ export default class SquadServer extends EventEmitter {
|
|||||||
this.gameVersion = info.gameVersion;
|
this.gameVersion = info.gameVersion;
|
||||||
|
|
||||||
this.emit('UPDATED_A2S_INFORMATION', info);
|
this.emit('UPDATED_A2S_INFORMATION', info);
|
||||||
|
this.emit('UPDATED_SERVER_INFORMATION', info);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
Logger.verbose('SquadServer', 1, 'Failed to update A2S information.', err);
|
Logger.verbose('SquadServer', 1, 'Failed to update A2S information.', err);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user