Skip to content

Commit ddb4ff4

Browse files
committed
fix: possible nil player in game events on rare occasion
Make sure to create/update players in gameState (`playersByEntityID`, `playersByUserID`) on connection status changes. Sometimes players raw info are not available on controller entity creation so it would result in missing players in `gameState.playersByUserID`. It may be related to player disconnection as the affected player got disconnected at the beginning of the demo. fix akiver/cs-demo-manager#904
1 parent 894aeb3 commit ddb4ff4

File tree

1 file changed

+1
-0
lines changed

1 file changed

+1
-0
lines changed

pkg/demoinfocs/datatables.go

+1
Original file line numberDiff line numberDiff line change
@@ -563,6 +563,7 @@ func (p *parser) bindNewPlayerControllerS2(controllerEntity st.Entity) {
563563
pl := p.getOrCreatePlayerFromControllerEntity(controllerEntity)
564564

565565
controllerEntity.Property("m_iConnected").OnUpdate(func(val st.PropertyValue) {
566+
pl := p.getOrCreatePlayerFromControllerEntity(controllerEntity)
566567
state := val.S2UInt32()
567568
wasConnected := pl.IsConnected
568569
pl.IsConnected = state == 0

0 commit comments

Comments
 (0)