diff --git a/client/guild.go b/client/guild.go index 550fa387..fd92bd29 100644 --- a/client/guild.go +++ b/client/guild.go @@ -76,9 +76,14 @@ type ( // GuildRole 频道身份组信息 GuildRole struct { - RoleId uint64 - RoleName string - ArgbColor uint32 + RoleId uint64 + RoleName string + ArgbColor uint32 + Indepedent bool + Num int32 + Owned bool + Disabled bool + MaxNum int32 } // ChannelInfo 子频道信息 @@ -300,14 +305,48 @@ func (s *GuildService) GetGuildRoles(guildId uint64) ([]*GuildRole, error) { roles := make([]*GuildRole, 0) for _, role := range body.Roles { roles = append(roles, &GuildRole{ - RoleId: *role.RoleId, - RoleName: *role.Name, - ArgbColor: *role.ArgbColor, + RoleId: role.GetRoleId(), + RoleName: role.GetName(), + ArgbColor: role.GetArgbColor(), + Indepedent: role.GetIndependent() == 1, + Num: role.GetNum(), + Owned: role.GetOwned() == 1, + Disabled: role.GetDisabled() == 1, + MaxNum: role.GetMaxNum(), }) } return roles, nil } +func (s *GuildService) CreateGuildRole(guildId uint64, name string, color uint32, independent bool, initialUsers []uint64) (uint64, error) { + seq := s.c.nextSeq() + u1 := uint32(1) + packet := packets.BuildUniPacket(s.c.Uin, seq, "OidbSvcTrpcTcp.0x1016_1", 1, s.c.OutGoingPacketSessionId, []byte{}, s.c.sigInfo.d2Key, + s.c.packOIDBPackageDynamically(4118, 1, binary.DynamicProtoMessage{ + 1: guildId, + 2: binary.DynamicProtoMessage{ // todo: 未知参数 + 1: u1, + 2: u1, + 3: u1, + }, + 3: binary.DynamicProtoMessage{ + 1: name, + 2: color, + 3: independent, + }, + 4: initialUsers, + })) + rsp, err := s.c.sendAndWaitDynamic(seq, packet) + if err != nil { + return 0, errors.Wrap(err, "send packet error") + } + body := new(channel.ChannelOidb0X1016Rsp) + if err = s.c.unpackOIDBPackage(rsp, body); err != nil { + return 0, errors.Wrap(err, "decode packet error") + } + return body.GetRoleId(), nil +} + func (s *GuildService) FetchGuestGuild(guildId uint64) (*GuildMeta, error) { seq := s.c.nextSeq() u1 := uint32(1) diff --git a/client/pb/channel/unknown.pb.go b/client/pb/channel/unknown.pb.go index e94b2190..99544afb 100644 --- a/client/pb/channel/unknown.pb.go +++ b/client/pb/channel/unknown.pb.go @@ -383,6 +383,53 @@ func (x *ChannelOidb0X1019Rsp) GetRoles() []*GuildRole { return nil } +type ChannelOidb0X1016Rsp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RoleId *uint64 `protobuf:"varint,2,opt,name=roleId" json:"roleId,omitempty"` +} + +func (x *ChannelOidb0X1016Rsp) Reset() { + *x = ChannelOidb0X1016Rsp{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_unknown_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChannelOidb0X1016Rsp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChannelOidb0X1016Rsp) ProtoMessage() {} + +func (x *ChannelOidb0X1016Rsp) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_unknown_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChannelOidb0X1016Rsp.ProtoReflect.Descriptor instead. +func (*ChannelOidb0X1016Rsp) Descriptor() ([]byte, []int) { + return file_pb_channel_unknown_proto_rawDescGZIP(), []int{7} +} + +func (x *ChannelOidb0X1016Rsp) GetRoleId() uint64 { + if x != nil && x.RoleId != nil { + return *x.RoleId + } + return 0 +} + type GuildMetaRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -395,7 +442,7 @@ type GuildMetaRsp struct { func (x *GuildMetaRsp) Reset() { *x = GuildMetaRsp{} if protoimpl.UnsafeEnabled { - mi := &file_pb_channel_unknown_proto_msgTypes[7] + mi := &file_pb_channel_unknown_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -408,7 +455,7 @@ func (x *GuildMetaRsp) String() string { func (*GuildMetaRsp) ProtoMessage() {} func (x *GuildMetaRsp) ProtoReflect() protoreflect.Message { - mi := &file_pb_channel_unknown_proto_msgTypes[7] + mi := &file_pb_channel_unknown_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -421,7 +468,7 @@ func (x *GuildMetaRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GuildMetaRsp.ProtoReflect.Descriptor instead. func (*GuildMetaRsp) Descriptor() ([]byte, []int) { - return file_pb_channel_unknown_proto_rawDescGZIP(), []int{7} + return file_pb_channel_unknown_proto_rawDescGZIP(), []int{8} } func (x *GuildMetaRsp) GetGuildId() uint64 { @@ -450,7 +497,7 @@ type ChannelListRsp struct { func (x *ChannelListRsp) Reset() { *x = ChannelListRsp{} if protoimpl.UnsafeEnabled { - mi := &file_pb_channel_unknown_proto_msgTypes[8] + mi := &file_pb_channel_unknown_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -463,7 +510,7 @@ func (x *ChannelListRsp) String() string { func (*ChannelListRsp) ProtoMessage() {} func (x *ChannelListRsp) ProtoReflect() protoreflect.Message { - mi := &file_pb_channel_unknown_proto_msgTypes[8] + mi := &file_pb_channel_unknown_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -476,7 +523,7 @@ func (x *ChannelListRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use ChannelListRsp.ProtoReflect.Descriptor instead. func (*ChannelListRsp) Descriptor() ([]byte, []int) { - return file_pb_channel_unknown_proto_rawDescGZIP(), []int{8} + return file_pb_channel_unknown_proto_rawDescGZIP(), []int{9} } func (x *ChannelListRsp) GetGuildId() uint64 { @@ -504,7 +551,7 @@ type GuildAdminInfo struct { func (x *GuildAdminInfo) Reset() { *x = GuildAdminInfo{} if protoimpl.UnsafeEnabled { - mi := &file_pb_channel_unknown_proto_msgTypes[9] + mi := &file_pb_channel_unknown_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -517,7 +564,7 @@ func (x *GuildAdminInfo) String() string { func (*GuildAdminInfo) ProtoMessage() {} func (x *GuildAdminInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_channel_unknown_proto_msgTypes[9] + mi := &file_pb_channel_unknown_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -530,7 +577,7 @@ func (x *GuildAdminInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use GuildAdminInfo.ProtoReflect.Descriptor instead. func (*GuildAdminInfo) Descriptor() ([]byte, []int) { - return file_pb_channel_unknown_proto_rawDescGZIP(), []int{9} + return file_pb_channel_unknown_proto_rawDescGZIP(), []int{10} } func (x *GuildAdminInfo) GetAdmins() []*GuildMemberInfo { @@ -555,7 +602,7 @@ type GuildMemberInfo struct { func (x *GuildMemberInfo) Reset() { *x = GuildMemberInfo{} if protoimpl.UnsafeEnabled { - mi := &file_pb_channel_unknown_proto_msgTypes[10] + mi := &file_pb_channel_unknown_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -568,7 +615,7 @@ func (x *GuildMemberInfo) String() string { func (*GuildMemberInfo) ProtoMessage() {} func (x *GuildMemberInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_channel_unknown_proto_msgTypes[10] + mi := &file_pb_channel_unknown_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -581,7 +628,7 @@ func (x *GuildMemberInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use GuildMemberInfo.ProtoReflect.Descriptor instead. func (*GuildMemberInfo) Descriptor() ([]byte, []int) { - return file_pb_channel_unknown_proto_rawDescGZIP(), []int{10} + return file_pb_channel_unknown_proto_rawDescGZIP(), []int{11} } func (x *GuildMemberInfo) GetTitle() string { @@ -635,7 +682,7 @@ type GuildUserProfile struct { func (x *GuildUserProfile) Reset() { *x = GuildUserProfile{} if protoimpl.UnsafeEnabled { - mi := &file_pb_channel_unknown_proto_msgTypes[11] + mi := &file_pb_channel_unknown_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -648,7 +695,7 @@ func (x *GuildUserProfile) String() string { func (*GuildUserProfile) ProtoMessage() {} func (x *GuildUserProfile) ProtoReflect() protoreflect.Message { - mi := &file_pb_channel_unknown_proto_msgTypes[11] + mi := &file_pb_channel_unknown_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -661,7 +708,7 @@ func (x *GuildUserProfile) ProtoReflect() protoreflect.Message { // Deprecated: Use GuildUserProfile.ProtoReflect.Descriptor instead. func (*GuildUserProfile) Descriptor() ([]byte, []int) { - return file_pb_channel_unknown_proto_rawDescGZIP(), []int{11} + return file_pb_channel_unknown_proto_rawDescGZIP(), []int{12} } func (x *GuildUserProfile) GetTinyId() uint64 { @@ -697,15 +744,20 @@ type GuildRole struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - RoleId *uint64 `protobuf:"varint,1,opt,name=roleId" json:"roleId,omitempty"` - Name *string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` - ArgbColor *uint32 `protobuf:"varint,3,opt,name=argbColor" json:"argbColor,omitempty"` + RoleId *uint64 `protobuf:"varint,1,opt,name=roleId" json:"roleId,omitempty"` + Name *string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` + ArgbColor *uint32 `protobuf:"varint,3,opt,name=argbColor" json:"argbColor,omitempty"` + Independent *int32 `protobuf:"varint,4,opt,name=independent" json:"independent,omitempty"` + Num *int32 `protobuf:"varint,5,opt,name=num" json:"num,omitempty"` + Owned *int32 `protobuf:"varint,6,opt,name=owned" json:"owned,omitempty"` // 是否拥有 存疑 + Disabled *int32 `protobuf:"varint,7,opt,name=disabled" json:"disabled,omitempty"` // 权限不足或不显示 + MaxNum *int32 `protobuf:"varint,8,opt,name=maxNum" json:"maxNum,omitempty"` // 9: ? } func (x *GuildRole) Reset() { *x = GuildRole{} if protoimpl.UnsafeEnabled { - mi := &file_pb_channel_unknown_proto_msgTypes[12] + mi := &file_pb_channel_unknown_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -718,7 +770,7 @@ func (x *GuildRole) String() string { func (*GuildRole) ProtoMessage() {} func (x *GuildRole) ProtoReflect() protoreflect.Message { - mi := &file_pb_channel_unknown_proto_msgTypes[12] + mi := &file_pb_channel_unknown_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -731,7 +783,7 @@ func (x *GuildRole) ProtoReflect() protoreflect.Message { // Deprecated: Use GuildRole.ProtoReflect.Descriptor instead. func (*GuildRole) Descriptor() ([]byte, []int) { - return file_pb_channel_unknown_proto_rawDescGZIP(), []int{12} + return file_pb_channel_unknown_proto_rawDescGZIP(), []int{13} } func (x *GuildRole) GetRoleId() uint64 { @@ -755,6 +807,41 @@ func (x *GuildRole) GetArgbColor() uint32 { return 0 } +func (x *GuildRole) GetIndependent() int32 { + if x != nil && x.Independent != nil { + return *x.Independent + } + return 0 +} + +func (x *GuildRole) GetNum() int32 { + if x != nil && x.Num != nil { + return *x.Num + } + return 0 +} + +func (x *GuildRole) GetOwned() int32 { + if x != nil && x.Owned != nil { + return *x.Owned + } + return 0 +} + +func (x *GuildRole) GetDisabled() int32 { + if x != nil && x.Disabled != nil { + return *x.Disabled + } + return 0 +} + +func (x *GuildRole) GetMaxNum() int32 { + if x != nil && x.MaxNum != nil { + return *x.MaxNum + } + return 0 +} + type GuildMeta struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -777,7 +864,7 @@ type GuildMeta struct { func (x *GuildMeta) Reset() { *x = GuildMeta{} if protoimpl.UnsafeEnabled { - mi := &file_pb_channel_unknown_proto_msgTypes[13] + mi := &file_pb_channel_unknown_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -790,7 +877,7 @@ func (x *GuildMeta) String() string { func (*GuildMeta) ProtoMessage() {} func (x *GuildMeta) ProtoReflect() protoreflect.Message { - mi := &file_pb_channel_unknown_proto_msgTypes[13] + mi := &file_pb_channel_unknown_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -803,7 +890,7 @@ func (x *GuildMeta) ProtoReflect() protoreflect.Message { // Deprecated: Use GuildMeta.ProtoReflect.Descriptor instead. func (*GuildMeta) Descriptor() ([]byte, []int) { - return file_pb_channel_unknown_proto_rawDescGZIP(), []int{13} + return file_pb_channel_unknown_proto_rawDescGZIP(), []int{14} } func (x *GuildMeta) GetGuildCode() uint64 { @@ -915,7 +1002,7 @@ type GuildChannelInfo struct { func (x *GuildChannelInfo) Reset() { *x = GuildChannelInfo{} if protoimpl.UnsafeEnabled { - mi := &file_pb_channel_unknown_proto_msgTypes[14] + mi := &file_pb_channel_unknown_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -928,7 +1015,7 @@ func (x *GuildChannelInfo) String() string { func (*GuildChannelInfo) ProtoMessage() {} func (x *GuildChannelInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_channel_unknown_proto_msgTypes[14] + mi := &file_pb_channel_unknown_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -941,7 +1028,7 @@ func (x *GuildChannelInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use GuildChannelInfo.ProtoReflect.Descriptor instead. func (*GuildChannelInfo) Descriptor() ([]byte, []int) { - return file_pb_channel_unknown_proto_rawDescGZIP(), []int{14} + return file_pb_channel_unknown_proto_rawDescGZIP(), []int{15} } func (x *GuildChannelInfo) GetChannelId() uint64 { @@ -1049,7 +1136,7 @@ type GuildChannelSlowModeInfo struct { func (x *GuildChannelSlowModeInfo) Reset() { *x = GuildChannelSlowModeInfo{} if protoimpl.UnsafeEnabled { - mi := &file_pb_channel_unknown_proto_msgTypes[15] + mi := &file_pb_channel_unknown_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1062,7 +1149,7 @@ func (x *GuildChannelSlowModeInfo) String() string { func (*GuildChannelSlowModeInfo) ProtoMessage() {} func (x *GuildChannelSlowModeInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_channel_unknown_proto_msgTypes[15] + mi := &file_pb_channel_unknown_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1075,7 +1162,7 @@ func (x *GuildChannelSlowModeInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use GuildChannelSlowModeInfo.ProtoReflect.Descriptor instead. func (*GuildChannelSlowModeInfo) Descriptor() ([]byte, []int) { - return file_pb_channel_unknown_proto_rawDescGZIP(), []int{15} + return file_pb_channel_unknown_proto_rawDescGZIP(), []int{16} } func (x *GuildChannelSlowModeInfo) GetSlowModeKey() int32 { @@ -1119,7 +1206,7 @@ type GuildChannelTopMsgInfo struct { func (x *GuildChannelTopMsgInfo) Reset() { *x = GuildChannelTopMsgInfo{} if protoimpl.UnsafeEnabled { - mi := &file_pb_channel_unknown_proto_msgTypes[16] + mi := &file_pb_channel_unknown_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1132,7 +1219,7 @@ func (x *GuildChannelTopMsgInfo) String() string { func (*GuildChannelTopMsgInfo) ProtoMessage() {} func (x *GuildChannelTopMsgInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_channel_unknown_proto_msgTypes[16] + mi := &file_pb_channel_unknown_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1145,7 +1232,7 @@ func (x *GuildChannelTopMsgInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use GuildChannelTopMsgInfo.ProtoReflect.Descriptor instead. func (*GuildChannelTopMsgInfo) Descriptor() ([]byte, []int) { - return file_pb_channel_unknown_proto_rawDescGZIP(), []int{16} + return file_pb_channel_unknown_proto_rawDescGZIP(), []int{17} } func (x *GuildChannelTopMsgInfo) GetTopMsgSeq() uint64 { @@ -1214,7 +1301,10 @@ var file_pb_channel_unknown_proto_rawDesc = []byte{ 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, - 0x6f, 0x6c, 0x65, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x22, 0x50, 0x0a, 0x0c, 0x47, 0x75, + 0x6f, 0x6c, 0x65, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x22, 0x2e, 0x0a, 0x14, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x69, 0x64, 0x62, 0x30, 0x78, 0x31, 0x30, 0x31, 0x36, 0x52, + 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x22, 0x50, 0x0a, 0x0c, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, @@ -1247,91 +1337,99 @@ var file_pb_channel_unknown_proto_rawDesc = []byte{ 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6a, 0x6f, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x10, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6a, 0x6f, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x55, - 0x0a, 0x09, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, - 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x72, 0x6f, 0x6c, - 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x67, 0x62, 0x43, - 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x72, 0x67, 0x62, - 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x22, 0xf5, 0x02, 0x0a, 0x09, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, - 0x65, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x64, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x64, - 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6a, 0x6f, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xd3, + 0x01, 0x0a, 0x09, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x72, 0x6f, + 0x6c, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x67, 0x62, + 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x72, 0x67, + 0x62, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x64, 0x65, 0x70, 0x65, + 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x6e, 0x64, + 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, + 0x6e, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x64, + 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, + 0x6d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x61, + 0x78, 0x4e, 0x75, 0x6d, 0x22, 0xf5, 0x02, 0x0a, 0x09, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, + 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, + 0x0a, 0x0b, 0x72, 0x6f, 0x62, 0x6f, 0x74, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x6f, 0x62, 0x6f, 0x74, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, + 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x4d, 0x61, 0x78, 0x4e, + 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x1c, 0x0a, 0x09, + 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x53, 0x65, 0x71, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x09, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x53, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x77, + 0x6e, 0x65, 0x72, 0x49, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6f, 0x77, 0x6e, + 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x53, 0x65, 0x71, + 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x53, 0x65, 0x71, + 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x14, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x9a, 0x04, 0x0a, + 0x10, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, + 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x69, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x69, + 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, - 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x20, 0x0a, 0x0b, 0x72, 0x6f, 0x62, 0x6f, 0x74, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x6f, 0x62, 0x6f, 0x74, 0x4d, 0x61, 0x78, 0x4e, 0x75, - 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x4d, 0x61, 0x78, - 0x4e, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x1c, 0x0a, - 0x09, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x53, 0x65, 0x71, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x09, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x53, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x6f, - 0x77, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6f, 0x77, - 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x53, 0x65, - 0x71, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x53, 0x65, - 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x14, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x9a, 0x04, - 0x0a, 0x10, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, - 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x69, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x55, - 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, - 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x69, - 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x63, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x61, 0x6c, 0x6b, - 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0e, 0x74, 0x61, 0x6c, 0x6b, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x69, 0x6e, 0x79, 0x49, - 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, - 0x54, 0x69, 0x6e, 0x79, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x76, 0x69, 0x73, - 0x69, 0x62, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x37, 0x0a, 0x06, 0x74, 0x6f, 0x70, 0x4d, - 0x73, 0x67, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, - 0x6f, 0x70, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x74, 0x6f, 0x70, 0x4d, 0x73, - 0x67, 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x6c, 0x6f, 0x77, - 0x4d, 0x6f, 0x64, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x63, - 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x6c, 0x6f, 0x77, 0x4d, 0x6f, 0x64, 0x65, 0x4b, 0x65, - 0x79, 0x12, 0x47, 0x0a, 0x0d, 0x73, 0x6c, 0x6f, 0x77, 0x4d, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x73, 0x18, 0x20, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, - 0x6c, 0x6f, 0x77, 0x4d, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x73, 0x6c, 0x6f, - 0x77, 0x4d, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x22, 0xb0, 0x01, 0x0a, 0x18, 0x47, - 0x75, 0x69, 0x6c, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x6c, 0x6f, 0x77, 0x4d, - 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x6c, 0x6f, 0x77, 0x4d, - 0x6f, 0x64, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x6c, - 0x6f, 0x77, 0x4d, 0x6f, 0x64, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x70, 0x65, - 0x61, 0x6b, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0e, 0x73, 0x70, 0x65, 0x61, 0x6b, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x6c, 0x6f, 0x77, 0x4d, 0x6f, 0x64, 0x65, 0x43, 0x69, 0x72, - 0x63, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x6c, 0x6f, 0x77, 0x4d, - 0x6f, 0x64, 0x65, 0x43, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x6c, 0x6f, - 0x77, 0x4d, 0x6f, 0x64, 0x65, 0x54, 0x65, 0x78, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x73, 0x6c, 0x6f, 0x77, 0x4d, 0x6f, 0x64, 0x65, 0x54, 0x65, 0x78, 0x74, 0x22, 0x8a, 0x01, - 0x0a, 0x16, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6f, - 0x70, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x6f, 0x70, 0x4d, - 0x73, 0x67, 0x53, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x6f, 0x70, - 0x4d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x70, 0x4d, 0x73, 0x67, - 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x6f, 0x70, 0x4d, - 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x14, 0x74, 0x6f, 0x70, 0x4d, 0x73, 0x67, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x69, 0x6e, 0x79, 0x49, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x74, 0x6f, 0x70, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x6f, 0x72, 0x54, 0x69, 0x6e, 0x79, 0x49, 0x64, 0x42, 0x14, 0x5a, 0x12, 0x70, 0x62, - 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x3b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x66, + 0x69, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x69, 0x66, + 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x61, 0x6c, 0x6b, 0x50, + 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0e, 0x74, 0x61, 0x6c, 0x6b, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x24, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x69, 0x6e, 0x79, 0x49, 0x64, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x54, + 0x69, 0x6e, 0x79, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x76, 0x69, 0x73, 0x69, + 0x62, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x37, 0x0a, 0x06, 0x74, 0x6f, 0x70, 0x4d, 0x73, + 0x67, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6f, + 0x70, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x74, 0x6f, 0x70, 0x4d, 0x73, 0x67, + 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x6c, 0x6f, 0x77, 0x4d, + 0x6f, 0x64, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x63, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x6c, 0x6f, 0x77, 0x4d, 0x6f, 0x64, 0x65, 0x4b, 0x65, 0x79, + 0x12, 0x47, 0x0a, 0x0d, 0x73, 0x6c, 0x6f, 0x77, 0x4d, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x73, 0x18, 0x20, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x6c, + 0x6f, 0x77, 0x4d, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x73, 0x6c, 0x6f, 0x77, + 0x4d, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x22, 0xb0, 0x01, 0x0a, 0x18, 0x47, 0x75, + 0x69, 0x6c, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x6c, 0x6f, 0x77, 0x4d, 0x6f, + 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x6c, 0x6f, 0x77, 0x4d, 0x6f, + 0x64, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x6c, 0x6f, + 0x77, 0x4d, 0x6f, 0x64, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x70, 0x65, 0x61, + 0x6b, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0e, 0x73, 0x70, 0x65, 0x61, 0x6b, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, + 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x6c, 0x6f, 0x77, 0x4d, 0x6f, 0x64, 0x65, 0x43, 0x69, 0x72, 0x63, + 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x6c, 0x6f, 0x77, 0x4d, 0x6f, + 0x64, 0x65, 0x43, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x6c, 0x6f, 0x77, + 0x4d, 0x6f, 0x64, 0x65, 0x54, 0x65, 0x78, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x73, 0x6c, 0x6f, 0x77, 0x4d, 0x6f, 0x64, 0x65, 0x54, 0x65, 0x78, 0x74, 0x22, 0x8a, 0x01, 0x0a, + 0x16, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6f, 0x70, + 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x6f, 0x70, 0x4d, 0x73, + 0x67, 0x53, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x6f, 0x70, 0x4d, + 0x73, 0x67, 0x53, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x70, 0x4d, 0x73, 0x67, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x6f, 0x70, 0x4d, 0x73, + 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x14, 0x74, 0x6f, 0x70, 0x4d, 0x73, 0x67, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x69, 0x6e, 0x79, 0x49, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x14, 0x74, 0x6f, 0x70, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x54, 0x69, 0x6e, 0x79, 0x49, 0x64, 0x42, 0x14, 0x5a, 0x12, 0x70, 0x62, 0x2f, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x3b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, } var ( @@ -1346,7 +1444,7 @@ func file_pb_channel_unknown_proto_rawDescGZIP() []byte { return file_pb_channel_unknown_proto_rawDescData } -var file_pb_channel_unknown_proto_msgTypes = make([]protoimpl.MessageInfo, 17) +var file_pb_channel_unknown_proto_msgTypes = make([]protoimpl.MessageInfo, 18) var file_pb_channel_unknown_proto_goTypes = []interface{}{ (*ChannelOidb0Xf5BRsp)(nil), // 0: channel.ChannelOidb0xf5bRsp (*ChannelOidb0Xf88Rsp)(nil), // 1: channel.ChannelOidb0xf88Rsp @@ -1355,32 +1453,33 @@ var file_pb_channel_unknown_proto_goTypes = []interface{}{ (*ChannelOidb0Xf55Rsp)(nil), // 4: channel.ChannelOidb0xf55Rsp (*ChannelOidb0Xf5DRsp)(nil), // 5: channel.ChannelOidb0xf5dRsp (*ChannelOidb0X1019Rsp)(nil), // 6: channel.ChannelOidb0x1019Rsp - (*GuildMetaRsp)(nil), // 7: channel.GuildMetaRsp - (*ChannelListRsp)(nil), // 8: channel.ChannelListRsp - (*GuildAdminInfo)(nil), // 9: channel.GuildAdminInfo - (*GuildMemberInfo)(nil), // 10: channel.GuildMemberInfo - (*GuildUserProfile)(nil), // 11: channel.GuildUserProfile - (*GuildRole)(nil), // 12: channel.GuildRole - (*GuildMeta)(nil), // 13: channel.GuildMeta - (*GuildChannelInfo)(nil), // 14: channel.GuildChannelInfo - (*GuildChannelSlowModeInfo)(nil), // 15: channel.GuildChannelSlowModeInfo - (*GuildChannelTopMsgInfo)(nil), // 16: channel.GuildChannelTopMsgInfo + (*ChannelOidb0X1016Rsp)(nil), // 7: channel.ChannelOidb0x1016Rsp + (*GuildMetaRsp)(nil), // 8: channel.GuildMetaRsp + (*ChannelListRsp)(nil), // 9: channel.ChannelListRsp + (*GuildAdminInfo)(nil), // 10: channel.GuildAdminInfo + (*GuildMemberInfo)(nil), // 11: channel.GuildMemberInfo + (*GuildUserProfile)(nil), // 12: channel.GuildUserProfile + (*GuildRole)(nil), // 13: channel.GuildRole + (*GuildMeta)(nil), // 14: channel.GuildMeta + (*GuildChannelInfo)(nil), // 15: channel.GuildChannelInfo + (*GuildChannelSlowModeInfo)(nil), // 16: channel.GuildChannelSlowModeInfo + (*GuildChannelTopMsgInfo)(nil), // 17: channel.GuildChannelTopMsgInfo } var file_pb_channel_unknown_proto_depIdxs = []int32{ - 10, // 0: channel.ChannelOidb0xf5bRsp.bots:type_name -> channel.GuildMemberInfo - 10, // 1: channel.ChannelOidb0xf5bRsp.members:type_name -> channel.GuildMemberInfo - 9, // 2: channel.ChannelOidb0xf5bRsp.adminInfo:type_name -> channel.GuildAdminInfo - 11, // 3: channel.ChannelOidb0xf88Rsp.profile:type_name -> channel.GuildUserProfile - 11, // 4: channel.ChannelOidb0xfc9Rsp.profile:type_name -> channel.GuildUserProfile - 7, // 5: channel.ChannelOidb0xf57Rsp.rsp:type_name -> channel.GuildMetaRsp - 14, // 6: channel.ChannelOidb0xf55Rsp.info:type_name -> channel.GuildChannelInfo - 8, // 7: channel.ChannelOidb0xf5dRsp.rsp:type_name -> channel.ChannelListRsp - 12, // 8: channel.ChannelOidb0x1019Rsp.roles:type_name -> channel.GuildRole - 13, // 9: channel.GuildMetaRsp.meta:type_name -> channel.GuildMeta - 14, // 10: channel.ChannelListRsp.channels:type_name -> channel.GuildChannelInfo - 10, // 11: channel.GuildAdminInfo.admins:type_name -> channel.GuildMemberInfo - 16, // 12: channel.GuildChannelInfo.topMsg:type_name -> channel.GuildChannelTopMsgInfo - 15, // 13: channel.GuildChannelInfo.slowModeInfos:type_name -> channel.GuildChannelSlowModeInfo + 11, // 0: channel.ChannelOidb0xf5bRsp.bots:type_name -> channel.GuildMemberInfo + 11, // 1: channel.ChannelOidb0xf5bRsp.members:type_name -> channel.GuildMemberInfo + 10, // 2: channel.ChannelOidb0xf5bRsp.adminInfo:type_name -> channel.GuildAdminInfo + 12, // 3: channel.ChannelOidb0xf88Rsp.profile:type_name -> channel.GuildUserProfile + 12, // 4: channel.ChannelOidb0xfc9Rsp.profile:type_name -> channel.GuildUserProfile + 8, // 5: channel.ChannelOidb0xf57Rsp.rsp:type_name -> channel.GuildMetaRsp + 15, // 6: channel.ChannelOidb0xf55Rsp.info:type_name -> channel.GuildChannelInfo + 9, // 7: channel.ChannelOidb0xf5dRsp.rsp:type_name -> channel.ChannelListRsp + 13, // 8: channel.ChannelOidb0x1019Rsp.roles:type_name -> channel.GuildRole + 14, // 9: channel.GuildMetaRsp.meta:type_name -> channel.GuildMeta + 15, // 10: channel.ChannelListRsp.channels:type_name -> channel.GuildChannelInfo + 11, // 11: channel.GuildAdminInfo.admins:type_name -> channel.GuildMemberInfo + 17, // 12: channel.GuildChannelInfo.topMsg:type_name -> channel.GuildChannelTopMsgInfo + 16, // 13: channel.GuildChannelInfo.slowModeInfos:type_name -> channel.GuildChannelSlowModeInfo 14, // [14:14] is the sub-list for method output_type 14, // [14:14] is the sub-list for method input_type 14, // [14:14] is the sub-list for extension type_name @@ -1479,7 +1578,7 @@ func file_pb_channel_unknown_proto_init() { } } file_pb_channel_unknown_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GuildMetaRsp); i { + switch v := v.(*ChannelOidb0X1016Rsp); i { case 0: return &v.state case 1: @@ -1491,7 +1590,7 @@ func file_pb_channel_unknown_proto_init() { } } file_pb_channel_unknown_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChannelListRsp); i { + switch v := v.(*GuildMetaRsp); i { case 0: return &v.state case 1: @@ -1503,7 +1602,7 @@ func file_pb_channel_unknown_proto_init() { } } file_pb_channel_unknown_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GuildAdminInfo); i { + switch v := v.(*ChannelListRsp); i { case 0: return &v.state case 1: @@ -1515,7 +1614,7 @@ func file_pb_channel_unknown_proto_init() { } } file_pb_channel_unknown_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GuildMemberInfo); i { + switch v := v.(*GuildAdminInfo); i { case 0: return &v.state case 1: @@ -1527,7 +1626,7 @@ func file_pb_channel_unknown_proto_init() { } } file_pb_channel_unknown_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GuildUserProfile); i { + switch v := v.(*GuildMemberInfo); i { case 0: return &v.state case 1: @@ -1539,7 +1638,7 @@ func file_pb_channel_unknown_proto_init() { } } file_pb_channel_unknown_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GuildRole); i { + switch v := v.(*GuildUserProfile); i { case 0: return &v.state case 1: @@ -1551,7 +1650,7 @@ func file_pb_channel_unknown_proto_init() { } } file_pb_channel_unknown_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GuildMeta); i { + switch v := v.(*GuildRole); i { case 0: return &v.state case 1: @@ -1563,7 +1662,7 @@ func file_pb_channel_unknown_proto_init() { } } file_pb_channel_unknown_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GuildChannelInfo); i { + switch v := v.(*GuildMeta); i { case 0: return &v.state case 1: @@ -1575,7 +1674,7 @@ func file_pb_channel_unknown_proto_init() { } } file_pb_channel_unknown_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GuildChannelSlowModeInfo); i { + switch v := v.(*GuildChannelInfo); i { case 0: return &v.state case 1: @@ -1587,6 +1686,18 @@ func file_pb_channel_unknown_proto_init() { } } file_pb_channel_unknown_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GuildChannelSlowModeInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_unknown_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GuildChannelTopMsgInfo); i { case 0: return &v.state @@ -1605,7 +1716,7 @@ func file_pb_channel_unknown_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pb_channel_unknown_proto_rawDesc, NumEnums: 0, - NumMessages: 17, + NumMessages: 18, NumExtensions: 0, NumServices: 0, }, diff --git a/client/pb/channel/unknown.proto b/client/pb/channel/unknown.proto index 936b8321..adfbad08 100644 --- a/client/pb/channel/unknown.proto +++ b/client/pb/channel/unknown.proto @@ -35,8 +35,37 @@ message ChannelOidb0xf5dRsp { message ChannelOidb0x1019Rsp { optional uint64 guildId = 1; repeated GuildRole roles = 2; + // 3: ? + // 4: } +/* +message ChannelOidb0x100dReq { // 修改身份组 + optional uint64 guildId = 1; + repeated uint64 roleId = 2; + repeated int32 unkonwn = 3; // 3: ? 三个1 + repeated ModifyGuildRole role = 4; +}*/ + +/* +message ChannelOidb0x1016Req { // 新建身份组 + optional uint64 guildId = 1; + repeated int32 unknown = 2; // 2: ? 三个1 + optional ModifyGuildRole role = 3; + repeated uint64 initialUsers = 4; +}*/ + +message ChannelOidb0x1016Rsp { + optional uint64 roleId = 2; +} + +/* +message ChannelOidb0x101aReq { // 给予身份组 + optional uint64 guildId = 1; + repeated SetGuildRole setRoles = 2; + repeated SetGuildRole removeRoles = 3; +}*/ + message GuildMetaRsp { optional uint64 guildId = 3; optional GuildMeta meta = 4; @@ -76,13 +105,27 @@ message GuildRole { optional uint64 roleId = 1; optional string name = 2; optional uint32 argbColor = 3; - // 4: visible? - // 5: ? - // 6: customRole? - // 7: officalRole? - // 8: ? permission + optional int32 independent = 4; + optional int32 num = 5; + optional int32 owned = 6; // 是否拥有 存疑 + optional int32 disabled = 7; // 权限不足或不显示 + optional int32 maxNum = 8; + // 9: ? } +/* +message SetGuildRole { + optional uint64 roleId = 1; + optional uint64 targetId = 2; +}*/ + +/* +message ModifyGuildRole { + optional string roleName = 1; + optional uint32 color = 2; + optional int32 independent = 3; // 身份组单独显示 +}*/ + message GuildMeta { optional uint64 guildCode = 2; optional int64 createTime = 4;