diff --git a/server/imserver/cs/cs.auto_gen.go b/server/imserver/cs/cs.auto_gen.go index c8062ec9..53d19e31 100644 --- a/server/imserver/cs/cs.auto_gen.go +++ b/server/imserver/cs/cs.auto_gen.go @@ -75,6 +75,7 @@ type MsgHandler interface { CMSetAvatar(*f5.MsgHdr, *CMSetAvatar) CMSetNotice(*f5.MsgHdr, *CMSetNotice) CMSetJoinCond(*f5.MsgHdr, *CMSetJoinCond) + CMRedDot(*f5.MsgHdr, *CMRedDot) } func (this *MsgHandlerImpl) CMPing(hdr *f5.MsgHdr, msg *CMPing) { @@ -197,6 +198,9 @@ func (this *MsgHandlerImpl) CMSetNotice(hdr *f5.MsgHdr, msg *CMSetNotice) { func (this *MsgHandlerImpl) CMSetJoinCond(hdr *f5.MsgHdr, msg *CMSetJoinCond) { } +func (this *MsgHandlerImpl) CMRedDot(hdr *f5.MsgHdr, msg *CMRedDot) { +} + func (this *CMPing) GetNetMsgId() uint16 { return uint16(CMMessageIdE__CMPing) } @@ -549,6 +553,14 @@ func (this *SMUserStatusNotify) GetNetMsgId() uint16 { return uint16(SMMessageIdE__SMUserStatusNotify) } +func (this *CMRedDot) GetNetMsgId() uint16 { + return uint16(CMMessageIdE__CMRedDot) +} + +func (this *SMRedDot) GetNetMsgId() uint16 { + return uint16(SMMessageIdE__SMRedDot) +} + func (this *SMLogin) Err(errCode int32, errMsg string) *SMLogin { this.Errcode = proto.Int32(errCode) this.Errmsg = proto.String(errMsg) @@ -1235,4 +1247,16 @@ func init() { }, } + handlers[int(CMMessageIdE__CMRedDot)] = &CsNetMsgHandler{ + MsgId: int(CMMessageIdE__CMRedDot), + ParseCb: func (data []byte) interface{} { + msg := &CMRedDot{} + proto.Unmarshal(data, msg) + return msg + }, + Cb: func (hdr *f5.MsgHdr, handler MsgHandler) { + handler.CMRedDot(hdr, hdr.Msg.(*CMRedDot)) + }, + } + } \ No newline at end of file diff --git a/server/imserver/listener/handlermgr.go b/server/imserver/listener/handlermgr.go index 1167fc6c..b6a03690 100644 --- a/server/imserver/listener/handlermgr.go +++ b/server/imserver/listener/handlermgr.go @@ -51,6 +51,8 @@ func (this *HandlerMgr) Init() { cs.RegHandlerId(int(cs.CMMessageIdE__CMSetMemberLevel), constant.PLAYER_HANDLER_ID) cs.RegHandlerId(int(cs.CMMessageIdE__CMGetTopGuildsByTotalStars), constant.PLAYER_HANDLER_ID) + cs.RegHandlerId(int(cs.CMMessageIdE__CMRedDot), constant.PLAYER_HANDLER_ID) + cs.RegHandlerId(int(cs.CMMessageIdE__CMSendChatMsg), constant.PLAYER_HANDLER_ID) cs.RegHandlerId(int(cs.CMMessageIdE__CMReadMsgAndOpenChatNotify), constant.PLAYER_HANDLER_ID) cs.RegHandlerId(int(cs.CMMessageIdE__CMSetCurrPrivateChatTarget), constant.PLAYER_HANDLER_ID) diff --git a/server/imserver/player/player.go b/server/imserver/player/player.go index b32daf4e..89ce6214 100644 --- a/server/imserver/player/player.go +++ b/server/imserver/player/player.go @@ -864,6 +864,11 @@ func (this *player) CMGuildLogs(hdr *f5.MsgHdr, msg *cs.CMGuildLogs) { //not implements } +func (this *player) CMRedDot(hdr *f5.MsgHdr, msg *cs.CMRedDot) { + rspMsg := new(cs.SMRedDot) + this.SendMsg(rspMsg) +} + func (this *player) onOffline() { this.socket.Reset() f5.GetSysLog().Info("onOffline %s", this.GetAccountId()) diff --git a/server/imserver/proto/cs_msgid.proto b/server/imserver/proto/cs_msgid.proto index 57f7715b..2b39be52 100644 --- a/server/imserver/proto/cs_msgid.proto +++ b/server/imserver/proto/cs_msgid.proto @@ -33,6 +33,7 @@ enum CMMessageId_e _CMReadMsgAndOpenChatNotify = 202; _CMCloseChatNotify = 203; + _CMRedDot = 301; // 公会相关 _CMGuildInfo = 120; @@ -99,6 +100,8 @@ enum SMMessageId_e _SMRecommendGuildList = 139; _SMGetTopGuildsByTotalStars = 140; + _SMRedDot = 301; + // 聊天相关通知 _SMUpdateChatRedPointNotify = 1000; _SMChatMsgNotify = 1001; diff --git a/server/imserver/proto/cs_proto.proto b/server/imserver/proto/cs_proto.proto index fa3ab420..d583b6bc 100644 --- a/server/imserver/proto/cs_proto.proto +++ b/server/imserver/proto/cs_proto.proto @@ -740,3 +740,13 @@ message SMUserStatusNotify optional int32 online_status = 2; optional int32 battling = 3; } + +//请求红点 +message CMRedDot +{ +} + +message SMRedDot +{ + optional int32 flags = 1; // 1<<0:有好友申请 1<<1:有公会申请 +}