diff --git a/csgo/demo_parser.go b/csgo/demo_parser.go index e7f1ffe..6213940 100644 --- a/csgo/demo_parser.go +++ b/csgo/demo_parser.go @@ -165,6 +165,27 @@ func (p *DemoParser) getMatchPlayerBySteamID(stats []*ent.MatchPlayer, steamId u return nil } +func setMatchPlayerColor(matchPlayer *ent.MatchPlayer, demoPlayer *common.Player) { + matchPlayer.Crosshair = demoPlayer.CrosshairCode() + switch demoPlayer.Color() { + case common.Yellow: + matchPlayer.Color = matchplayer.ColorYellow + break + case common.Green: + matchPlayer.Color = matchplayer.ColorGreen + break + case common.Purple: + matchPlayer.Color = matchplayer.ColorPurple + break + case common.Blue: + matchPlayer.Color = matchplayer.ColorBlue + break + case common.Orange: + matchPlayer.Color = matchplayer.ColorOrange + break + } +} + func (p *DemoParser) parseWorker() { for demo := range p.demoQueue { if demo.MatchId == 0 { @@ -344,6 +365,14 @@ func (p *DemoParser) parseWorker() { } }) + // onPlayerConnected + demoParser.RegisterEventHandler(func(e events.PlayerTeamChange) { + if e.Player != nil { + tMatchPlayer := p.getMatchPlayerBySteamID(tStats, e.Player.SteamID64) + setMatchPlayerColor(tMatchPlayer, e.Player) + } + }) + // onMatchStart demoParser.RegisterEventHandler(func(e events.MatchStart) { gs := demoParser.GameState() @@ -352,26 +381,7 @@ func (p *DemoParser) parseWorker() { if demoPlayer != nil && demoPlayer.SteamID64 != 0 { tMatchPlayer := p.getMatchPlayerBySteamID(tStats, demoPlayer.SteamID64) - tMatchPlayer.Crosshair = demoPlayer.CrosshairCode() - switch demoPlayer.Color() { - case common.Yellow: - tMatchPlayer.Color = matchplayer.ColorYellow - break - case common.Green: - tMatchPlayer.Color = matchplayer.ColorGreen - break - case common.Purple: - tMatchPlayer.Color = matchplayer.ColorPurple - break - case common.Blue: - tMatchPlayer.Color = matchplayer.ColorBlue - break - case common.Orange: - tMatchPlayer.Color = matchplayer.ColorOrange - break - default: - tMatchPlayer.Color = matchplayer.ColorGrey - } + setMatchPlayerColor(tMatchPlayer, demoPlayer) } } })