import "steammessages_base.proto"; option optimize_for = SPEED; option cc_generic_services = false; message CMsgClientFriendMsg { optional fixed64 steamid = 1; optional int32 chat_entry_type = 2; optional bytes message = 3; optional fixed32 rtime32_server_timestamp = 4; optional bool echo_to_sender = 5; } message CMsgClientFriendMsgIncoming { optional fixed64 steamid_from = 1; optional int32 chat_entry_type = 2; optional bool from_limited_account = 3; optional bytes message = 4; optional fixed32 rtime32_server_timestamp = 5; } message CMsgClientAddFriend { optional fixed64 steamid_to_add = 1; optional string accountname_or_email_to_add = 2; } message CMsgClientAddFriendResponse { optional int32 eresult = 1 [default = 2]; optional fixed64 steam_id_added = 2; optional string persona_name_added = 3; } message CMsgClientRemoveFriend { optional fixed64 friendid = 1; } message CMsgClientHideFriend { optional fixed64 friendid = 1; optional bool hide = 2; } message CMsgClientFriendsList { message Friend { optional fixed64 ulfriendid = 1; optional uint32 efriendrelationship = 2; } optional bool bincremental = 1; repeated .CMsgClientFriendsList.Friend friends = 2; optional uint32 max_friend_count = 3; optional uint32 active_friend_count = 4; optional bool friends_limit_hit = 5; } message CMsgClientFriendsGroupsList { message FriendGroup { optional int32 nGroupID = 1; optional string strGroupName = 2; } message FriendGroupsMembership { optional fixed64 ulSteamID = 1; optional int32 nGroupID = 2; } optional bool bremoval = 1; optional bool bincremental = 2; repeated .CMsgClientFriendsGroupsList.FriendGroup friendGroups = 3; repeated .CMsgClientFriendsGroupsList.FriendGroupsMembership memberships = 4; } message CMsgClientPlayerNicknameList { message PlayerNickname { optional fixed64 steamid = 1; optional string nickname = 3; } optional bool removal = 1; optional bool incremental = 2; repeated .CMsgClientPlayerNicknameList.PlayerNickname nicknames = 3; } message CMsgClientSetPlayerNickname { optional fixed64 steamid = 1; optional string nickname = 2; } message CMsgClientSetPlayerNicknameResponse { optional uint32 eresult = 1; } message CMsgClientRequestFriendData { optional uint32 persona_state_requested = 1; repeated fixed64 friends = 2; } message CMsgClientChangeStatus { optional uint32 persona_state = 1; optional string player_name = 2; optional bool is_auto_generated_name = 3; optional bool high_priority = 4; optional bool persona_set_by_user = 5; optional uint32 persona_state_flags = 6 [default = 0]; optional bool need_persona_response = 7; optional bool is_client_idle = 8; } message CMsgPersonaChangeResponse { optional uint32 result = 1; optional string player_name = 2; } message CMsgClientPersonaState { message Friend { message ClanData { optional uint32 ogg_app_id = 1; optional uint64 chat_group_id = 2; } message KV { optional string key = 1; optional string value = 2; } optional fixed64 friendid = 1; optional uint32 persona_state = 2; optional uint32 game_played_app_id = 3; optional uint32 game_server_ip = 4; optional uint32 game_server_port = 5; optional uint32 persona_state_flags = 6; optional uint32 online_session_instances = 7; optional bool persona_set_by_user = 10; optional string player_name = 15; optional uint32 query_port = 20; optional fixed64 steamid_source = 25; optional bytes avatar_hash = 31; optional uint32 last_logoff = 45; optional uint32 last_logon = 46; optional uint32 last_seen_online = 47; optional uint32 clan_rank = 50; optional string game_name = 55; optional fixed64 gameid = 56; optional bytes game_data_blob = 60; optional .CMsgClientPersonaState.Friend.ClanData clan_data = 64; optional string clan_tag = 65; repeated .CMsgClientPersonaState.Friend.KV rich_presence = 71; optional fixed64 broadcast_id = 72; optional fixed64 game_lobby_id = 73; optional uint32 watching_broadcast_accountid = 74; optional uint32 watching_broadcast_appid = 75; optional uint32 watching_broadcast_viewers = 76; optional string watching_broadcast_title = 77; optional bool is_community_banned = 78; optional bool player_name_pending_review = 79; optional bool avatar_pending_review = 80; } optional uint32 status_flags = 1; repeated .CMsgClientPersonaState.Friend friends = 2; } message CMsgClientFriendProfileInfo { optional fixed64 steamid_friend = 1; } message CMsgClientFriendProfileInfoResponse { optional int32 eresult = 1 [default = 2]; optional fixed64 steamid_friend = 2; optional uint32 time_created = 3; optional string real_name = 4; optional string city_name = 5; optional string state_name = 6; optional string country_name = 7; optional string headline = 8; optional string summary = 9; } message CMsgClientCreateFriendsGroup { optional fixed64 steamid = 1; optional string groupname = 2; repeated fixed64 steamid_friends = 3; } message CMsgClientCreateFriendsGroupResponse { optional uint32 eresult = 1; optional int32 groupid = 2; } message CMsgClientDeleteFriendsGroup { optional fixed64 steamid = 1; optional int32 groupid = 2; } message CMsgClientDeleteFriendsGroupResponse { optional uint32 eresult = 1; } message CMsgClientManageFriendsGroup { optional int32 groupid = 1; optional string groupname = 2; repeated fixed64 steamid_friends_added = 3; repeated fixed64 steamid_friends_removed = 4; } message CMsgClientManageFriendsGroupResponse { optional uint32 eresult = 1; } message CMsgClientAddFriendToGroup { optional int32 groupid = 1; optional fixed64 steamiduser = 2; } message CMsgClientAddFriendToGroupResponse { optional uint32 eresult = 1; } message CMsgClientRemoveFriendFromGroup { optional int32 groupid = 1; optional fixed64 steamiduser = 2; } message CMsgClientRemoveFriendFromGroupResponse { optional uint32 eresult = 1; } message CMsgClientGetEmoticonList { } message CMsgClientEmoticonList { message Emoticon { optional string name = 1; optional int32 count = 2; optional uint32 time_last_used = 3; optional uint32 use_count = 4; optional uint32 time_received = 5; optional uint32 appid = 6; } message Sticker { optional string name = 1; optional int32 count = 2; optional uint32 time_received = 3; optional uint32 appid = 4; optional uint32 time_last_used = 5; optional uint32 use_count = 6; } message Effect { optional string name = 1; optional int32 count = 2; optional uint32 time_received = 3; optional bool infinite_use = 4; optional uint32 appid = 5; } repeated .CMsgClientEmoticonList.Emoticon emoticons = 1; repeated .CMsgClientEmoticonList.Sticker stickers = 2; repeated .CMsgClientEmoticonList.Effect effects = 3; }