package dota; option optimize_for = SPEED; option cc_generic_services = false; message CMsgDOTAGuildSDO { message Member { optional uint32 account_id = 1; optional uint32 time_joined = 2; optional uint32 role = 3; } message Invitation { optional uint32 account_id = 1; optional uint32 time_sent = 2; optional uint32 account_id_sender = 3; } optional uint32 guild_id = 1; optional string name = 2; optional string tag = 3; optional uint32 time_created = 4; optional uint32 time_disbanded = 5; optional uint64 logo = 6; optional uint64 base_logo = 7; optional uint64 banner_logo = 8; repeated CMsgDOTAGuildSDO.Member members = 9; repeated CMsgDOTAGuildSDO.Invitation invitations = 10; optional string message = 11; optional bool incremental = 12; } message CMsgDOTAGuildAuditSDO { message Entry { optional uint32 event_index = 1; optional uint32 timestamp = 2; optional uint32 action = 3; optional uint32 account_id_requestor = 4; optional uint32 account_id_target = 5; optional uint32 reference_data_a = 6; optional uint32 reference_data_b = 7; } optional uint32 guild_id = 1; repeated CMsgDOTAGuildAuditSDO.Entry entries = 2; } message CMsgDOTAAccountGuildMembershipsSDO { message Membership { optional uint32 guild_id = 1; optional uint32 role = 2; } message Invitation { optional uint32 guild_id = 1; optional uint32 time_sent = 2; optional uint32 account_id_sender = 3; } optional uint32 account_id = 1; repeated CMsgDOTAAccountGuildMembershipsSDO.Membership memberships = 2; repeated CMsgDOTAAccountGuildMembershipsSDO.Invitation invitations = 3; } message CMsgDOTAGuildCreateRequest { optional string name = 1; optional string tag = 2; optional uint64 logo = 3; optional uint64 base_logo = 4; optional uint64 banner_logo = 5; } message CMsgDOTAGuildCreateResponse { enum EError { UNSPECIFIED = 0; NAME_EMPTY = 1; NAME_BAD_CHARACTERS = 2; NAME_TOO_LONG = 3; NAME_TAKEN = 4; TAG_EMPTY = 5; TAG_BAD_CHARACTERS = 6; TAG_TOO_LONG = 7; ACCOUNT_TOO_MANY_GUILDS = 8; LOGO_UPLOAD_FAILED = 9; } optional uint32 guild_id = 1; repeated CMsgDOTAGuildCreateResponse.EError errors = 2; } message CMsgDOTAGuildSetAccountRoleRequest { optional uint32 guild_id = 1; optional uint32 target_account_id = 2; optional uint32 target_role = 3; } message CMsgDOTAGuildSetAccountRoleResponse { enum EResult { SUCCESS = 0; ERROR_UNSPECIFIED = 1; ERROR_NO_PERMISSION = 2; ERROR_NO_OTHER_LEADER = 3; ERROR_ACCOUNT_TOO_MANY_GUILDS = 4; ERROR_GUILD_TOO_MANY_MEMBERS = 5; } optional CMsgDOTAGuildSetAccountRoleResponse.EResult result = 1 [default = SUCCESS]; } message CMsgDOTAGuildInviteAccountRequest { optional uint32 guild_id = 1; optional uint32 target_account_id = 2; } message CMsgDOTAGuildInviteAccountResponse { enum EResult { SUCCESS = 0; ERROR_UNSPECIFIED = 1; ERROR_NO_PERMISSION = 2; ERROR_ACCOUNT_ALREADY_INVITED = 3; ERROR_ACCOUNT_ALREADY_IN_GUILD = 4; ERROR_ACCOUNT_TOO_MANY_INVITES = 5; ERROR_GUILD_TOO_MANY_INVITES = 6; ERROR_ACCOUNT_TOO_MANY_GUILDS = 7; } optional CMsgDOTAGuildInviteAccountResponse.EResult result = 1 [default = SUCCESS]; } message CMsgDOTAGuildCancelInviteRequest { optional uint32 guild_id = 1; optional uint32 target_account_id = 2; } message CMsgDOTAGuildCancelInviteResponse { enum EResult { SUCCESS = 0; ERROR_UNSPECIFIED = 1; ERROR_NO_PERMISSION = 2; } optional CMsgDOTAGuildCancelInviteResponse.EResult result = 1 [default = SUCCESS]; } message CMsgDOTAGuildUpdateDetailsRequest { optional uint32 guild_id = 1; optional uint64 logo = 2; optional uint64 base_logo = 3; optional uint64 banner_logo = 4; } message CMsgDOTAGuildUpdateDetailsResponse { enum EResult { SUCCESS = 0; ERROR_UNSPECIFIED = 1; ERROR_NO_PERMISSION = 2; } optional CMsgDOTAGuildUpdateDetailsResponse.EResult result = 1 [default = SUCCESS]; } message CMsgDOTAGCToGCUpdateOpenGuildPartyRequest { optional uint64 party_id = 1; optional uint32 guild_id = 2; repeated uint32 member_account_ids = 3; optional string description = 4; } message CMsgDOTAGCToGCUpdateOpenGuildPartyResponse { optional bool maintain_association = 1; } message CMsgDOTAGCToGCDestroyOpenGuildPartyRequest { optional uint64 party_id = 1; optional uint32 guild_id = 2; } message CMsgDOTAGCToGCDestroyOpenGuildPartyResponse { } message CMsgDOTAPartySetOpenGuildRequest { optional uint32 guild_id = 1; optional string description = 2; } message CMsgDOTAPartySetOpenGuildResponse { enum EResult { SUCCESS = 0; ERROR_UNSPECIFIED = 1; } optional CMsgDOTAPartySetOpenGuildResponse.EResult result = 1 [default = SUCCESS]; } message CMsgDOTAJoinOpenGuildPartyRequest { optional uint64 party_id = 1; } message CMsgDOTAJoinOpenGuildPartyResponse { enum EResult { SUCCESS = 0; ERROR_UNSPECIFIED = 1; } optional CMsgDOTAJoinOpenGuildPartyResponse.EResult result = 1 [default = SUCCESS]; } message CMsgDOTAGuildOpenPartyRefresh { message OpenParty { optional uint64 party_id = 1; repeated uint32 member_account_ids = 2; optional uint32 time_created = 3; optional string description = 4; } optional uint32 guild_id = 1; repeated CMsgDOTAGuildOpenPartyRefresh.OpenParty open_parties = 2; } message CMsgDOTARequestGuildData { } message CMsgDOTAGuildInviteData { optional bool invited_to_guild = 1; optional uint32 guild_id = 2; optional string guild_name = 3; optional string guild_tag = 4; optional uint64 logo = 5; optional uint32 inviter = 6; optional string inviter_name = 7; optional uint32 member_count = 8; } message CMsgDOTAGuildUpdateMessage { optional string message = 1; optional uint32 guild_id = 2; } message CMsgDOTAGuildEditLogoRequest { optional uint32 guild_id = 1; optional uint64 logo = 2; } message CMsgDOTAGuildEditLogoResponse { enum EResult { SUCCESS = 0; NO_PERMISSION = 1; LOGO_UPLOAD_FAILED = 2; UNSPECIFIED_ERROR = 3; } optional uint32 guild_id = 1; optional CMsgDOTAGuildEditLogoResponse.EResult result = 2 [default = SUCCESS]; }