@@ -3,8 +3,6 @@ package demoinfocs
33import (
44 "errors"
55 "fmt"
6- "strconv"
7-
86 "github.com/golang/geo/r3"
97 "github.com/markus-wa/go-unassert"
108
@@ -427,7 +425,7 @@ func (geh gameEventHandler) playerConnect(data map[string]*msg.CSVCMsg_GameEvent
427425 }
428426
429427 var err error
430- pl .xuid , err = getCommunityID (pl .guid )
428+ pl .xuid , err = guidToSteamID64 (pl .guid )
431429
432430 if err != nil {
433431 geh .parser .setError (fmt .Errorf ("failed to parse player XUID: %v" , err .Error ()))
@@ -734,24 +732,15 @@ func mapGameEventData(d *msg.CSVCMsg_GameEventListDescriptorT, e *msg.CSVCMsg_Ga
734732 return data
735733}
736734
737- // We're all better off not asking questions
738- const valveMagicNumber = 76561197960265728
739-
740- func getCommunityID (guid string ) (int64 , error ) {
735+ func guidToSteamID64 (guid string ) (uint64 , error ) {
741736 if guid == "BOT" {
742737 return 0 , nil
743738 }
744739
745- authSrv , errSrv := strconv .ParseInt (guid [8 :9 ], 10 , 64 )
746- if errSrv != nil {
747- return 0 , errSrv
748- }
749-
750- authID , errID := strconv .ParseInt (guid [10 :], 10 , 64 )
751- if errID != nil {
752- return 0 , errID
740+ steamID32 , err := common .ConvertSteamIDTxtTo32 (guid )
741+ if err != nil {
742+ return 0 , err
753743 }
754744
755- // WTF are we doing here?
756- return valveMagicNumber + authID * 2 + authSrv , nil
745+ return common .ConvertSteamID32To64 (steamID32 ), nil
757746}
0 commit comments