162 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			162 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package steam
 | |
| 
 | |
| import (
 | |
| 	. "github.com/Philipp15b/go-steam/protocol/steamlang"
 | |
| 	. "github.com/Philipp15b/go-steam/steamid"
 | |
| 	"time"
 | |
| )
 | |
| 
 | |
| type FriendsListEvent struct{}
 | |
| 
 | |
| type FriendStateEvent struct {
 | |
| 	SteamId      SteamId `json:",string"`
 | |
| 	Relationship EFriendRelationship
 | |
| }
 | |
| 
 | |
| func (f *FriendStateEvent) IsFriend() bool {
 | |
| 	return f.Relationship == EFriendRelationship_Friend
 | |
| }
 | |
| 
 | |
| type GroupStateEvent struct {
 | |
| 	SteamId      SteamId `json:",string"`
 | |
| 	Relationship EClanRelationship
 | |
| }
 | |
| 
 | |
| func (g *GroupStateEvent) IsMember() bool {
 | |
| 	return g.Relationship == EClanRelationship_Member
 | |
| }
 | |
| 
 | |
| // Fired when someone changing their friend details
 | |
| type PersonaStateEvent struct {
 | |
| 	StatusFlags            EClientPersonaStateFlag
 | |
| 	FriendId               SteamId `json:",string"`
 | |
| 	State                  EPersonaState
 | |
| 	StateFlags             EPersonaStateFlag
 | |
| 	GameAppId              uint32
 | |
| 	GameId                 uint64 `json:",string"`
 | |
| 	GameName               string
 | |
| 	GameServerIp           uint32
 | |
| 	GameServerPort         uint32
 | |
| 	QueryPort              uint32
 | |
| 	SourceSteamId          SteamId `json:",string"`
 | |
| 	GameDataBlob           []byte
 | |
| 	Name                   string
 | |
| 	Avatar                 string
 | |
| 	LastLogOff             uint32
 | |
| 	LastLogOn              uint32
 | |
| 	ClanRank               uint32
 | |
| 	ClanTag                string
 | |
| 	OnlineSessionInstances uint32
 | |
| 	PublishedSessionId     uint32
 | |
| 	PersonaSetByUser       bool
 | |
| 	FacebookName           string
 | |
| 	FacebookId             uint64 `json:",string"`
 | |
| }
 | |
| 
 | |
| // Fired when a clan's state has been changed
 | |
| type ClanStateEvent struct {
 | |
| 	ClandId             SteamId `json:",string"`
 | |
| 	StateFlags          EClientPersonaStateFlag
 | |
| 	AccountFlags        EAccountFlags
 | |
| 	ClanName            string
 | |
| 	Avatar              string
 | |
| 	MemberTotalCount    uint32
 | |
| 	MemberOnlineCount   uint32
 | |
| 	MemberChattingCount uint32
 | |
| 	MemberInGameCount   uint32
 | |
| 	Events              []ClanEventDetails
 | |
| 	Announcements       []ClanEventDetails
 | |
| }
 | |
| 
 | |
| type ClanEventDetails struct {
 | |
| 	Id         uint64 `json:",string"`
 | |
| 	EventTime  uint32
 | |
| 	Headline   string
 | |
| 	GameId     uint64 `json:",string"`
 | |
| 	JustPosted bool
 | |
| }
 | |
| 
 | |
| // Fired in response to adding a friend to your friends list
 | |
| type FriendAddedEvent struct {
 | |
| 	Result      EResult
 | |
| 	SteamId     SteamId `json:",string"`
 | |
| 	PersonaName string
 | |
| }
 | |
| 
 | |
| // Fired when the client receives a message from either a friend or a chat room
 | |
| type ChatMsgEvent struct {
 | |
| 	ChatRoomId SteamId `json:",string"` // not set for friend messages
 | |
| 	ChatterId  SteamId `json:",string"`
 | |
| 	Message    string
 | |
| 	EntryType  EChatEntryType
 | |
| 	Timestamp  time.Time
 | |
| 	Offline    bool
 | |
| }
 | |
| 
 | |
| // Whether the type is ChatMsg
 | |
| func (c *ChatMsgEvent) IsMessage() bool {
 | |
| 	return c.EntryType == EChatEntryType_ChatMsg
 | |
| }
 | |
| 
 | |
| // Fired in response to joining a chat
 | |
| type ChatEnterEvent struct {
 | |
| 	ChatRoomId    SteamId `json:",string"`
 | |
| 	FriendId      SteamId `json:",string"`
 | |
| 	ChatRoomType  EChatRoomType
 | |
| 	OwnerId       SteamId `json:",string"`
 | |
| 	ClanId        SteamId `json:",string"`
 | |
| 	ChatFlags     byte
 | |
| 	EnterResponse EChatRoomEnterResponse
 | |
| 	Name          string
 | |
| }
 | |
| 
 | |
| // Fired in response to a chat member's info being received
 | |
| type ChatMemberInfoEvent struct {
 | |
| 	ChatRoomId      SteamId `json:",string"`
 | |
| 	Type            EChatInfoType
 | |
| 	StateChangeInfo StateChangeDetails
 | |
| }
 | |
| 
 | |
| type StateChangeDetails struct {
 | |
| 	ChatterActedOn SteamId `json:",string"`
 | |
| 	StateChange    EChatMemberStateChange
 | |
| 	ChatterActedBy SteamId `json:",string"`
 | |
| }
 | |
| 
 | |
| // Fired when a chat action has completed
 | |
| type ChatActionResultEvent struct {
 | |
| 	ChatRoomId SteamId `json:",string"`
 | |
| 	ChatterId  SteamId `json:",string"`
 | |
| 	Action     EChatAction
 | |
| 	Result     EChatActionResult
 | |
| }
 | |
| 
 | |
| // Fired when a chat invite is received
 | |
| type ChatInviteEvent struct {
 | |
| 	InvitedId    SteamId `json:",string"`
 | |
| 	ChatRoomId   SteamId `json:",string"`
 | |
| 	PatronId     SteamId `json:",string"`
 | |
| 	ChatRoomType EChatRoomType
 | |
| 	FriendChatId SteamId `json:",string"`
 | |
| 	ChatRoomName string
 | |
| 	GameId       uint64 `json:",string"`
 | |
| }
 | |
| 
 | |
| // Fired in response to ignoring a friend
 | |
| type IgnoreFriendEvent struct {
 | |
| 	Result EResult
 | |
| }
 | |
| 
 | |
| // Fired in response to requesting profile info for a user
 | |
| type ProfileInfoEvent struct {
 | |
| 	Result      EResult
 | |
| 	SteamId     SteamId `json:",string"`
 | |
| 	TimeCreated uint32
 | |
| 	RealName    string
 | |
| 	CityName    string
 | |
| 	StateName   string
 | |
| 	CountryName string
 | |
| 	Headline    string
 | |
| 	Summary     string
 | |
| }
 | 
