save
This commit is contained in:
parent
86df80be84
commit
f6730e9cde
@ -40,11 +40,7 @@ func (cm *CacheMgr) GetProfileByAccountId(accountId string, cb func(err error, p
|
|||||||
}
|
}
|
||||||
if rows.Next() {
|
if rows.Next() {
|
||||||
aId := q5.ToString(*rows.GetByIndex(0))
|
aId := q5.ToString(*rows.GetByIndex(0))
|
||||||
player := playerMgr.GetPlayerByAccountId(aId)
|
onlineStatue := playerMgr.GetOnlineStatus(aId)
|
||||||
var onlineStatue int32 = 0
|
|
||||||
if player != nil {
|
|
||||||
onlineStatue = 1
|
|
||||||
}
|
|
||||||
profile := &PlayerProfile{
|
profile := &PlayerProfile{
|
||||||
AccountId: q5.ToString(*rows.GetByIndex(0)),
|
AccountId: q5.ToString(*rows.GetByIndex(0)),
|
||||||
Username: q5.ToString(*rows.GetByIndex(1)),
|
Username: q5.ToString(*rows.GetByIndex(1)),
|
||||||
@ -73,11 +69,7 @@ func (cm *CacheMgr) loadUsersProfile(sql string) {
|
|||||||
}
|
}
|
||||||
for rows.Next() {
|
for rows.Next() {
|
||||||
accountId := q5.ToString(*rows.GetByIndex(0))
|
accountId := q5.ToString(*rows.GetByIndex(0))
|
||||||
player := playerMgr.GetPlayerByAccountId(accountId)
|
onlineStatus := playerMgr.GetOnlineStatus(accountId)
|
||||||
var onlineStatue int32 = 0
|
|
||||||
if player != nil {
|
|
||||||
onlineStatue = 1
|
|
||||||
}
|
|
||||||
profile := &PlayerProfile{
|
profile := &PlayerProfile{
|
||||||
AccountId: accountId,
|
AccountId: accountId,
|
||||||
Username: q5.ToString(*rows.GetByIndex(1)),
|
Username: q5.ToString(*rows.GetByIndex(1)),
|
||||||
@ -86,7 +78,7 @@ func (cm *CacheMgr) loadUsersProfile(sql string) {
|
|||||||
Star: q5.ToInt32(*rows.GetByIndex(4)),
|
Star: q5.ToInt32(*rows.GetByIndex(4)),
|
||||||
Rank: q5.ToInt32(*rows.GetByIndex(5)),
|
Rank: q5.ToInt32(*rows.GetByIndex(5)),
|
||||||
LastLoginTime: q5.ToInt32(*rows.GetByIndex(6)),
|
LastLoginTime: q5.ToInt32(*rows.GetByIndex(6)),
|
||||||
OnlineStatus: onlineStatue,
|
OnlineStatus: onlineStatus,
|
||||||
}
|
}
|
||||||
cm.AddCacheProfile(1, profile)
|
cm.AddCacheProfile(1, profile)
|
||||||
}
|
}
|
||||||
|
@ -56,8 +56,7 @@ const (
|
|||||||
LogTypeApprove = 1 // 公会日志类型, 批准加入
|
LogTypeApprove = 1 // 公会日志类型, 批准加入
|
||||||
LogTypeLeave = 2
|
LogTypeLeave = 2
|
||||||
LogTypeDismiss = 3
|
LogTypeDismiss = 3
|
||||||
LogTypePromote = 4
|
LogTypeChangeLevel = 4
|
||||||
LogTypeDemote = 5
|
|
||||||
LogTypeDisband = 6
|
LogTypeDisband = 6
|
||||||
GuildMemberLevelLeader = 1 // 成员等级, 会长
|
GuildMemberLevelLeader = 1 // 成员等级, 会长
|
||||||
GuildMemberLevelViceLeader = 20 // 成员等级, 副会长
|
GuildMemberLevelViceLeader = 20 // 成员等级, 副会长
|
||||||
@ -80,8 +79,6 @@ const (
|
|||||||
EVENT_JOIN = "event_join"
|
EVENT_JOIN = "event_join"
|
||||||
EVENT_LEAVE = "event_leave"
|
EVENT_LEAVE = "event_leave"
|
||||||
EVENT_DISMISS_MEMBER = "event_dismiss_member"
|
EVENT_DISMISS_MEMBER = "event_dismiss_member"
|
||||||
EVENT_PROMOTE_MEMBER = "event_promote_member"
|
|
||||||
EVENT_DEMOTE_MEMBER = "event_demote_member"
|
|
||||||
EVENT_SET_MEMBER_LEVEL = "event_set_member_level"
|
EVENT_SET_MEMBER_LEVEL = "event_set_member_level"
|
||||||
EVENT_DISBAND = "event_disband"
|
EVENT_DISBAND = "event_disband"
|
||||||
EVENT_SET_NOTICE = "event_set_notice"
|
EVENT_SET_NOTICE = "event_set_notice"
|
||||||
@ -119,7 +116,6 @@ const (
|
|||||||
ERR_CODE_GUILD_BLOCKED_LEADER = 12009
|
ERR_CODE_GUILD_BLOCKED_LEADER = 12009
|
||||||
ERR_CODE_GUILD_OPERATOR_MEMBER_NO_PERM = 12010
|
ERR_CODE_GUILD_OPERATOR_MEMBER_NO_PERM = 12010
|
||||||
ERR_CODE_GUILD_DISMISS_MEMBER_NO_PERM = 12011
|
ERR_CODE_GUILD_DISMISS_MEMBER_NO_PERM = 12011
|
||||||
ERR_CODE_GUILD_DEMOTE_MEMBER_OK = 12012
|
|
||||||
ERR_CODE_CREATE_GUILD_DB_FAIL = 12013
|
ERR_CODE_CREATE_GUILD_DB_FAIL = 12013
|
||||||
ERR_CODE_CREATE_GUILD_MEMBER_DB_FAIL = 12014
|
ERR_CODE_CREATE_GUILD_MEMBER_DB_FAIL = 12014
|
||||||
ERR_CODE_UPDATE_GUILD_DB_FAIL = 12015
|
ERR_CODE_UPDATE_GUILD_DB_FAIL = 12015
|
||||||
|
@ -63,8 +63,6 @@ type MsgHandler interface {
|
|||||||
CMLeaveGuild(*f5.MsgHdr, *CMLeaveGuild)
|
CMLeaveGuild(*f5.MsgHdr, *CMLeaveGuild)
|
||||||
CMDismissMember(*f5.MsgHdr, *CMDismissMember)
|
CMDismissMember(*f5.MsgHdr, *CMDismissMember)
|
||||||
CMSetMemberLevel(*f5.MsgHdr, *CMSetMemberLevel)
|
CMSetMemberLevel(*f5.MsgHdr, *CMSetMemberLevel)
|
||||||
CMPromoteMember(*f5.MsgHdr, *CMPromoteMember)
|
|
||||||
CMDemoteMember(*f5.MsgHdr, *CMDemoteMember)
|
|
||||||
CMGuildMembersList(*f5.MsgHdr, *CMGuildMembersList)
|
CMGuildMembersList(*f5.MsgHdr, *CMGuildMembersList)
|
||||||
CMDisband(*f5.MsgHdr, *CMDisband)
|
CMDisband(*f5.MsgHdr, *CMDisband)
|
||||||
CMSearchGuilds(*f5.MsgHdr, *CMSearchGuilds)
|
CMSearchGuilds(*f5.MsgHdr, *CMSearchGuilds)
|
||||||
@ -159,12 +157,6 @@ func (this *MsgHandlerImpl) CMDismissMember(hdr *f5.MsgHdr, msg *CMDismissMember
|
|||||||
func (this *MsgHandlerImpl) CMSetMemberLevel(hdr *f5.MsgHdr, msg *CMSetMemberLevel) {
|
func (this *MsgHandlerImpl) CMSetMemberLevel(hdr *f5.MsgHdr, msg *CMSetMemberLevel) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *MsgHandlerImpl) CMPromoteMember(hdr *f5.MsgHdr, msg *CMPromoteMember) {
|
|
||||||
}
|
|
||||||
|
|
||||||
func (this *MsgHandlerImpl) CMDemoteMember(hdr *f5.MsgHdr, msg *CMDemoteMember) {
|
|
||||||
}
|
|
||||||
|
|
||||||
func (this *MsgHandlerImpl) CMGuildMembersList(hdr *f5.MsgHdr, msg *CMGuildMembersList) {
|
func (this *MsgHandlerImpl) CMGuildMembersList(hdr *f5.MsgHdr, msg *CMGuildMembersList) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -425,22 +417,6 @@ func (this *SMSetMemberLevel) GetNetMsgId() uint16 {
|
|||||||
return uint16(SMMessageIdE__SMSetMemberLevel)
|
return uint16(SMMessageIdE__SMSetMemberLevel)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *CMPromoteMember) GetNetMsgId() uint16 {
|
|
||||||
return uint16(CMMessageIdE__CMPromoteMember)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (this *SMPromoteMember) GetNetMsgId() uint16 {
|
|
||||||
return uint16(SMMessageIdE__SMPromoteMember)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (this *CMDemoteMember) GetNetMsgId() uint16 {
|
|
||||||
return uint16(CMMessageIdE__CMDemoteMember)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (this *SMDemoteMember) GetNetMsgId() uint16 {
|
|
||||||
return uint16(SMMessageIdE__SMDemoteMember)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (this *CMGuildMembersList) GetNetMsgId() uint16 {
|
func (this *CMGuildMembersList) GetNetMsgId() uint16 {
|
||||||
return uint16(CMMessageIdE__CMGuildMembersList)
|
return uint16(CMMessageIdE__CMGuildMembersList)
|
||||||
}
|
}
|
||||||
@ -843,30 +819,6 @@ func init() {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
handlers[int(CMMessageIdE__CMPromoteMember)] = &CsNetMsgHandler{
|
|
||||||
MsgId: int(CMMessageIdE__CMPromoteMember),
|
|
||||||
ParseCb: func (data []byte) interface{} {
|
|
||||||
msg := &CMPromoteMember{}
|
|
||||||
proto.Unmarshal(data, msg)
|
|
||||||
return msg
|
|
||||||
},
|
|
||||||
Cb: func (hdr *f5.MsgHdr, handler MsgHandler) {
|
|
||||||
handler.CMPromoteMember(hdr, hdr.Msg.(*CMPromoteMember))
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
handlers[int(CMMessageIdE__CMDemoteMember)] = &CsNetMsgHandler{
|
|
||||||
MsgId: int(CMMessageIdE__CMDemoteMember),
|
|
||||||
ParseCb: func (data []byte) interface{} {
|
|
||||||
msg := &CMDemoteMember{}
|
|
||||||
proto.Unmarshal(data, msg)
|
|
||||||
return msg
|
|
||||||
},
|
|
||||||
Cb: func (hdr *f5.MsgHdr, handler MsgHandler) {
|
|
||||||
handler.CMDemoteMember(hdr, hdr.Msg.(*CMDemoteMember))
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
handlers[int(CMMessageIdE__CMGuildMembersList)] = &CsNetMsgHandler{
|
handlers[int(CMMessageIdE__CMGuildMembersList)] = &CsNetMsgHandler{
|
||||||
MsgId: int(CMMessageIdE__CMGuildMembersList),
|
MsgId: int(CMMessageIdE__CMGuildMembersList),
|
||||||
ParseCb: func (data []byte) interface{} {
|
ParseCb: func (data []byte) interface{} {
|
||||||
|
@ -52,8 +52,6 @@ const (
|
|||||||
CMMessageIdE__CMReject CMMessageIdE = 124
|
CMMessageIdE__CMReject CMMessageIdE = 124
|
||||||
CMMessageIdE__CMLeaveGuild CMMessageIdE = 125
|
CMMessageIdE__CMLeaveGuild CMMessageIdE = 125
|
||||||
CMMessageIdE__CMDismissMember CMMessageIdE = 126
|
CMMessageIdE__CMDismissMember CMMessageIdE = 126
|
||||||
CMMessageIdE__CMPromoteMember CMMessageIdE = 127
|
|
||||||
CMMessageIdE__CMDemoteMember CMMessageIdE = 128
|
|
||||||
CMMessageIdE__CMDisband CMMessageIdE = 129
|
CMMessageIdE__CMDisband CMMessageIdE = 129
|
||||||
CMMessageIdE__CMSearchGuilds CMMessageIdE = 130
|
CMMessageIdE__CMSearchGuilds CMMessageIdE = 130
|
||||||
CMMessageIdE__CMApplyList CMMessageIdE = 131
|
CMMessageIdE__CMApplyList CMMessageIdE = 131
|
||||||
@ -95,8 +93,6 @@ var (
|
|||||||
124: "_CMReject",
|
124: "_CMReject",
|
||||||
125: "_CMLeaveGuild",
|
125: "_CMLeaveGuild",
|
||||||
126: "_CMDismissMember",
|
126: "_CMDismissMember",
|
||||||
127: "_CMPromoteMember",
|
|
||||||
128: "_CMDemoteMember",
|
|
||||||
129: "_CMDisband",
|
129: "_CMDisband",
|
||||||
130: "_CMSearchGuilds",
|
130: "_CMSearchGuilds",
|
||||||
131: "_CMApplyList",
|
131: "_CMApplyList",
|
||||||
@ -135,8 +131,6 @@ var (
|
|||||||
"_CMReject": 124,
|
"_CMReject": 124,
|
||||||
"_CMLeaveGuild": 125,
|
"_CMLeaveGuild": 125,
|
||||||
"_CMDismissMember": 126,
|
"_CMDismissMember": 126,
|
||||||
"_CMPromoteMember": 127,
|
|
||||||
"_CMDemoteMember": 128,
|
|
||||||
"_CMDisband": 129,
|
"_CMDisband": 129,
|
||||||
"_CMSearchGuilds": 130,
|
"_CMSearchGuilds": 130,
|
||||||
"_CMApplyList": 131,
|
"_CMApplyList": 131,
|
||||||
@ -214,8 +208,6 @@ const (
|
|||||||
SMMessageIdE__SMReject SMMessageIdE = 124
|
SMMessageIdE__SMReject SMMessageIdE = 124
|
||||||
SMMessageIdE__SMLeaveGuild SMMessageIdE = 125
|
SMMessageIdE__SMLeaveGuild SMMessageIdE = 125
|
||||||
SMMessageIdE__SMDismissMember SMMessageIdE = 126
|
SMMessageIdE__SMDismissMember SMMessageIdE = 126
|
||||||
SMMessageIdE__SMPromoteMember SMMessageIdE = 127
|
|
||||||
SMMessageIdE__SMDemoteMember SMMessageIdE = 128
|
|
||||||
SMMessageIdE__SMDisband SMMessageIdE = 129
|
SMMessageIdE__SMDisband SMMessageIdE = 129
|
||||||
SMMessageIdE__SMSearchGuilds SMMessageIdE = 130
|
SMMessageIdE__SMSearchGuilds SMMessageIdE = 130
|
||||||
SMMessageIdE__SMApplyList SMMessageIdE = 131
|
SMMessageIdE__SMApplyList SMMessageIdE = 131
|
||||||
@ -262,8 +254,6 @@ var (
|
|||||||
124: "_SMReject",
|
124: "_SMReject",
|
||||||
125: "_SMLeaveGuild",
|
125: "_SMLeaveGuild",
|
||||||
126: "_SMDismissMember",
|
126: "_SMDismissMember",
|
||||||
127: "_SMPromoteMember",
|
|
||||||
128: "_SMDemoteMember",
|
|
||||||
129: "_SMDisband",
|
129: "_SMDisband",
|
||||||
130: "_SMSearchGuilds",
|
130: "_SMSearchGuilds",
|
||||||
131: "_SMApplyList",
|
131: "_SMApplyList",
|
||||||
@ -305,8 +295,6 @@ var (
|
|||||||
"_SMReject": 124,
|
"_SMReject": 124,
|
||||||
"_SMLeaveGuild": 125,
|
"_SMLeaveGuild": 125,
|
||||||
"_SMDismissMember": 126,
|
"_SMDismissMember": 126,
|
||||||
"_SMPromoteMember": 127,
|
|
||||||
"_SMDemoteMember": 128,
|
|
||||||
"_SMDisband": 129,
|
"_SMDisband": 129,
|
||||||
"_SMSearchGuilds": 130,
|
"_SMSearchGuilds": 130,
|
||||||
"_SMApplyList": 131,
|
"_SMApplyList": 131,
|
||||||
@ -368,7 +356,7 @@ var File_cs_msgid_proto protoreflect.FileDescriptor
|
|||||||
|
|
||||||
var file_cs_msgid_proto_rawDesc = []byte{
|
var file_cs_msgid_proto_rawDesc = []byte{
|
||||||
0x0a, 0x0e, 0x63, 0x73, 0x5f, 0x6d, 0x73, 0x67, 0x69, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
|
0x0a, 0x0e, 0x63, 0x73, 0x5f, 0x6d, 0x73, 0x67, 0x69, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
|
||||||
0x12, 0x02, 0x63, 0x73, 0x2a, 0xd2, 0x06, 0x0a, 0x0d, 0x43, 0x4d, 0x4d, 0x65, 0x73, 0x73, 0x61,
|
0x12, 0x02, 0x63, 0x73, 0x2a, 0xa6, 0x06, 0x0a, 0x0d, 0x43, 0x4d, 0x4d, 0x65, 0x73, 0x73, 0x61,
|
||||||
0x67, 0x65, 0x49, 0x64, 0x5f, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x5f, 0x43, 0x4d, 0x50, 0x69, 0x6e,
|
0x67, 0x65, 0x49, 0x64, 0x5f, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x5f, 0x43, 0x4d, 0x50, 0x69, 0x6e,
|
||||||
0x67, 0x10, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x5f, 0x43, 0x4d, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x10,
|
0x67, 0x10, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x5f, 0x43, 0x4d, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x10,
|
||||||
0x67, 0x12, 0x10, 0x0a, 0x0c, 0x5f, 0x43, 0x4d, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63,
|
0x67, 0x12, 0x10, 0x0a, 0x0c, 0x5f, 0x43, 0x4d, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63,
|
||||||
@ -404,84 +392,78 @@ var file_cs_msgid_proto_rawDesc = []byte{
|
|||||||
0x0a, 0x09, 0x5f, 0x43, 0x4d, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x10, 0x7c, 0x12, 0x11, 0x0a,
|
0x0a, 0x09, 0x5f, 0x43, 0x4d, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x10, 0x7c, 0x12, 0x11, 0x0a,
|
||||||
0x0d, 0x5f, 0x43, 0x4d, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x10, 0x7d,
|
0x0d, 0x5f, 0x43, 0x4d, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x10, 0x7d,
|
||||||
0x12, 0x14, 0x0a, 0x10, 0x5f, 0x43, 0x4d, 0x44, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x4d, 0x65,
|
0x12, 0x14, 0x0a, 0x10, 0x5f, 0x43, 0x4d, 0x44, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x4d, 0x65,
|
||||||
0x6d, 0x62, 0x65, 0x72, 0x10, 0x7e, 0x12, 0x14, 0x0a, 0x10, 0x5f, 0x43, 0x4d, 0x50, 0x72, 0x6f,
|
0x6d, 0x62, 0x65, 0x72, 0x10, 0x7e, 0x12, 0x0f, 0x0a, 0x0a, 0x5f, 0x43, 0x4d, 0x44, 0x69, 0x73,
|
||||||
0x6d, 0x6f, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x7f, 0x12, 0x14, 0x0a, 0x0f,
|
0x62, 0x61, 0x6e, 0x64, 0x10, 0x81, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x5f, 0x43, 0x4d, 0x53, 0x65,
|
||||||
0x5f, 0x43, 0x4d, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10,
|
|
||||||
0x80, 0x01, 0x12, 0x0f, 0x0a, 0x0a, 0x5f, 0x43, 0x4d, 0x44, 0x69, 0x73, 0x62, 0x61, 0x6e, 0x64,
|
|
||||||
0x10, 0x81, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x5f, 0x43, 0x4d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68,
|
|
||||||
0x47, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x10, 0x82, 0x01, 0x12, 0x11, 0x0a, 0x0c, 0x5f, 0x43, 0x4d,
|
|
||||||
0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x10, 0x83, 0x01, 0x12, 0x11, 0x0a, 0x0c,
|
|
||||||
0x5f, 0x43, 0x4d, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4c, 0x6f, 0x67, 0x73, 0x10, 0x84, 0x01, 0x12,
|
|
||||||
0x11, 0x0a, 0x0c, 0x5f, 0x43, 0x4d, 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x10,
|
|
||||||
0x85, 0x01, 0x12, 0x16, 0x0a, 0x11, 0x5f, 0x43, 0x4d, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62,
|
|
||||||
0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x10, 0x86, 0x01, 0x12, 0x18, 0x0a, 0x13, 0x5f, 0x43,
|
|
||||||
0x4d, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73,
|
|
||||||
0x74, 0x10, 0x87, 0x01, 0x12, 0x0f, 0x0a, 0x0a, 0x5f, 0x43, 0x4d, 0x53, 0x65, 0x74, 0x4e, 0x61,
|
|
||||||
0x6d, 0x65, 0x10, 0x88, 0x01, 0x12, 0x11, 0x0a, 0x0c, 0x5f, 0x43, 0x4d, 0x53, 0x65, 0x74, 0x41,
|
|
||||||
0x76, 0x61, 0x74, 0x61, 0x72, 0x10, 0x89, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x5f, 0x43, 0x4d, 0x53,
|
|
||||||
0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x64, 0x10, 0x8a, 0x01, 0x12, 0x1a, 0x0a,
|
|
||||||
0x15, 0x5f, 0x43, 0x4d, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x47, 0x75, 0x69,
|
|
||||||
0x6c, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x10, 0x8b, 0x01, 0x2a, 0xb2, 0x07, 0x0a, 0x0d, 0x53, 0x4d,
|
|
||||||
0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x5f, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x5f,
|
|
||||||
0x53, 0x4d, 0x50, 0x69, 0x6e, 0x67, 0x10, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x5f, 0x53, 0x4d, 0x52,
|
|
||||||
0x70, 0x63, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x66, 0x12, 0x0c, 0x0a, 0x08, 0x5f, 0x53, 0x4d,
|
|
||||||
0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x10, 0x67, 0x12, 0x10, 0x0a, 0x0c, 0x5f, 0x53, 0x4d, 0x52, 0x65,
|
|
||||||
0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x10, 0x68, 0x12, 0x1c, 0x0a, 0x18, 0x5f, 0x53, 0x4d,
|
|
||||||
0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x41, 0x63, 0x63, 0x6f,
|
|
||||||
0x75, 0x6e, 0x74, 0x49, 0x64, 0x10, 0x69, 0x12, 0x11, 0x0a, 0x0d, 0x5f, 0x53, 0x4d, 0x53, 0x65,
|
|
||||||
0x61, 0x72, 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, 0x10, 0x6a, 0x12, 0x17, 0x0a, 0x13, 0x5f, 0x53,
|
|
||||||
0x4d, 0x41, 0x64, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
|
||||||
0x74, 0x10, 0x6b, 0x12, 0x1a, 0x0a, 0x16, 0x5f, 0x53, 0x4d, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74,
|
|
||||||
0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x10, 0x6c, 0x12,
|
|
||||||
0x1a, 0x0a, 0x16, 0x5f, 0x53, 0x4d, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x46, 0x72, 0x69, 0x65,
|
|
||||||
0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x10, 0x6d, 0x12, 0x1f, 0x0a, 0x1b, 0x5f,
|
|
||||||
0x53, 0x4d, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x46, 0x72, 0x69,
|
|
||||||
0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x10, 0x6e, 0x12, 0x11, 0x0a, 0x0d,
|
|
||||||
0x5f, 0x53, 0x4d, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x10, 0x6f, 0x12,
|
|
||||||
0x17, 0x0a, 0x13, 0x5f, 0x53, 0x4d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x72, 0x69, 0x65,
|
|
||||||
0x6e, 0x64, 0x53, 0x68, 0x69, 0x70, 0x10, 0x70, 0x12, 0x13, 0x0a, 0x0f, 0x5f, 0x53, 0x4d, 0x41,
|
|
||||||
0x64, 0x64, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x6c, 0x69, 0x73, 0x74, 0x10, 0x71, 0x12, 0x16, 0x0a,
|
|
||||||
0x12, 0x5f, 0x53, 0x4d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x6c,
|
|
||||||
0x69, 0x73, 0x74, 0x10, 0x72, 0x12, 0x10, 0x0a, 0x0c, 0x5f, 0x53, 0x4d, 0x42, 0x6c, 0x61, 0x63,
|
|
||||||
0x6b, 0x6c, 0x69, 0x73, 0x74, 0x10, 0x74, 0x12, 0x10, 0x0a, 0x0c, 0x5f, 0x53, 0x4d, 0x47, 0x75,
|
|
||||||
0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0x78, 0x12, 0x12, 0x0a, 0x0e, 0x5f, 0x53, 0x4d,
|
|
||||||
0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x10, 0x79, 0x12, 0x13, 0x0a,
|
|
||||||
0x0f, 0x5f, 0x53, 0x4d, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x6f, 0x47, 0x75, 0x69, 0x6c, 0x64,
|
|
||||||
0x10, 0x7a, 0x12, 0x0e, 0x0a, 0x0a, 0x5f, 0x53, 0x4d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65,
|
|
||||||
0x10, 0x7b, 0x12, 0x0d, 0x0a, 0x09, 0x5f, 0x53, 0x4d, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x10,
|
|
||||||
0x7c, 0x12, 0x11, 0x0a, 0x0d, 0x5f, 0x53, 0x4d, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x47, 0x75, 0x69,
|
|
||||||
0x6c, 0x64, 0x10, 0x7d, 0x12, 0x14, 0x0a, 0x10, 0x5f, 0x53, 0x4d, 0x44, 0x69, 0x73, 0x6d, 0x69,
|
|
||||||
0x73, 0x73, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x7e, 0x12, 0x14, 0x0a, 0x10, 0x5f, 0x53,
|
|
||||||
0x4d, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x7f,
|
|
||||||
0x12, 0x14, 0x0a, 0x0f, 0x5f, 0x53, 0x4d, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4d, 0x65, 0x6d,
|
|
||||||
0x62, 0x65, 0x72, 0x10, 0x80, 0x01, 0x12, 0x0f, 0x0a, 0x0a, 0x5f, 0x53, 0x4d, 0x44, 0x69, 0x73,
|
|
||||||
0x62, 0x61, 0x6e, 0x64, 0x10, 0x81, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x5f, 0x53, 0x4d, 0x53, 0x65,
|
|
||||||
0x61, 0x72, 0x63, 0x68, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x10, 0x82, 0x01, 0x12, 0x11, 0x0a,
|
0x61, 0x72, 0x63, 0x68, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x10, 0x82, 0x01, 0x12, 0x11, 0x0a,
|
||||||
0x0c, 0x5f, 0x53, 0x4d, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x10, 0x83, 0x01,
|
0x0c, 0x5f, 0x43, 0x4d, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x10, 0x83, 0x01,
|
||||||
0x12, 0x11, 0x0a, 0x0c, 0x5f, 0x53, 0x4d, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4c, 0x6f, 0x67, 0x73,
|
0x12, 0x11, 0x0a, 0x0c, 0x5f, 0x43, 0x4d, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4c, 0x6f, 0x67, 0x73,
|
||||||
0x10, 0x84, 0x01, 0x12, 0x11, 0x0a, 0x0c, 0x5f, 0x53, 0x4d, 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x74,
|
0x10, 0x84, 0x01, 0x12, 0x11, 0x0a, 0x0c, 0x5f, 0x43, 0x4d, 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x74,
|
||||||
0x69, 0x63, 0x65, 0x10, 0x85, 0x01, 0x12, 0x16, 0x0a, 0x11, 0x5f, 0x53, 0x4d, 0x53, 0x65, 0x74,
|
0x69, 0x63, 0x65, 0x10, 0x85, 0x01, 0x12, 0x16, 0x0a, 0x11, 0x5f, 0x43, 0x4d, 0x53, 0x65, 0x74,
|
||||||
0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x10, 0x86, 0x01, 0x12, 0x18,
|
0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x10, 0x86, 0x01, 0x12, 0x18,
|
||||||
0x0a, 0x13, 0x5f, 0x53, 0x4d, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72,
|
0x0a, 0x13, 0x5f, 0x43, 0x4d, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72,
|
||||||
0x73, 0x4c, 0x69, 0x73, 0x74, 0x10, 0x87, 0x01, 0x12, 0x0f, 0x0a, 0x0a, 0x5f, 0x53, 0x4d, 0x53,
|
0x73, 0x4c, 0x69, 0x73, 0x74, 0x10, 0x87, 0x01, 0x12, 0x0f, 0x0a, 0x0a, 0x5f, 0x43, 0x4d, 0x53,
|
||||||
0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x10, 0x88, 0x01, 0x12, 0x11, 0x0a, 0x0c, 0x5f, 0x53, 0x4d,
|
0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x10, 0x88, 0x01, 0x12, 0x11, 0x0a, 0x0c, 0x5f, 0x43, 0x4d,
|
||||||
0x53, 0x65, 0x74, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x10, 0x89, 0x01, 0x12, 0x13, 0x0a, 0x0e,
|
0x53, 0x65, 0x74, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x10, 0x89, 0x01, 0x12, 0x13, 0x0a, 0x0e,
|
||||||
0x5f, 0x53, 0x4d, 0x53, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x64, 0x10, 0x8a,
|
0x5f, 0x43, 0x4d, 0x53, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x64, 0x10, 0x8a,
|
||||||
0x01, 0x12, 0x1a, 0x0a, 0x15, 0x5f, 0x53, 0x4d, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e,
|
0x01, 0x12, 0x1a, 0x0a, 0x15, 0x5f, 0x43, 0x4d, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e,
|
||||||
0x64, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x10, 0x8b, 0x01, 0x12, 0x20, 0x0a,
|
0x64, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x10, 0x8b, 0x01, 0x2a, 0x86, 0x07,
|
||||||
0x1b, 0x5f, 0x53, 0x4d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65,
|
0x0a, 0x0d, 0x53, 0x4d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x5f, 0x65, 0x12,
|
||||||
0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x10, 0xe8, 0x07, 0x12,
|
0x0b, 0x0a, 0x07, 0x5f, 0x53, 0x4d, 0x50, 0x69, 0x6e, 0x67, 0x10, 0x65, 0x12, 0x0f, 0x0a, 0x0b,
|
||||||
0x15, 0x0a, 0x10, 0x5f, 0x53, 0x4d, 0x43, 0x68, 0x61, 0x74, 0x4d, 0x73, 0x67, 0x4e, 0x6f, 0x74,
|
0x5f, 0x53, 0x4d, 0x52, 0x70, 0x63, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x66, 0x12, 0x0c, 0x0a,
|
||||||
0x69, 0x66, 0x79, 0x10, 0xe9, 0x07, 0x12, 0x1c, 0x0a, 0x17, 0x5f, 0x53, 0x4d, 0x55, 0x70, 0x64,
|
0x08, 0x5f, 0x53, 0x4d, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x10, 0x67, 0x12, 0x10, 0x0a, 0x0c, 0x5f,
|
||||||
0x61, 0x74, 0x65, 0x52, 0x65, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66,
|
0x53, 0x4d, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x10, 0x68, 0x12, 0x1c, 0x0a,
|
||||||
0x79, 0x10, 0xea, 0x07, 0x12, 0x27, 0x0a, 0x22, 0x5f, 0x53, 0x4d, 0x55, 0x70, 0x64, 0x61, 0x74,
|
0x18, 0x5f, 0x53, 0x4d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79,
|
||||||
0x65, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x64, 0x50,
|
0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x10, 0x69, 0x12, 0x11, 0x0a, 0x0d, 0x5f,
|
||||||
0x6f, 0x69, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x10, 0xeb, 0x07, 0x12, 0x1f, 0x0a,
|
0x53, 0x4d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, 0x10, 0x6a, 0x12, 0x17,
|
||||||
0x1a, 0x5f, 0x53, 0x4d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x43, 0x68,
|
0x0a, 0x13, 0x5f, 0x53, 0x4d, 0x41, 0x64, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65,
|
||||||
0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x61, 0x73, 0x74, 0x49, 0x64, 0x10, 0xec, 0x07, 0x12, 0x1e,
|
0x71, 0x75, 0x65, 0x73, 0x74, 0x10, 0x6b, 0x12, 0x1a, 0x0a, 0x16, 0x5f, 0x53, 0x4d, 0x41, 0x63,
|
||||||
0x0a, 0x19, 0x5f, 0x53, 0x4d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x4a, 0x6f, 0x69, 0x6e,
|
0x63, 0x65, 0x70, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
||||||
0x47, 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x10, 0xf2, 0x07, 0x42, 0x06,
|
0x74, 0x10, 0x6c, 0x12, 0x1a, 0x0a, 0x16, 0x5f, 0x53, 0x4d, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74,
|
||||||
0x5a, 0x04, 0x2e, 0x3b, 0x63, 0x73,
|
0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x10, 0x6d, 0x12,
|
||||||
|
0x1f, 0x0a, 0x1b, 0x5f, 0x53, 0x4d, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e,
|
||||||
|
0x67, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x10, 0x6e,
|
||||||
|
0x12, 0x11, 0x0a, 0x0d, 0x5f, 0x53, 0x4d, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e,
|
||||||
|
0x64, 0x10, 0x6f, 0x12, 0x17, 0x0a, 0x13, 0x5f, 0x53, 0x4d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
|
||||||
|
0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x68, 0x69, 0x70, 0x10, 0x70, 0x12, 0x13, 0x0a, 0x0f,
|
||||||
|
0x5f, 0x53, 0x4d, 0x41, 0x64, 0x64, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x6c, 0x69, 0x73, 0x74, 0x10,
|
||||||
|
0x71, 0x12, 0x16, 0x0a, 0x12, 0x5f, 0x53, 0x4d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x6c,
|
||||||
|
0x61, 0x63, 0x6b, 0x6c, 0x69, 0x73, 0x74, 0x10, 0x72, 0x12, 0x10, 0x0a, 0x0c, 0x5f, 0x53, 0x4d,
|
||||||
|
0x42, 0x6c, 0x61, 0x63, 0x6b, 0x6c, 0x69, 0x73, 0x74, 0x10, 0x74, 0x12, 0x10, 0x0a, 0x0c, 0x5f,
|
||||||
|
0x53, 0x4d, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0x78, 0x12, 0x12, 0x0a,
|
||||||
|
0x0e, 0x5f, 0x53, 0x4d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x10,
|
||||||
|
0x79, 0x12, 0x13, 0x0a, 0x0f, 0x5f, 0x53, 0x4d, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x6f, 0x47,
|
||||||
|
0x75, 0x69, 0x6c, 0x64, 0x10, 0x7a, 0x12, 0x0e, 0x0a, 0x0a, 0x5f, 0x53, 0x4d, 0x41, 0x70, 0x70,
|
||||||
|
0x72, 0x6f, 0x76, 0x65, 0x10, 0x7b, 0x12, 0x0d, 0x0a, 0x09, 0x5f, 0x53, 0x4d, 0x52, 0x65, 0x6a,
|
||||||
|
0x65, 0x63, 0x74, 0x10, 0x7c, 0x12, 0x11, 0x0a, 0x0d, 0x5f, 0x53, 0x4d, 0x4c, 0x65, 0x61, 0x76,
|
||||||
|
0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x10, 0x7d, 0x12, 0x14, 0x0a, 0x10, 0x5f, 0x53, 0x4d, 0x44,
|
||||||
|
0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x7e, 0x12, 0x0f,
|
||||||
|
0x0a, 0x0a, 0x5f, 0x53, 0x4d, 0x44, 0x69, 0x73, 0x62, 0x61, 0x6e, 0x64, 0x10, 0x81, 0x01, 0x12,
|
||||||
|
0x14, 0x0a, 0x0f, 0x5f, 0x53, 0x4d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x47, 0x75, 0x69, 0x6c,
|
||||||
|
0x64, 0x73, 0x10, 0x82, 0x01, 0x12, 0x11, 0x0a, 0x0c, 0x5f, 0x53, 0x4d, 0x41, 0x70, 0x70, 0x6c,
|
||||||
|
0x79, 0x4c, 0x69, 0x73, 0x74, 0x10, 0x83, 0x01, 0x12, 0x11, 0x0a, 0x0c, 0x5f, 0x53, 0x4d, 0x47,
|
||||||
|
0x75, 0x69, 0x6c, 0x64, 0x4c, 0x6f, 0x67, 0x73, 0x10, 0x84, 0x01, 0x12, 0x11, 0x0a, 0x0c, 0x5f,
|
||||||
|
0x53, 0x4d, 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x10, 0x85, 0x01, 0x12, 0x16,
|
||||||
|
0x0a, 0x11, 0x5f, 0x53, 0x4d, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x65,
|
||||||
|
0x76, 0x65, 0x6c, 0x10, 0x86, 0x01, 0x12, 0x18, 0x0a, 0x13, 0x5f, 0x53, 0x4d, 0x47, 0x75, 0x69,
|
||||||
|
0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x10, 0x87, 0x01,
|
||||||
|
0x12, 0x0f, 0x0a, 0x0a, 0x5f, 0x53, 0x4d, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x10, 0x88,
|
||||||
|
0x01, 0x12, 0x11, 0x0a, 0x0c, 0x5f, 0x53, 0x4d, 0x53, 0x65, 0x74, 0x41, 0x76, 0x61, 0x74, 0x61,
|
||||||
|
0x72, 0x10, 0x89, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x5f, 0x53, 0x4d, 0x53, 0x65, 0x74, 0x4a, 0x6f,
|
||||||
|
0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x64, 0x10, 0x8a, 0x01, 0x12, 0x1a, 0x0a, 0x15, 0x5f, 0x53, 0x4d,
|
||||||
|
0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4c, 0x69,
|
||||||
|
0x73, 0x74, 0x10, 0x8b, 0x01, 0x12, 0x20, 0x0a, 0x1b, 0x5f, 0x53, 0x4d, 0x55, 0x70, 0x64, 0x61,
|
||||||
|
0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x4e, 0x6f,
|
||||||
|
0x74, 0x69, 0x66, 0x79, 0x10, 0xe8, 0x07, 0x12, 0x15, 0x0a, 0x10, 0x5f, 0x53, 0x4d, 0x43, 0x68,
|
||||||
|
0x61, 0x74, 0x4d, 0x73, 0x67, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x10, 0xe9, 0x07, 0x12, 0x1c,
|
||||||
|
0x0a, 0x17, 0x5f, 0x53, 0x4d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x64, 0x50, 0x6f,
|
||||||
|
0x69, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x10, 0xea, 0x07, 0x12, 0x27, 0x0a, 0x22,
|
||||||
|
0x5f, 0x53, 0x4d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65,
|
||||||
|
0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x69,
|
||||||
|
0x66, 0x79, 0x10, 0xeb, 0x07, 0x12, 0x1f, 0x0a, 0x1a, 0x5f, 0x53, 0x4d, 0x55, 0x70, 0x64, 0x61,
|
||||||
|
0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x61, 0x73,
|
||||||
|
0x74, 0x49, 0x64, 0x10, 0xec, 0x07, 0x12, 0x1e, 0x0a, 0x19, 0x5f, 0x53, 0x4d, 0x41, 0x70, 0x70,
|
||||||
|
0x72, 0x6f, 0x76, 0x65, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x6f, 0x74,
|
||||||
|
0x69, 0x66, 0x79, 0x10, 0xf2, 0x07, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x63, 0x73,
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -110,11 +110,7 @@ func (fm *FriendsMgr) findUsersByUsername(username string, sinceId int64, cb fun
|
|||||||
lastId = autoId
|
lastId = autoId
|
||||||
}
|
}
|
||||||
accountId := q5.ToString(*rows.GetByIndex(1))
|
accountId := q5.ToString(*rows.GetByIndex(1))
|
||||||
player := playerMgr.GetPlayerByAccountId(accountId)
|
onlineStatus := playerMgr.GetOnlineStatus(accountId)
|
||||||
var onlineStatue int32 = 0
|
|
||||||
if player != nil {
|
|
||||||
onlineStatue = 1
|
|
||||||
}
|
|
||||||
profile := &PlayerProfile{
|
profile := &PlayerProfile{
|
||||||
AccountId: q5.ToString(*rows.GetByIndex(1)),
|
AccountId: q5.ToString(*rows.GetByIndex(1)),
|
||||||
Username: q5.ToString(*rows.GetByIndex(2)),
|
Username: q5.ToString(*rows.GetByIndex(2)),
|
||||||
@ -123,7 +119,7 @@ func (fm *FriendsMgr) findUsersByUsername(username string, sinceId int64, cb fun
|
|||||||
Star: q5.ToInt32(*rows.GetByIndex(5)),
|
Star: q5.ToInt32(*rows.GetByIndex(5)),
|
||||||
Rank: q5.ToInt32(*rows.GetByIndex(6)),
|
Rank: q5.ToInt32(*rows.GetByIndex(6)),
|
||||||
LastLoginTime: q5.ToInt32(*rows.GetByIndex(7)),
|
LastLoginTime: q5.ToInt32(*rows.GetByIndex(7)),
|
||||||
OnlineStatus: onlineStatue,
|
OnlineStatus: onlineStatus,
|
||||||
}
|
}
|
||||||
profiles = append(profiles, profile)
|
profiles = append(profiles, profile)
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
|
import "math/rand"
|
||||||
|
|
||||||
type GuildMember struct {
|
type GuildMember struct {
|
||||||
AccountId string
|
AccountId string
|
||||||
Level int32 // 1: 会长, 20: 副会长, 30: 精英, 40 成员
|
Level int32 // 1: 会长, 20: 副会长, 30: 精英, 40 成员
|
||||||
@ -18,7 +20,7 @@ type Guild struct {
|
|||||||
TotalKills int32 // 公会统计信息, 单局总击杀数
|
TotalKills int32 // 公会统计信息, 单局总击杀数
|
||||||
ChickenDinners int32 // 公会统计信息, 单局第一名数
|
ChickenDinners int32 // 公会统计信息, 单局第一名数
|
||||||
MaxMembers int32 // 公会最大成员数 default 30
|
MaxMembers int32 // 公会最大成员数 default 30
|
||||||
Members []*GuildMember
|
Members map[string]*GuildMember // accountId -> GuildMember
|
||||||
PendingReqs map[string]int32 // pendingAccountId -> status 0,1,2,3 pending, accept, reject, leave
|
PendingReqs map[string]int32 // pendingAccountId -> status 0,1,2,3 pending, accept, reject, leave
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -44,32 +46,18 @@ func (g *Guild) GetMembersCount() int {
|
|||||||
return len(g.Members)
|
return len(g.Members)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *Guild) GetMembers() []*GuildMember {
|
|
||||||
return g.Members
|
|
||||||
}
|
|
||||||
|
|
||||||
// findMemberIndex 根据 AccountId 查找成员在 Members 切片中的索引
|
|
||||||
func (g *Guild) findMemberIndex(accountId string) int {
|
|
||||||
for i, member := range g.Members {
|
|
||||||
if member.AccountId == accountId {
|
|
||||||
return i
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return -1
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetMember 根据 AccountId 获取成员信息
|
// GetMember 根据 AccountId 获取成员信息
|
||||||
func (g *Guild) GetMember(accountId string) *GuildMember {
|
func (g *Guild) GetMember(accountId string) *GuildMember {
|
||||||
index := g.findMemberIndex(accountId)
|
if member, exists := g.Members[accountId]; exists {
|
||||||
if index == -1 {
|
return member
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
return g.Members[index]
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsMember 是否是公会成员
|
// IsMember 是否是公会成员
|
||||||
func (g *Guild) IsMember(accountId string) bool {
|
func (g *Guild) IsMember(accountId string) bool {
|
||||||
return g.findMemberIndex(accountId) >= 0
|
_, exists := g.Members[accountId]
|
||||||
|
return exists
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsFull 成员是否已满
|
// IsFull 成员是否已满
|
||||||
@ -79,21 +67,13 @@ func (g *Guild) IsFull() bool {
|
|||||||
|
|
||||||
// AddMember 添加成员
|
// AddMember 添加成员
|
||||||
func (g *Guild) AddMember(member *GuildMember) {
|
func (g *Guild) AddMember(member *GuildMember) {
|
||||||
g.Members = append(g.Members, member)
|
accountId := member.AccountId
|
||||||
|
g.Members[accountId] = member
|
||||||
}
|
}
|
||||||
|
|
||||||
// RemoveMember 移除成员
|
// RemoveMember 移除成员
|
||||||
func (g *Guild) RemoveMember(accountId string) {
|
func (g *Guild) RemoveMember(accountId string) {
|
||||||
if accountId == g.LeaderId {
|
delete(g.Members, accountId)
|
||||||
return
|
|
||||||
}
|
|
||||||
index := g.findMemberIndex(accountId)
|
|
||||||
if index == -1 {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
copy(g.Members[index:], g.Members[index+1:])
|
|
||||||
g.Members[len(g.Members)-1] = nil
|
|
||||||
g.Members = g.Members[:len(g.Members)-1]
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *Guild) SetNotice(notice *string) {
|
func (g *Guild) SetNotice(notice *string) {
|
||||||
@ -128,3 +108,32 @@ func (gm *GuildMember) GetAccountId() string {
|
|||||||
func (g *Guild) IsInReq(accountId string) bool {
|
func (g *Guild) IsInReq(accountId string) bool {
|
||||||
return g.PendingReqs[accountId] == PendingReqIsJoinGuildStatusJoined
|
return g.PendingReqs[accountId] == PendingReqIsJoinGuildStatusJoined
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (g *Guild) NewLeaderId() *GuildMember {
|
||||||
|
if len(g.Members) <= 0 {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// 找到级别最高的成员
|
||||||
|
highestLevel := int32(GuildMemberLevelDefault)
|
||||||
|
highestLevelMembers := make([]*GuildMember, 0)
|
||||||
|
for _, member := range g.Members {
|
||||||
|
if member.Level < highestLevel {
|
||||||
|
// 发现更高级别的成员,重置列表
|
||||||
|
highestLevel = member.Level
|
||||||
|
highestLevelMembers = []*GuildMember{member}
|
||||||
|
} else if member.Level == highestLevel {
|
||||||
|
// 发现与当前最高级别相同的成员,添加到列表中
|
||||||
|
highestLevelMembers = append(highestLevelMembers, member)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(highestLevelMembers) <= 0 {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
newLeaderIndex := rand.Intn(len(highestLevelMembers))
|
||||||
|
newLeader := highestLevelMembers[newLeaderIndex]
|
||||||
|
newLeader.Level = GuildMemberLevelLeader
|
||||||
|
return newLeader
|
||||||
|
}
|
||||||
|
@ -41,10 +41,9 @@ func (gm *GuildMgr) loadGuildFromDBResult(err error, rows *f5.DataSet) {
|
|||||||
}
|
}
|
||||||
for rows.Next() {
|
for rows.Next() {
|
||||||
guildId := q5.ToInt64(*rows.GetByIndex(1))
|
guildId := q5.ToInt64(*rows.GetByIndex(1))
|
||||||
// append to gm.guilds
|
guild := &Guild{
|
||||||
gm.guilds[guildId] = &Guild{
|
|
||||||
AutoId: q5.ToInt64(*rows.GetByIndex(0)),
|
AutoId: q5.ToInt64(*rows.GetByIndex(0)),
|
||||||
GuildId: q5.ToInt64(*rows.GetByIndex(1)),
|
GuildId: guildId,
|
||||||
Name: q5.ToString(*rows.GetByIndex(2)),
|
Name: q5.ToString(*rows.GetByIndex(2)),
|
||||||
LeaderId: q5.ToString(*rows.GetByIndex(3)),
|
LeaderId: q5.ToString(*rows.GetByIndex(3)),
|
||||||
Avatar: q5.ToInt32(*rows.GetByIndex(4)),
|
Avatar: q5.ToInt32(*rows.GetByIndex(4)),
|
||||||
@ -55,7 +54,11 @@ func (gm *GuildMgr) loadGuildFromDBResult(err error, rows *f5.DataSet) {
|
|||||||
TotalKills: q5.ToInt32(*rows.GetByIndex(9)),
|
TotalKills: q5.ToInt32(*rows.GetByIndex(9)),
|
||||||
ChickenDinners: q5.ToInt32(*rows.GetByIndex(10)),
|
ChickenDinners: q5.ToInt32(*rows.GetByIndex(10)),
|
||||||
MaxMembers: q5.ToInt32(*rows.GetByIndex(11)),
|
MaxMembers: q5.ToInt32(*rows.GetByIndex(11)),
|
||||||
|
Members: make(map[string]*GuildMember, MaxMembers),
|
||||||
|
PendingReqs: make(map[string]int32, MaxPendingReqs),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gm.guilds[guildId] = guild
|
||||||
gm.guildIds = append(gm.guildIds, guildId)
|
gm.guildIds = append(gm.guildIds, guildId)
|
||||||
}
|
}
|
||||||
q5.UnSetBitFlag(&gm.loadedFlags, LoadGuildFlag)
|
q5.UnSetBitFlag(&gm.loadedFlags, LoadGuildFlag)
|
||||||
@ -135,9 +138,6 @@ func (gm *GuildMgr) loadPendingReqsFromDBResult(err error, rows *f5.DataSet) {
|
|||||||
Status: PendingReqIsJoinGuildStatusDefault,
|
Status: PendingReqIsJoinGuildStatusDefault,
|
||||||
}
|
}
|
||||||
if guild, ok := gm.guilds[guildId]; ok {
|
if guild, ok := gm.guilds[guildId]; ok {
|
||||||
if guild.PendingReqs == nil {
|
|
||||||
guild.PendingReqs = make(map[string]int32)
|
|
||||||
}
|
|
||||||
guild.AddPendingReq(pendingReq)
|
guild.AddPendingReq(pendingReq)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,6 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
"q5"
|
"q5"
|
||||||
"sort"
|
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -112,6 +111,7 @@ func (gm *GuildMgr) CreateGuild(avatar int32, name *string, leaderId string,
|
|||||||
TotalKills: 0,
|
TotalKills: 0,
|
||||||
ChickenDinners: 0,
|
ChickenDinners: 0,
|
||||||
MaxMembers: MaxMembers,
|
MaxMembers: MaxMembers,
|
||||||
|
Members: make(map[string]*GuildMember, MaxMembers),
|
||||||
PendingReqs: make(map[string]int32, MaxPendingReqs),
|
PendingReqs: make(map[string]int32, MaxPendingReqs),
|
||||||
}
|
}
|
||||||
guild.AddMember(newMember)
|
guild.AddMember(newMember)
|
||||||
@ -154,8 +154,7 @@ func (gm *GuildMgr) ApplyToGuild(guildId int64, applicantAccountId string, cb fu
|
|||||||
}
|
}
|
||||||
// 可直接加入
|
// 可直接加入
|
||||||
if guild.JoinCond == JoinCondFree {
|
if guild.JoinCond == JoinCondFree {
|
||||||
gm.JoinGuild(guild, applicantAccountId)
|
gm.JoinGuild(guild, applicantAccountId, cb)
|
||||||
cb(ERR_CODE_OK, "ApplyToGuild OK")
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -169,8 +168,7 @@ func (gm *GuildMgr) ApplyToGuild(guildId int64, applicantAccountId string, cb fu
|
|||||||
cb(ERR_CODE_APPLY_GUILD_FAIL, "ApplyToGuild Fail, user star error")
|
cb(ERR_CODE_APPLY_GUILD_FAIL, "ApplyToGuild Fail, user star error")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
gm.JoinGuild(guild, applicantAccountId)
|
gm.JoinGuild(guild, applicantAccountId, cb)
|
||||||
cb(ERR_CODE_OK, "ApplyToGuild OK")
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -216,7 +214,6 @@ func (gm *GuildMgr) ApplyToGuild(guildId int64, applicantAccountId string, cb fu
|
|||||||
EVENT_APPLY,
|
EVENT_APPLY,
|
||||||
prop,
|
prop,
|
||||||
)
|
)
|
||||||
|
|
||||||
cb(ERR_CODE_OK, "ApplyToGuild ok")
|
cb(ERR_CODE_OK, "ApplyToGuild ok")
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -353,15 +350,20 @@ func (gm *GuildMgr) Reject(operatorAccountId, accountId string, cb func(errCode
|
|||||||
}
|
}
|
||||||
|
|
||||||
// JoinGuild 直接加入公会
|
// JoinGuild 直接加入公会
|
||||||
func (gm *GuildMgr) JoinGuild(guild *Guild, accountId string) {
|
func (gm *GuildMgr) JoinGuild(guild *Guild, accountId string, cb func(errCode int32, errMsg string)) {
|
||||||
newMember := GuildMember{AccountId: accountId, Level: GuildMemberLevelDefault}
|
newMember := GuildMember{AccountId: accountId, Level: GuildMemberLevelDefault}
|
||||||
guildId := guild.GuildId
|
guildId := guild.GuildId
|
||||||
gm.upsertGuildMember(guildId, &newMember,
|
gm.upsertGuildMember(guildId, &newMember,
|
||||||
func(err error) {
|
func(err error) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
cb(ERR_CODE_UPDATE_GUILD_MEMBER_DB_FAIL, "JoinGuild Fail, upsertGuildMember")
|
||||||
|
return
|
||||||
|
}
|
||||||
guild.AddMember(&newMember)
|
guild.AddMember(&newMember)
|
||||||
gm.AddUserGuild(accountId, guildId)
|
gm.AddUserGuild(accountId, guildId)
|
||||||
|
|
||||||
|
cb(ERR_CODE_OK, "ApplyToGuild OK")
|
||||||
|
|
||||||
user := friendMgr.GetUser(accountId)
|
user := friendMgr.GetUser(accountId)
|
||||||
cacheMgr.LoadPlayerProfile(user, func(playerProfile *PlayerProfile) {})
|
cacheMgr.LoadPlayerProfile(user, func(playerProfile *PlayerProfile) {})
|
||||||
|
|
||||||
@ -376,7 +378,6 @@ func (gm *GuildMgr) JoinGuild(guild *Guild, accountId string) {
|
|||||||
EVENT_JOIN,
|
EVENT_JOIN,
|
||||||
prop,
|
prop,
|
||||||
)
|
)
|
||||||
}
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -384,7 +385,7 @@ func (gm *GuildMgr) JoinGuild(guild *Guild, accountId string) {
|
|||||||
func (gm *GuildMgr) LeaveGuild(accountId string, cb func(errCode int32, errMsg string)) {
|
func (gm *GuildMgr) LeaveGuild(accountId string, cb func(errCode int32, errMsg string)) {
|
||||||
guild := gm.GetGuildByAccountId(accountId)
|
guild := gm.GetGuildByAccountId(accountId)
|
||||||
if guild == nil {
|
if guild == nil {
|
||||||
cb(ERR_CODE_GUILD_NO_EXISTS, "LeaveGuild guild no exists")
|
cb(ERR_CODE_GUILD_NO_EXISTS, "no join guild]")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
member := guild.GetMember(accountId)
|
member := guild.GetMember(accountId)
|
||||||
@ -404,7 +405,7 @@ func (gm *GuildMgr) LeaveGuild(accountId string, cb func(errCode int32, errMsg s
|
|||||||
|
|
||||||
// 重新选举公长
|
// 重新选举公长
|
||||||
if accountId == guild.LeaderId {
|
if accountId == guild.LeaderId {
|
||||||
newLeader := ElectNewGuildLeader(guild)
|
newLeader := guild.NewLeaderId()
|
||||||
if newLeader == nil {
|
if newLeader == nil {
|
||||||
cb(ERR_CODE_UPDATE_GUILD_DB_FAIL, "error")
|
cb(ERR_CODE_UPDATE_GUILD_DB_FAIL, "error")
|
||||||
return
|
return
|
||||||
@ -440,8 +441,9 @@ func (gm *GuildMgr) LeaveGuild(accountId string, cb func(errCode int32, errMsg s
|
|||||||
|
|
||||||
guild.RemoveMember(accountId)
|
guild.RemoveMember(accountId)
|
||||||
gm.RemoveUserGuild(accountId)
|
gm.RemoveUserGuild(accountId)
|
||||||
|
|
||||||
// Add logs
|
// Add logs
|
||||||
logContent := fmt.Sprintf("LeaveGuild[%d-%s]", guild.GuildId, accountId)
|
logContent := fmt.Sprintf("MemberCount[%d]", guild.GetMembersCount())
|
||||||
gm.WriteLog(guild.GuildId, accountId, LogTypeLeave, logContent)
|
gm.WriteLog(guild.GuildId, accountId, LogTypeLeave, logContent)
|
||||||
|
|
||||||
// Add event
|
// Add event
|
||||||
@ -455,7 +457,6 @@ func (gm *GuildMgr) LeaveGuild(accountId string, cb func(errCode int32, errMsg s
|
|||||||
EVENT_LEAVE,
|
EVENT_LEAVE,
|
||||||
prop,
|
prop,
|
||||||
)
|
)
|
||||||
|
|
||||||
cb(ERR_CODE_OK, "LeaveGuild OK")
|
cb(ERR_CODE_OK, "LeaveGuild OK")
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -527,12 +528,12 @@ func (gm *GuildMgr) SetMemberLevel(operatorAccountId, accountId string, level in
|
|||||||
// 干部, 精英, 副会长
|
// 干部, 精英, 副会长
|
||||||
guild := gm.GetGuildByAccountId(operatorAccountId)
|
guild := gm.GetGuildByAccountId(operatorAccountId)
|
||||||
if guild == nil {
|
if guild == nil {
|
||||||
cb(ERR_CODE_GUILD_NO_EXISTS, "PromoteMember guild no exists")
|
cb(ERR_CODE_GUILD_NO_EXISTS, "SetMemberLevel guild no exists")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if accountId == guild.LeaderId || accountId == operatorAccountId {
|
if accountId == guild.LeaderId || accountId == operatorAccountId {
|
||||||
cb(ERR_CODE_GUILD_BLOCKED_LEADER, "PromoteMember Blocked leader")
|
cb(ERR_CODE_GUILD_BLOCKED_LEADER, "SetMemberLevel no operate your self account")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -544,7 +545,7 @@ func (gm *GuildMgr) SetMemberLevel(operatorAccountId, accountId string, level in
|
|||||||
|
|
||||||
beforeLevel := member.Level
|
beforeLevel := member.Level
|
||||||
if member.Level == level {
|
if member.Level == level {
|
||||||
cb(ERR_CODE_GUILD_OPERATOR_MEMBER_NO_PERM, "LeaveGuild error")
|
cb(ERR_CODE_GUILD_OPERATOR_MEMBER_NO_PERM, "SetMemberLevel error")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -556,8 +557,34 @@ func (gm *GuildMgr) SetMemberLevel(operatorAccountId, accountId string, level in
|
|||||||
}
|
}
|
||||||
|
|
||||||
member.Level = level
|
member.Level = level
|
||||||
|
// 转让会长的操作
|
||||||
|
if level == GuildMemberLevelLeader {
|
||||||
|
operatorMember := guild.GetMember(operatorAccountId)
|
||||||
|
operatorMember.Level = GuildMemberLevelDefault
|
||||||
|
|
||||||
|
guild.LeaderId = member.AccountId
|
||||||
|
updateFields := [][]string{
|
||||||
|
{"leader_account_id", q5.ToString(guild.LeaderId)},
|
||||||
|
}
|
||||||
|
gm.updateGuild(guild, updateFields, func(err error) {
|
||||||
|
if err != nil {
|
||||||
|
cb(ERR_CODE_UPDATE_GUILD_DB_FAIL, err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// 新会长
|
||||||
|
newMemberFields := [][]string{{"level", q5.ToString(member.Level)}}
|
||||||
|
gm.updateGuildMember(guild, member.AccountId, newMemberFields,
|
||||||
|
func(err error) {
|
||||||
|
if err != nil {
|
||||||
|
cb(ERR_CODE_UPDATE_GUILD_MEMBER_DB_FAIL, err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
logContent := fmt.Sprintf("SetMemberLevel[%d-%s-%s-%d-%d]", guild.GuildId, operatorAccountId, accountId, beforeLevel, level)
|
logContent := fmt.Sprintf("SetMemberLevel[%d-%s-%s-%d-%d]", guild.GuildId, operatorAccountId, accountId, beforeLevel, level)
|
||||||
gm.WriteLog(guild.GuildId, accountId, LogTypePromote, logContent)
|
gm.WriteLog(guild.GuildId, accountId, LogTypeChangeLevel, logContent)
|
||||||
|
|
||||||
// Add event
|
// Add event
|
||||||
prop := make(map[string]string)
|
prop := make(map[string]string)
|
||||||
@ -578,123 +605,6 @@ func (gm *GuildMgr) SetMemberLevel(operatorAccountId, accountId string, level in
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// PromoteMember 提升成员为干部
|
|
||||||
func (gm *GuildMgr) PromoteMember(operatorAccountId, accountId string, cb func(errCode int32, errMsg string)) {
|
|
||||||
// 干部, 精英, 副会长
|
|
||||||
guild := gm.GetGuildByAccountId(operatorAccountId)
|
|
||||||
if guild == nil {
|
|
||||||
cb(ERR_CODE_GUILD_NO_EXISTS, "PromoteMember guild no exists")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if accountId == guild.LeaderId || accountId == operatorAccountId {
|
|
||||||
cb(ERR_CODE_GUILD_BLOCKED_LEADER, "PromoteMember Blocked leader")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// 仅会长操作
|
|
||||||
if operatorAccountId != guild.LeaderId {
|
|
||||||
cb(ERR_CODE_GUILD_NO_LEADER_PERM, "PromoteMember only leader perm")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
member := guild.GetMember(accountId)
|
|
||||||
if member == nil {
|
|
||||||
cb(ERR_CODE_GUILD_MEMBER_NO_EXISTS, "LeaveGuild member no exists")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if member.Level == GuildMemberLevelViceLeader {
|
|
||||||
cb(ERR_CODE_GUILD_OPERATOR_MEMBER_NO_PERM, "LeaveGuild error")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
fields := [][]string{{"level", q5.ToString(GuildMemberLevelViceLeader)}}
|
|
||||||
gm.updateGuildMember(guild, member.AccountId, fields, func(err error) {
|
|
||||||
if err != nil {
|
|
||||||
cb(ERR_CODE_UPDATE_GUILD_MEMBER_DB_FAIL, err.Error())
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
member.Level = GuildMemberLevelViceLeader
|
|
||||||
logContent := fmt.Sprintf("PromoteMember[%d-%s-%s]", guild.GuildId, operatorAccountId, accountId)
|
|
||||||
gm.WriteLog(guild.GuildId, accountId, LogTypePromote, logContent)
|
|
||||||
|
|
||||||
// Add event
|
|
||||||
prop := make(map[string]string)
|
|
||||||
prop["guild_id"] = q5.ToString(guild.GuildId)
|
|
||||||
prop["accountId"] = q5.ToString(accountId)
|
|
||||||
prop["members_count"] = q5.ToString(guild.GetMembersCount())
|
|
||||||
f5.GetTgLog().AddTrackLog(
|
|
||||||
GAME_ID,
|
|
||||||
operatorAccountId,
|
|
||||||
"127.0.0.1",
|
|
||||||
EVENT_PROMOTE_MEMBER,
|
|
||||||
prop,
|
|
||||||
)
|
|
||||||
|
|
||||||
cb(ERR_CODE_OK, "PromoteMember OK")
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// DemoteMember 解除成员干部身份
|
|
||||||
func (gm *GuildMgr) DemoteMember(operatorAccountId, accountId string, cb func(errCode int32, errMsg string)) {
|
|
||||||
guild := gm.GetGuildByAccountId(operatorAccountId)
|
|
||||||
if guild == nil {
|
|
||||||
cb(ERR_CODE_GUILD_NO_EXISTS, "DemoteMember guild no exists")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if accountId == guild.LeaderId || accountId == operatorAccountId {
|
|
||||||
cb(ERR_CODE_GUILD_BLOCKED_LEADER, "DemoteMember Blocked leader")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// 仅会长可操作
|
|
||||||
if operatorAccountId != guild.LeaderId {
|
|
||||||
cb(ERR_CODE_GUILD_NO_LEADER_PERM, "DemoteMember only leader perm")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
member := guild.GetMember(accountId)
|
|
||||||
if member == nil {
|
|
||||||
cb(ERR_CODE_GUILD_MEMBER_NO_EXISTS, "DemoteMember member no exists")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if member.Level == GuildMemberLevelDefault {
|
|
||||||
cb(ERR_CODE_GUILD_DEMOTE_MEMBER_OK, "DemoteMember member ok")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
fields := [][]string{{"level", q5.ToString(GuildMemberLevelDefault)}}
|
|
||||||
gm.updateGuildMember(guild, member.AccountId, fields, func(err error) {
|
|
||||||
if err != nil {
|
|
||||||
cb(ERR_CODE_UPDATE_GUILD_MEMBER_DB_FAIL, err.Error())
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
member.Level = GuildMemberLevelDefault
|
|
||||||
logContent := fmt.Sprintf("DemoteMember[%d-%s-%s]", guild.GuildId, operatorAccountId, accountId)
|
|
||||||
gm.WriteLog(guild.GuildId, accountId, LogTypeDemote, logContent)
|
|
||||||
|
|
||||||
// Add event
|
|
||||||
prop := make(map[string]string)
|
|
||||||
prop["guild_id"] = q5.ToString(guild.GuildId)
|
|
||||||
prop["accountId"] = q5.ToString(accountId)
|
|
||||||
prop["members_count"] = q5.ToString(guild.GetMembersCount())
|
|
||||||
f5.GetTgLog().AddTrackLog(
|
|
||||||
GAME_ID,
|
|
||||||
operatorAccountId,
|
|
||||||
"127.0.0.1",
|
|
||||||
EVENT_DEMOTE_MEMBER,
|
|
||||||
prop,
|
|
||||||
)
|
|
||||||
|
|
||||||
cb(ERR_CODE_OK, "DemoteMember OK")
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// Disband 解散公会
|
// Disband 解散公会
|
||||||
func (gm *GuildMgr) Disband(operatorAccountId string, cb func(errCode int32, errMsg string)) {
|
func (gm *GuildMgr) Disband(operatorAccountId string, cb func(errCode int32, errMsg string)) {
|
||||||
guild := gm.GetGuildByAccountId(operatorAccountId)
|
guild := gm.GetGuildByAccountId(operatorAccountId)
|
||||||
@ -705,7 +615,7 @@ func (gm *GuildMgr) Disband(operatorAccountId string, cb func(errCode int32, err
|
|||||||
|
|
||||||
// 仅会长可操作
|
// 仅会长可操作
|
||||||
if operatorAccountId != guild.LeaderId {
|
if operatorAccountId != guild.LeaderId {
|
||||||
cb(ERR_CODE_GUILD_NO_LEADER_PERM, "PromoteMember only leader perm")
|
cb(ERR_CODE_GUILD_NO_LEADER_PERM, "Disband only leader perm")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
guildId := guild.GuildId
|
guildId := guild.GuildId
|
||||||
@ -1011,26 +921,3 @@ func (gm *GuildMgr) GetGuildLogs(guildId int64) []*GuildLog {
|
|||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func ElectNewGuildLeader(guild *Guild) *GuildMember {
|
|
||||||
sort.Slice(guild.Members, func(i, j int) bool {
|
|
||||||
return guild.Members[i].Level < guild.Members[j].Level
|
|
||||||
})
|
|
||||||
// 找到级别最低的成员
|
|
||||||
lowestLevel := guild.Members[0].Level
|
|
||||||
|
|
||||||
var potentialLeaders []*GuildMember
|
|
||||||
for _, member := range guild.Members {
|
|
||||||
if member.Level == lowestLevel {
|
|
||||||
potentialLeaders = append(potentialLeaders, member)
|
|
||||||
} else {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
newLeader := potentialLeaders[rand.Intn(len(potentialLeaders))]
|
|
||||||
newLeader.Level = GuildMemberLevelLeader
|
|
||||||
return newLeader
|
|
||||||
//newLeader.Level = GuildMemberLevelLeader
|
|
||||||
//return newLeader.AccountId
|
|
||||||
}
|
|
||||||
|
@ -35,10 +35,9 @@ func (this *HandlerMgr) init() {
|
|||||||
cs.RegHandlerId(int(cs.CMMessageIdE__CMReject), PLAYER_HANDLER_ID)
|
cs.RegHandlerId(int(cs.CMMessageIdE__CMReject), PLAYER_HANDLER_ID)
|
||||||
cs.RegHandlerId(int(cs.CMMessageIdE__CMLeaveGuild), PLAYER_HANDLER_ID)
|
cs.RegHandlerId(int(cs.CMMessageIdE__CMLeaveGuild), PLAYER_HANDLER_ID)
|
||||||
cs.RegHandlerId(int(cs.CMMessageIdE__CMDismissMember), PLAYER_HANDLER_ID)
|
cs.RegHandlerId(int(cs.CMMessageIdE__CMDismissMember), PLAYER_HANDLER_ID)
|
||||||
cs.RegHandlerId(int(cs.CMMessageIdE__CMPromoteMember), PLAYER_HANDLER_ID)
|
|
||||||
cs.RegHandlerId(int(cs.CMMessageIdE__CMDemoteMember), PLAYER_HANDLER_ID)
|
|
||||||
cs.RegHandlerId(int(cs.CMMessageIdE__CMDisband), PLAYER_HANDLER_ID)
|
cs.RegHandlerId(int(cs.CMMessageIdE__CMDisband), PLAYER_HANDLER_ID)
|
||||||
cs.RegHandlerId(int(cs.CMMessageIdE__CMSearchGuilds), PLAYER_HANDLER_ID)
|
cs.RegHandlerId(int(cs.CMMessageIdE__CMSearchGuilds), PLAYER_HANDLER_ID)
|
||||||
|
cs.RegHandlerId(int(cs.CMMessageIdE__CMApplyList), PLAYER_HANDLER_ID)
|
||||||
cs.RegHandlerId(int(cs.CMMessageIdE__CMGuildMembersList), PLAYER_HANDLER_ID)
|
cs.RegHandlerId(int(cs.CMMessageIdE__CMGuildMembersList), PLAYER_HANDLER_ID)
|
||||||
cs.RegHandlerId(int(cs.CMMessageIdE__CMSetNotice), PLAYER_HANDLER_ID)
|
cs.RegHandlerId(int(cs.CMMessageIdE__CMSetNotice), PLAYER_HANDLER_ID)
|
||||||
cs.RegHandlerId(int(cs.CMMessageIdE__CMSetName), PLAYER_HANDLER_ID)
|
cs.RegHandlerId(int(cs.CMMessageIdE__CMSetName), PLAYER_HANDLER_ID)
|
||||||
|
@ -440,36 +440,6 @@ func (p *Player) CMSetMemberLevel(hdr *f5.MsgHdr, msg *cs.CMSetMemberLevel) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// CMPromoteMember 提升成员为干部
|
|
||||||
func (p *Player) CMPromoteMember(hdr *f5.MsgHdr, msg *cs.CMPromoteMember) {
|
|
||||||
guildMgr.PromoteMember(
|
|
||||||
p.accountId,
|
|
||||||
msg.GetPromoteAccountId(),
|
|
||||||
func(errCode int32, errMsg string) {
|
|
||||||
rspMsg := new(cs.SMPromoteMember)
|
|
||||||
if errCode != 0 {
|
|
||||||
rspMsg.Errcode = &errCode
|
|
||||||
rspMsg.Errmsg = &errMsg
|
|
||||||
}
|
|
||||||
p.SendMsg(rspMsg)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// CMDemoteMember 解除成员干部身份
|
|
||||||
func (p *Player) CMDemoteMember(hdr *f5.MsgHdr, msg *cs.CMDemoteMember) {
|
|
||||||
guildMgr.DemoteMember(
|
|
||||||
p.accountId,
|
|
||||||
msg.GetDemoteAccountId(),
|
|
||||||
func(errCode int32, errMsg string) {
|
|
||||||
rspMsg := new(cs.SMDemoteMember)
|
|
||||||
if errCode != 0 {
|
|
||||||
rspMsg.Errcode = &errCode
|
|
||||||
rspMsg.Errmsg = &errMsg
|
|
||||||
}
|
|
||||||
p.SendMsg(rspMsg)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// CMDisband 解散公会
|
// CMDisband 解散公会
|
||||||
func (p *Player) CMDisband(hdr *f5.MsgHdr, msg *cs.CMDisband) {
|
func (p *Player) CMDisband(hdr *f5.MsgHdr, msg *cs.CMDisband) {
|
||||||
guildMgr.Disband(
|
guildMgr.Disband(
|
||||||
@ -621,6 +591,7 @@ func (p *Player) FillMFGuildMember(member *GuildMember) *cs.MFGuildMember {
|
|||||||
if profile == nil {
|
if profile == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
onlineStatus := playerMgr.GetOnlineStatus(member.AccountId)
|
||||||
guildMember := &cs.MFGuildMember{
|
guildMember := &cs.MFGuildMember{
|
||||||
AccountId: &member.AccountId,
|
AccountId: &member.AccountId,
|
||||||
Level: &member.Level,
|
Level: &member.Level,
|
||||||
@ -629,7 +600,7 @@ func (p *Player) FillMFGuildMember(member *GuildMember) *cs.MFGuildMember {
|
|||||||
AvatarHead: &profile.AvatarHead,
|
AvatarHead: &profile.AvatarHead,
|
||||||
Star: &profile.Star,
|
Star: &profile.Star,
|
||||||
Rank: &profile.Rank,
|
Rank: &profile.Rank,
|
||||||
OnlineStatus: &profile.OnlineStatus,
|
OnlineStatus: &onlineStatus,
|
||||||
LastLoginTime: &profile.LastLoginTime,
|
LastLoginTime: &profile.LastLoginTime,
|
||||||
}
|
}
|
||||||
return guildMember
|
return guildMember
|
||||||
@ -688,6 +659,7 @@ func (p *Player) FillMFUser(profile *PlayerProfile) *cs.MFUser {
|
|||||||
guildId = guild.GuildId
|
guildId = guild.GuildId
|
||||||
guildName = guild.Name
|
guildName = guild.Name
|
||||||
}
|
}
|
||||||
|
onlineStatus := playerMgr.GetOnlineStatus(profile.AccountId)
|
||||||
|
|
||||||
resUser := &cs.MFUser{
|
resUser := &cs.MFUser{
|
||||||
AccountId: &profile.AccountId,
|
AccountId: &profile.AccountId,
|
||||||
@ -697,7 +669,7 @@ func (p *Player) FillMFUser(profile *PlayerProfile) *cs.MFUser {
|
|||||||
GuildId: &guildId,
|
GuildId: &guildId,
|
||||||
GuildName: &guildName,
|
GuildName: &guildName,
|
||||||
Rank: &profile.Rank,
|
Rank: &profile.Rank,
|
||||||
OnlineStatus: &profile.OnlineStatus,
|
OnlineStatus: &onlineStatus,
|
||||||
LastLoginTime: &profile.LastLoginTime,
|
LastLoginTime: &profile.LastLoginTime,
|
||||||
}
|
}
|
||||||
return resUser
|
return resUser
|
||||||
|
@ -190,3 +190,11 @@ func (this *PlayerMgr) getPlayerBySocket(socket f5.WspCliConn) *Player {
|
|||||||
func (this *PlayerMgr) addSocketHash(wsp f5.WspCliConn, p *Player) {
|
func (this *PlayerMgr) addSocketHash(wsp f5.WspCliConn, p *Player) {
|
||||||
this.socketHash[wsp] = p
|
this.socketHash[wsp] = p
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (this *PlayerMgr) GetOnlineStatus(accountId string) int32 {
|
||||||
|
player := this.GetPlayerByAccountId(accountId)
|
||||||
|
if player != nil {
|
||||||
|
return OnlineStatus
|
||||||
|
}
|
||||||
|
return OnlineStatusOff
|
||||||
|
}
|
||||||
|
@ -37,8 +37,6 @@ enum CMMessageId_e
|
|||||||
_CMReject = 124;
|
_CMReject = 124;
|
||||||
_CMLeaveGuild = 125;
|
_CMLeaveGuild = 125;
|
||||||
_CMDismissMember = 126;
|
_CMDismissMember = 126;
|
||||||
_CMPromoteMember = 127;
|
|
||||||
_CMDemoteMember = 128;
|
|
||||||
_CMDisband = 129;
|
_CMDisband = 129;
|
||||||
_CMSearchGuilds = 130;
|
_CMSearchGuilds = 130;
|
||||||
_CMApplyList = 131;
|
_CMApplyList = 131;
|
||||||
@ -79,8 +77,6 @@ enum SMMessageId_e
|
|||||||
_SMReject = 124;
|
_SMReject = 124;
|
||||||
_SMLeaveGuild = 125;
|
_SMLeaveGuild = 125;
|
||||||
_SMDismissMember = 126;
|
_SMDismissMember = 126;
|
||||||
_SMPromoteMember = 127;
|
|
||||||
_SMDemoteMember = 128;
|
|
||||||
_SMDisband = 129;
|
_SMDisband = 129;
|
||||||
_SMSearchGuilds = 130;
|
_SMSearchGuilds = 130;
|
||||||
_SMApplyList = 131;
|
_SMApplyList = 131;
|
||||||
|
@ -420,7 +420,7 @@ message CMApplyList{}
|
|||||||
// 回复申请者列表
|
// 回复申请者列表
|
||||||
message SMApplyList
|
message SMApplyList
|
||||||
{
|
{
|
||||||
optional string errcode = 1;
|
optional int32 errcode = 1;
|
||||||
optional string errmsg = 2;
|
optional string errmsg = 2;
|
||||||
repeated MFGuildMember members = 3;
|
repeated MFGuildMember members = 3;
|
||||||
}
|
}
|
||||||
@ -496,32 +496,6 @@ message SMSetMemberLevel
|
|||||||
optional string errmsg = 2;
|
optional string errmsg = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 请求提升成员为干部
|
|
||||||
message CMPromoteMember
|
|
||||||
{
|
|
||||||
optional string promoteAccountId = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 回复提升成员为干部
|
|
||||||
message SMPromoteMember
|
|
||||||
{
|
|
||||||
optional int32 errcode = 1;
|
|
||||||
optional string errmsg = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 请求解除成员干部身份
|
|
||||||
message CMDemoteMember
|
|
||||||
{
|
|
||||||
optional string demoteAccountId = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 回复解除成员干部身份
|
|
||||||
message SMDemoteMember
|
|
||||||
{
|
|
||||||
optional int32 errcode = 1;
|
|
||||||
optional string errmsg = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 请求公会成员列表
|
// 请求公会成员列表
|
||||||
message CMGuildMembersList
|
message CMGuildMembersList
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user