forked from jshiffer/matterbridge
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
|
||
|
}
|