package dota; import "dota_shared_enums.proto"; option optimize_for = SPEED; option cc_generic_services = false; message CMsgClientToGCPrivateChatInvite { optional string private_chat_channel_name = 1; optional uint32 invited_account_id = 2; } message CMsgClientToGCPrivateChatKick { optional string private_chat_channel_name = 1; optional uint32 kick_account_id = 2; } message CMsgClientToGCPrivateChatPromote { optional string private_chat_channel_name = 1; optional uint32 promote_account_id = 2; } message CMsgClientToGCPrivateChatDemote { optional string private_chat_channel_name = 1; optional uint32 demote_account_id = 2; } message CMsgGCToClientPrivateChatResponse { enum Result { SUCCESS = 0; FAILURE_CREATION_LOCK = 1; FAILURE_SQL_TRANSACTION = 2; FAILURE_SDO_LOAD = 3; FAILURE_NO_PERMISSION = 4; FAILURE_ALREADY_MEMBER = 5; FAILURE_NOT_A_MEMBER = 7; FAILURE_NO_REMAINING_ADMINS = 8; FAILURE_NO_ROOM = 9; FAILURE_CREATION_RATE_LIMITED = 10; FAILURE_UNKNOWN_CHANNEL_NAME = 11; FAILURE_UNKNOWN_USER = 12; FAILURE_UNKNOWN_ERROR = 13; FAILURE_CANNOT_KICK_ADMIN = 14; FAILURE_ALREADY_ADMIN = 15; } optional string private_chat_channel_name = 1; optional CMsgGCToClientPrivateChatResponse.Result result = 2 [default = SUCCESS]; optional string username = 3; } message CMsgClientToGCPrivateChatInfoRequest { optional string private_chat_channel_name = 1; } message CMsgGCToClientPrivateChatInfoResponse { message Member { optional uint32 account_id = 1; optional string name = 2; optional uint32 status = 3; } optional string private_chat_channel_name = 1; repeated CMsgGCToClientPrivateChatInfoResponse.Member members = 2; optional uint32 creator = 3; optional uint32 creation_date = 4; } message CMsgDOTAJoinChatChannel { optional string channel_name = 2; optional DOTAChatChannelType_t channel_type = 4 [default = DOTAChannelType_Regional]; } message CMsgDOTALeaveChatChannel { optional uint64 channel_id = 1; } message CMsgDOTAClientIgnoredUser { optional uint32 ignored_account_id = 1; } message CMsgDOTAChatMessage { message DiceRoll { optional int32 roll_min = 1; optional int32 roll_max = 2; optional int32 result = 3; } optional uint32 account_id = 1; optional uint64 channel_id = 2; optional string persona_name = 3; optional string text = 4; optional uint32 timestamp = 5; optional uint32 suggest_invite_account_id = 6; optional string suggest_invite_name = 7; optional uint32 fantasy_draft_owner_account_id = 8; optional uint32 fantasy_draft_player_account_id = 9; optional uint32 event_id = 10; optional bool suggest_invite_to_lobby = 11; optional uint32 event_points = 12; optional bool coin_flip = 13; optional int32 player_id = 14 [default = -1]; optional uint32 share_profile_account_id = 15; optional uint32 channel_user_id = 16; optional CMsgDOTAChatMessage.DiceRoll dice_roll = 17; optional uint64 share_party_id = 18; optional uint64 share_lobby_id = 19; optional uint64 share_lobby_custom_game_id = 20; optional string share_lobby_passkey = 21; optional uint32 private_chat_channel_id = 22; optional uint32 status = 23; optional bool battle_cup_victory = 24; } message CMsgDOTAChatMember { optional fixed64 steam_id = 1; optional string persona_name = 2; optional uint32 channel_user_id = 3; optional uint32 status = 4; } message CMsgDOTAJoinChatChannelResponse { enum Result { JOIN_SUCCESS = 0; INVALID_CHANNEL_TYPE = 1; ACCOUNT_NOT_FOUND = 2; ACH_FAILED = 3; USER_IN_TOO_MANY_CHANNELS = 4; RATE_LIMIT_EXCEEDED = 5; CHANNEL_FULL = 6; CHANNEL_FULL_OVERFLOWED = 7; FAILED_TO_ADD_USER = 8; CHANNEL_TYPE_DISABLED = 9; PRIVATE_CHAT_CREATE_FAILED = 10; PRIVATE_CHAT_NO_PERMISSION = 11; PRIVATE_CHAT_CREATE_LOCK_FAILED = 12; PRIVATE_CHAT_KICKED = 13; } optional uint32 response = 1; optional string channel_name = 2; optional fixed64 channel_id = 3; optional uint32 max_members = 4; repeated CMsgDOTAChatMember members = 5; optional DOTAChatChannelType_t channel_type = 6 [default = DOTAChannelType_Regional]; optional CMsgDOTAJoinChatChannelResponse.Result result = 7 [default = JOIN_SUCCESS]; optional bool gc_initiated_join = 8; optional uint32 channel_user_id = 9; optional string welcome_message = 10; } message CMsgDOTAChatChannelFullUpdate { optional fixed64 channel_id = 1; repeated CMsgDOTAChatMember members = 2; } message CMsgDOTAOtherJoinedChatChannel { optional fixed64 channel_id = 1; optional string persona_name = 2; optional fixed64 steam_id = 3; optional uint32 channel_user_id = 4; optional uint32 status = 5; } message CMsgDOTAOtherLeftChatChannel { optional fixed64 channel_id = 1; optional fixed64 steam_id = 2; optional uint32 channel_user_id = 3; } message CMsgDOTAChatChannelMemberUpdate { message JoinedMember { optional fixed64 steam_id = 1; optional string persona_name = 2; optional uint32 channel_user_id = 3; optional uint32 status = 4; } optional fixed64 channel_id = 1; repeated fixed64 left_steam_ids = 2; repeated CMsgDOTAChatChannelMemberUpdate.JoinedMember joined_members = 3; } message CMsgDOTARequestChatChannelList { } message CMsgDOTARequestChatChannelListResponse { message ChatChannel { optional string channel_name = 1; optional uint32 num_members = 2; optional DOTAChatChannelType_t channel_type = 3 [default = DOTAChannelType_Regional]; } repeated CMsgDOTARequestChatChannelListResponse.ChatChannel channels = 1; } message CMsgDOTAChatGetUserList { optional fixed64 channel_id = 1; } message CMsgDOTAChatGetUserListResponse { message Member { optional fixed64 steam_id = 1; optional string persona_name = 2; optional uint32 channel_user_id = 3; optional uint32 status = 4; } optional fixed64 channel_id = 1; repeated CMsgDOTAChatGetUserListResponse.Member members = 2; } message CMsgDOTAChatGetMemberCount { optional string channel_name = 1; optional DOTAChatChannelType_t channel_type = 2 [default = DOTAChannelType_Regional]; } message CMsgDOTAChatGetMemberCountResponse { optional string channel_name = 1; optional DOTAChatChannelType_t channel_type = 2 [default = DOTAChannelType_Regional]; optional uint32 member_count = 3; } message CMsgDOTAChatRegionsEnabled { message Region { optional float min_latitude = 1; optional float max_latitude = 2; optional float min_longitude = 3; optional float max_longitude = 4; } optional bool enable_all_regions = 1; repeated CMsgDOTAChatRegionsEnabled.Region enabled_regions = 2; }