forked from lug/matterbridge
		
	
		
			
				
	
	
		
			50 lines
		
	
	
		
			991 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			991 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| package protocol
 | |
| 
 | |
| import (
 | |
| 	"encoding/hex"
 | |
| 	"io"
 | |
| 	"math"
 | |
| 	"strconv"
 | |
| 
 | |
| 	. "github.com/Philipp15b/go-steam/protocol/steamlang"
 | |
| )
 | |
| 
 | |
| type JobId uint64
 | |
| 
 | |
| func (j JobId) String() string {
 | |
| 	if j == math.MaxUint64 {
 | |
| 		return "(none)"
 | |
| 	}
 | |
| 	return strconv.FormatUint(uint64(j), 10)
 | |
| }
 | |
| 
 | |
| type Serializer interface {
 | |
| 	Serialize(w io.Writer) error
 | |
| }
 | |
| 
 | |
| type Deserializer interface {
 | |
| 	Deserialize(r io.Reader) error
 | |
| }
 | |
| 
 | |
| type Serializable interface {
 | |
| 	Serializer
 | |
| 	Deserializer
 | |
| }
 | |
| 
 | |
| type MessageBody interface {
 | |
| 	Serializable
 | |
| 	GetEMsg() EMsg
 | |
| }
 | |
| 
 | |
| // the default details to request in most situations
 | |
| const EClientPersonaStateFlag_DefaultInfoRequest = EClientPersonaStateFlag_PlayerName |
 | |
| 	EClientPersonaStateFlag_Presence | EClientPersonaStateFlag_SourceID |
 | |
| 	EClientPersonaStateFlag_GameExtraInfo
 | |
| 
 | |
| const DefaultAvatar = "fef49e7fa7e1997310d705b2a6158ff8dc1cdfeb"
 | |
| 
 | |
| func ValidAvatar(avatar []byte) bool {
 | |
| 	str := hex.EncodeToString(avatar)
 | |
| 	return !(str == "0000000000000000000000000000000000000000" || len(str) != 40)
 | |
| }
 | 
