added error handling to matchplayer

This commit is contained in:
2021-11-17 22:32:04 +01:00
parent 3e727d3a7c
commit 72d546122a

View File

@@ -150,19 +150,18 @@ func (p *DemoParser) getDBPlayer(demo *Demo, demoPlayer *common.Player) (*ent.Ma
return tMatchPlayer, nil return tMatchPlayer, nil
} }
func (p *DemoParser) getMatchPlayerBySteamID(stats []*ent.MatchPlayer, steamId uint64) *ent.MatchPlayer { func (p *DemoParser) MatchPlayerBySteamID(stats []*ent.MatchPlayer, steamId uint64) (*ent.MatchPlayer, error) {
for _, tStats := range stats { for _, tStats := range stats {
tPLayer, err := tStats.Edges.PlayersOrErr() tPLayer, err := tStats.Edges.PlayersOrErr()
if err != nil { if err != nil {
log.Errorf("Unbale to get Stats from statList: %v", err) return nil, fmt.Errorf("Unbale to get Stats from statList: %v", err)
return nil
} }
if tPLayer.ID == steamId { if tPLayer.ID == steamId {
return tStats return tStats, nil
} }
} }
return nil return nil, fmt.Errorf("player not found")
} }
func setMatchPlayerColor(matchPlayer *ent.MatchPlayer, demoPlayer *common.Player) { func setMatchPlayerColor(matchPlayer *ent.MatchPlayer, demoPlayer *common.Player) {
@@ -290,7 +289,11 @@ func (p *DemoParser) parseWorker() {
return return
} }
tAttacker := p.getMatchPlayerBySteamID(tStats, e.Attacker.SteamID64) tAttacker, err := p.MatchPlayerBySteamID(tStats, e.Attacker.SteamID64)
if err != nil {
log.Warningf("[DP] Unable to get player for id %d: %v", e.Attacker.SteamID64, err)
return
}
if e.Attacker.Team == e.Player.Team { if e.Attacker.Team == e.Player.Team {
tAttacker.DmgTeam += uint(e.HealthDamageTaken) tAttacker.DmgTeam += uint(e.HealthDamageTaken)
} else { } else {
@@ -348,7 +351,11 @@ func (p *DemoParser) parseWorker() {
return return
} }
tAttacker := p.getMatchPlayerBySteamID(tStats, e.Attacker.SteamID64) tAttacker, err := p.MatchPlayerBySteamID(tStats, e.Attacker.SteamID64)
if err != nil {
log.Warningf("[DP] Unable to get player for id %d: %v", e.Attacker.SteamID64, err)
return
}
// team flash // team flash
if e.Attacker.Team == e.Player.Team && e.Attacker.SteamID64 != e.Player.SteamID64 { if e.Attacker.Team == e.Player.Team && e.Attacker.SteamID64 != e.Player.SteamID64 {
@@ -372,7 +379,11 @@ func (p *DemoParser) parseWorker() {
// onPlayerConnected // onPlayerConnected
demoParser.RegisterEventHandler(func(e events.PlayerTeamChange) { demoParser.RegisterEventHandler(func(e events.PlayerTeamChange) {
if e.Player != nil && e.Player.SteamID64 != 0 { if e.Player != nil && e.Player.SteamID64 != 0 {
tMatchPlayer := p.getMatchPlayerBySteamID(tStats, e.Player.SteamID64) tMatchPlayer, err := p.MatchPlayerBySteamID(tStats, e.Player.SteamID64)
if err != nil {
log.Warningf("[DP] Unable to get player for id %d: %v", e.Player.SteamID64, err)
return
}
setMatchPlayerColor(tMatchPlayer, e.Player) setMatchPlayerColor(tMatchPlayer, e.Player)
} }
}) })
@@ -383,7 +394,11 @@ func (p *DemoParser) parseWorker() {
for _, demoPlayer := range gs.Participants().Playing() { for _, demoPlayer := range gs.Participants().Playing() {
if demoPlayer != nil && demoPlayer.SteamID64 != 0 { if demoPlayer != nil && demoPlayer.SteamID64 != 0 {
tMatchPlayer := p.getMatchPlayerBySteamID(tStats, demoPlayer.SteamID64) tMatchPlayer, err := p.MatchPlayerBySteamID(tStats, demoPlayer.SteamID64)
if err != nil {
log.Warningf("[DP] Unable to get player for id %d: %v", demoPlayer.SteamID64, err)
return
}
setMatchPlayerColor(tMatchPlayer, demoPlayer) setMatchPlayerColor(tMatchPlayer, demoPlayer)
} }
} }
@@ -392,7 +407,11 @@ func (p *DemoParser) parseWorker() {
// onRankUpdate // onRankUpdate
demoParser.RegisterEventHandler(func(e events.RankUpdate) { demoParser.RegisterEventHandler(func(e events.RankUpdate) {
if e.SteamID64() != 0 { if e.SteamID64() != 0 {
tMatchPlayer := p.getMatchPlayerBySteamID(tStats, e.SteamID64()) tMatchPlayer, err := p.MatchPlayerBySteamID(tStats, e.SteamID64())
if err != nil {
log.Warningf("[DP] Unable to get player for id %d: %v", e.SteamID64(), err)
return
}
tMatchPlayer.RankOld = e.RankOld tMatchPlayer.RankOld = e.RankOld
tMatchPlayer.RankNew = e.RankNew tMatchPlayer.RankNew = e.RankNew