11package demoinfocs
22
33import (
4+ "errors"
45 "fmt"
56 "strconv"
67
@@ -419,7 +420,12 @@ func (geh gameEventHandler) playerConnect(data map[string]*msg.CSVCMsg_GameEvent
419420 guid : data ["networkid" ].GetValString (),
420421 }
421422
422- pl .xuid = getCommunityID (pl .guid )
423+ var err error
424+ pl .xuid , err = getCommunityID (pl .guid )
425+
426+ if err != nil {
427+ geh .parser .setError (fmt .Errorf ("failed to parse player XUID: %v" , err .Error ()))
428+ }
423429
424430 geh .parser .rawPlayers [int (data ["index" ].GetValByte ())] = pl
425431}
@@ -511,7 +517,7 @@ func (geh gameEventHandler) bombEvent(data map[string]*msg.CSVCMsg_GameEventKeyT
511517 t := geh .parser .triggers [site ]
512518
513519 if t == nil {
514- panic (fmt .Sprintf ( "Bombsite with index %d not found" , site ))
520+ geh . parser . setError (fmt .Errorf ( "bombsite with index %d not found" , site ))
515521 }
516522
517523 if t .contains (geh .parser .bombsiteA .center ) {
@@ -521,7 +527,7 @@ func (geh gameEventHandler) bombEvent(data map[string]*msg.CSVCMsg_GameEventKeyT
521527 bombEvent .Site = events .BombsiteB
522528 geh .parser .bombsiteB .index = site
523529 } else {
524- panic ( "Bomb not planted on bombsite A or B" )
530+ geh . parser . setError ( errors . New ( "bomb not planted on bombsite A or B") )
525531 }
526532 }
527533
@@ -703,21 +709,21 @@ func mapGameEventData(d *msg.CSVCMsg_GameEventListDescriptorT, e *msg.CSVCMsg_Ga
703709// We're all better off not asking questions
704710const valveMagicNumber = 76561197960265728
705711
706- func getCommunityID (guid string ) int64 {
712+ func getCommunityID (guid string ) ( int64 , error ) {
707713 if guid == "BOT" {
708- return 0
714+ return 0 , nil
709715 }
710716
711717 authSrv , errSrv := strconv .ParseInt (guid [8 :9 ], 10 , 64 )
712718 authID , errID := strconv .ParseInt (guid [10 :], 10 , 64 )
713719
714720 if errSrv != nil {
715- panic ( errSrv . Error ())
721+ return 0 , errSrv
716722 }
717723 if errID != nil {
718- panic ( errID . Error ())
724+ return 0 , errID
719725 }
720726
721727 // WTF are we doing here?
722- return valveMagicNumber + authID * 2 + authSrv
728+ return valveMagicNumber + authID * 2 + authSrv , nil
723729}
0 commit comments