Remove Players::setNum and stabilize field numplayers (#389)

* Remove Players Set Num

* Stabilize numplayers on armagetron

* Stabilize numplayers on ase

* Stabilize numplayers on assettocorsa

* Optimize away a variable declaration

* Stabilize numplayers on buildandshoot

* Stabilize numplayers on cs2d

* Fix wrong raw field parsed on Doom3

* Updated CHANGELOG and README regarding doom3 fix and numplayers

* Stabilize numplayers on doom3

* Stabilize numplayers on eco

* Stabilize numplayers on ffow

* Stabilize numplayers on quake2

* Stabilize numplayers on gamespy1

* Stabilize numplayers on gamespy2

* Stabilize numplayers on gamespy3

* Remove reductant numplayers setter in jc2mp

* Stabilize numplayers on kspdmp

* Stabilize numplayers on mafia2mp

* Stabilize numplayers on minecraftvanilla and remove players empty placeholders

* Stabilize numplayers on nadeo

* Stabilize numplayers on samp and reduce unused setters

* Stabilize numplayers on terraria

* Stabilize numplayers on tribes1

* Stabilize numplayers on unreal2

* Stabilize numplayers on valve

* Stabilize numplayers on ventrilo

* Battlefield: Set numplayers from info, not players

* Stabilize numplayers on minecraft

* Stabilize numplayers on teamspeak2

* Stabilize numplayers on teamspeak3

* Update CHANGELOG.md to add removal of players placeholders

* Replaced minecraft gamespy numplayers
This commit is contained in:
CosminPerRam 2023-10-27 19:48:56 +03:00 committed by GitHub
parent c51a75effb
commit da7a4a6334
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
37 changed files with 64 additions and 63 deletions

View file

@ -18,7 +18,7 @@ export default class samp extends Core {
state.raw.version = this.reader(consumed).string()
}
state.password = !!reader.uint(1)
state.raw.numplayers = reader.uint(2)
state.numplayers = reader.uint(2)
state.maxplayers = reader.uint(2)
state.name = reader.pascalString(4)
state.raw.gamemode = reader.pascalString(4)
@ -39,12 +39,10 @@ export default class samp extends Core {
// read players
// don't even bother if > 100 players, because the server won't respond
let gotPlayerData = false
if (state.raw.numplayers < 100) {
if (state.numplayers < 100) {
if (this.isVcmp) {
const reader = await this.sendPacket('c', true)
if (reader !== null) {
gotPlayerData = true
const playerCount = reader.uint(2)
for (let i = 0; i < playerCount; i++) {
const player = {}
@ -55,7 +53,6 @@ export default class samp extends Core {
} else {
const reader = await this.sendPacket('d', true)
if (reader !== null) {
gotPlayerData = true
const playerCount = reader.uint(2)
for (let i = 0; i < playerCount; i++) {
const player = {}
@ -68,10 +65,7 @@ export default class samp extends Core {
}
}
}
if (!gotPlayerData) {
state.players.setNum(state.raw.numplayers)
}
}
}
async sendPacket (type, allowTimeout) {
const outBuffer = Buffer.alloc(11)