summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/Philipp15b/go-steam/protocol/internal.go
blob: 197e384eca3a5eba19d00e50711a1f46f828467b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
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)
}