| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481 |
- package msg
- import (
- "rocommon"
- "rocommon/util"
- "roserver/baseserver/model"
- "roserver/serverproto"
- model2 "roserver/social/model"
- )
- func init() {
- //from webgm
- //webgm
- //封号/解封
- serverproto.Handle_SOCIAL_SSWebGMBanNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSWebGMBanNtf)
- util.InfoF("receive SSWebGMBanNtf msg=%v", msg)
- banPlayer := model2.GetSocialPlayer(msg.BanUid)
- if banPlayer != nil {
- banPlayer.SendGame(msg)
- } else {
- //发送给其他game服务器节点
- model2.SendToAllGame(msg)
- }
- })
- //发送走马灯公告
- serverproto.Handle_SOCIAL_SSWebGMNoticeNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSWebGMNoticeNtf)
- util.InfoF("receive SSWebGMNoticeNtf msg=%v", msg)
- //发送给其他game服务器节点
- model2.SendToAllGame(msg)
- })
- //pay
- serverproto.Handle_SOCIAL_SSPayInfoOrderNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSPayInfoOrderNtf)
- util.InfoF("receive SSPayInfoOrderNtf msg=%v", msg)
- fromPlayerSId := model2.GetPlayerServiceNodeId(msg.PayOrderInfo.Uid)
- if fromPlayerSId != "" && model2.SendToGame(fromPlayerSId, msg) {
- return
- }
- })
- //gmweb->social->game 服务器维护(强制所有玩家下线)
- serverproto.Handle_SOCIAL_SSWEBGMServerMaintainNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSWEBGMServerMaintainNtf)
- util.InfoF("receive SSWEBGMServerMaintainNtf msg=%v", msg)
- //发送给其他game服务器节点
- model2.SendToAllGame(msg)
- })
- //gmweb->social->all game 服务器配置文件热加载
- serverproto.Handle_SOCIAL_SSServerConfigReloadNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSServerConfigReloadNtf)
- util.InfoF("receive SSServerConfigReloadNtf msg=%v", msg)
- //发送给其他game服务器节点
- model2.SendToAllGame(msg)
- })
- //背包内道具删除
- serverproto.Handle_SOCIAL_SSWebGMDelItemNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSWebGMDelItemNtf)
- util.InfoF("receive SSWebGMDelItemNtf msg=%v", msg)
- //发送给其他game服务器节点
- model2.SendToAllGame(msg)
- })
- //webgm
- //系统消息通知
- serverproto.Handle_SOCIAL_SSSystemMessageNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSSystemMessageNtf)
- util.InfoF("receive SSSystemMessageNtf msg:%v", msg)
- //发送给其他game服务器节点
- model2.SendToAllGame(msg)
- })
- //系统消息通知
- serverproto.Handle_SOCIAL_CSGetOtherPlayerDetailInfoReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.CSGetOtherPlayerDetailInfoReq)
- util.InfoF("receive CSGetOtherPlayerDetailInfoReq msg=%v", msg)
- targetPlayer := model2.GetSocialPlayer(msg.TUid)
- if targetPlayer != nil {
- reqMsg := &serverproto.SSGetViewedTargetInfoReq{}
- reqMsg.TUid = msg.TUid
- reqMsg.Uid = msg.Uid
- targetPlayer.SendGame(reqMsg)
- return
- }
- //发送请求到DBserver
- reqMsg := &serverproto.SSGetOtherTargetInfoReq{
- Uid: msg.Uid,
- TUid: msg.TUid,
- }
- model2.SendDB(reqMsg)
- return
- })
- //从game查找结果//game返回的被观察者数据
- serverproto.Handle_SOCIAL_SSGetViewedTargetInfoAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSGetViewedTargetInfoAck)
- util.InfoF("receive SSGetViewedTargetInfoAck msg=%v", msg)
- reqPlayer := model2.GetSocialPlayer(msg.Uid)
- if reqPlayer == nil {
- //这个时候找不到,可能请求查看的人已经下线
- return
- }
- ackMsg := &serverproto.SCGetOtherPlayerDetailInfoAck{
- Uid: msg.Uid,
- Error: msg.Error,
- TargetInfo: &serverproto.ViewRoleInfo{},
- }
- if msg.Error != int32(serverproto.ErrorCode_ERROR_OK) {
- model.ServiceReplay(ev, ackMsg)
- return
- }
- ackMsg.TargetInfo = msg.Info
- reqPlayer.SendGame(ackMsg)
- })
- //从DB查找结果//DB返回的被观察者数据
- serverproto.Handle_SOCIAL_SSGetOtherTargetInfoAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSGetOtherTargetInfoAck)
- util.InfoF("receive SSGetOtherTargetInfoAck msg=%v", msg)
- reqPlayer := model2.GetSocialPlayer(msg.Uid)
- if reqPlayer == nil {
- //这个时候找不到,可能请求查看的人已经下线//下线了就不做处理
- return
- }
- //下发
- ackMsg := &serverproto.SCGetOtherPlayerDetailInfoAck{
- Uid: msg.Uid,
- Error: msg.Error,
- }
- if msg.Error != int32(serverproto.ErrorCode_ERROR_OK) {
- model.ServiceReplay(ev, ackMsg)
- return
- }
- ackMsg.TargetInfo = msg.Info
- reqPlayer.SendGame(ackMsg)
- })
- ////Friend
- //查询玩家在线情况
- serverproto.Handle_SOCIAL_SSOnlineStateReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSOnlineStateReq)
- util.InfoF("receive SSOnlineStateReq msg=%v", msg)
- ackMsg := &serverproto.SSOnlineStateAck{
- ProType: msg.ProType,
- ListType: msg.ListType,
- }
- for idx := range msg.BriefInfoList {
- socialPlayer := model2.GetSocialPlayer(msg.BriefInfoList[idx].Uid)
- if socialPlayer != nil {
- msg.BriefInfoList[idx].OnlineState = true
- }
- ackMsg.BriefInfoList = append(ackMsg.BriefInfoList, msg.BriefInfoList[idx])
- }
- model.ServiceReplay(ev, ackMsg)
- })
- //from game 添加其他服务器的关注
- serverproto.Handle_SOCIAL_SSFriendAddReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSFriendAddReq)
- util.InfoF("receive SSFriendAddReq msg=%v", msg)
- addRoleServiceId := model2.GetPlayerServiceNodeId(msg.AddUid)
- if addRoleServiceId != "" && model2.SendToGame(addRoleServiceId, msg) {
- return
- }
- //发送失败,返回game并发送给db做处理
- ackMsg := &serverproto.SSFriendAddAck{
- Error: int32(serverproto.ErrorCode_ERROR_SOCIAL_NOT_FIND_SERVICE_ID),
- FromUid: msg.FromUid.Uid,
- AddUid: &serverproto.CommonPlayerBriefInfo{Uid: msg.AddUid},
- }
- model.ServiceReplay(ev, ackMsg)
- })
- //from other game来自其他服务器的添加关注回应
- serverproto.Handle_SOCIAL_SSFriendAddAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSFriendAddAck)
- util.InfoF("receive SSFriendAddAck msg=%v", msg)
- fromPlayerSId := model2.GetPlayerServiceNodeId(msg.FromUid)
- if fromPlayerSId != "" && model2.SendToGame(fromPlayerSId, msg) {
- return
- } else {
- // 直接处理关注玩家的数据库
- // 添加粉丝列表成功,但是玩家刚好下线了
- fromPlayer := model2.GetOfflineSocialPlayer(msg.FromUid)
- if fromPlayer != nil && fromPlayer.ServiceNodeId() != "" {
- model2.SendToGame(fromPlayer.ServiceNodeId(), msg)
- util.InfoF("SSFriendAddAck FromUid=%v offline msg=", msg.FromUid, msg)
- }
- }
- })
- //from game 通知其他玩家从粉丝列表中移除自己
- serverproto.Handle_SOCIAL_SSFriendDelReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSFriendDelReq)
- util.InfoF("receive SSFriendDelReq msg=%v", msg)
- delRoleServiceId := model2.GetPlayerServiceNodeId(msg.DelUid)
- if delRoleServiceId != "" && model2.SendToGame(delRoleServiceId, msg) {
- return
- }
- ssAckMsg := &serverproto.SSFriendDelAck{
- Error: int32(serverproto.ErrorCode_ERROR_SOCIAL_NOT_FIND_SERVICE_ID),
- FromUid: msg.FromUid,
- DelUid: msg.DelUid,
- }
- model.ServiceReplay(ev, ssAckMsg)
- })
- //from guild, 通知职位有变化的玩家
- serverproto.Handle_SOCIAL_SCChangeMemberTitleNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SCChangeMemberTitleNtf)
- util.InfoF("receive SSFriendDelReq msg=%v", msg)
- player := model2.GetSocialPlayer(msg.Uid)
- if player != nil {
- player.SendGame(msg)
- }
- })
- //from guild,
- serverproto.Handle_SOCIAL_SCApplyInfoHandleNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SCApplyInfoHandleNtf)
- util.InfoF("receive SCApplyInfoHandleNtf msg=%v", msg)
- player := model2.GetSocialPlayer(msg.Uid)
- if player != nil {
- player.SendGame(msg)
- }
- })
- //from guild,
- serverproto.Handle_SOCIAL_SCKickGuildMemberNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SCKickGuildMemberNtf)
- util.InfoF("receive SCKickGuildMemberNtf msg=%v", msg)
- player := model2.GetSocialPlayer(msg.Uid)
- if player != nil {
- player.SendGame(msg)
- }
- })
- //公会查询玩家在线情况
- serverproto.Handle_SOCIAL_SSGuildMemberOnlineInfoReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSGuildMemberOnlineInfoReq)
- util.InfoF("receive SSGuildMemberOnlineInfoReq msg=%v", msg)
- ackMsg := &serverproto.SSGuildMemberOnlineInfoAck{
- GuildId: msg.GuildId,
- }
- for _, uid := range msg.UidList {
- socialPlayer := model2.GetSocialPlayer(uid)
- if socialPlayer != nil {
- ackMsg.UidList = append(ackMsg.UidList, &serverproto.KeyValueType64{
- Key: uid,
- Value: 1,
- })
- } else {
- ackMsg.UidList = append(ackMsg.UidList, &serverproto.KeyValueType64{
- Key: uid,
- Value: 0,
- })
- }
- }
- model.ServiceReplay(ev, ackMsg)
- })
- //from guild
- serverproto.Handle_SOCIAL_SSGuildNameChangeNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSGuildNameChangeNtf)
- util.InfoF("receive SSGuildNameChangeNtf from other game msg=%v", msg)
- ntfMsg := &serverproto.SCGuildNameChangeNtf{}
- ntfMsg.GuildName = msg.GuildName
- ntfMsg.GuildId = msg.GuildId
- for _, data := range msg.UidList {
- socialPlayer := model2.GetSocialPlayer(data)
- if socialPlayer == nil {
- continue
- }
- ntfMsg.Uid = data
- socialPlayer.SendGame(ntfMsg)
- }
- })
- ////Expedition
- //from game 救助发起求助操作的玩家
- serverproto.Handle_SOCIAL_SSExpeditionHelpReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSExpeditionHelpReq)
- util.InfoF("receive SSExpeditionHelpReq msg=%v", msg)
- delRoleServiceId := model2.GetPlayerServiceNodeId(msg.BeHelpedUid)
- if delRoleServiceId != "" && model2.SendToGame(delRoleServiceId, msg) {
- return
- }
- //玩家不在线并且无离线数据(最近玩家没有登录直接返回game,操作数据库)
- ssAckMsg := &serverproto.SSExpeditionHelpAck{
- Error: int32(serverproto.ErrorCode_ERROR_EXPEDITION_NOT_FIND_SERVICE_ID),
- BeHelpedUid: msg.BeHelpedUid,
- FromUid: msg.FromUid,
- }
- model.ServiceReplay(ev, ssAckMsg)
- })
- //from other game
- serverproto.Handle_SOCIAL_SSExpeditionHelpAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSExpeditionHelpAck)
- util.InfoF("receive SSExpeditionHelpAck from other game msg=%v", msg)
- delRoleServiceId := model2.GetPlayerServiceNodeId(msg.FromUid.Uid)
- if delRoleServiceId != "" && model2.SendToGame(delRoleServiceId, msg) {
- util.ErrorF("SSExpeditionHelpAck from other game msg=%v", msg)
- return
- }
- })
- ////Invitation
- //填写邀请码成为导师成员
- serverproto.Handle_SOCIAL_SSInvitationBeToMemberReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSInvitationBeToMemberReq)
- util.InfoF("receive SSInvitationBeToMemberReq msg=%v", msg)
- masterRoleServiceId := model2.GetPlayerServiceNodeId(msg.MasterUid)
- if masterRoleServiceId != "" && model2.SendToGame(masterRoleServiceId, msg) {
- return
- }
- //玩家不在线并且无离线数据(最近玩家没有登录直接返回game,操作数据库)
- ssAckMsg := &serverproto.SSInvitationBeToMemberAck{
- Error: int32(serverproto.ErrorCode_ERROR_EXPEDITION_NOT_FIND_SERVICE_ID),
- MasterNumber: msg.MasterNumber,
- MasterUid: msg.MasterUid,
- SelfUid: msg.SelfUid,
- }
- model.ServiceReplay(ev, ssAckMsg)
- })
- //from other game
- serverproto.Handle_SOCIAL_SSInvitationBeToMemberAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSInvitationBeToMemberAck)
- util.InfoF("receive SSInvitationBeToMemberAck msg=%v", msg)
- selfRoleServiceId := model2.GetPlayerServiceNodeId(msg.SelfUid.Uid)
- if selfRoleServiceId != "" && model2.SendToGame(selfRoleServiceId, msg) {
- return
- }
- })
- //通知玩家解除关系
- serverproto.Handle_SOCIAL_SSInvitationDelMemberNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSInvitationDelMemberNtf)
- util.InfoF("receive SSInvitationDelMemberNtf msg=%v", msg)
- for idx := 0; idx < len(msg.DelMemberList); idx++ {
- tmpUid := msg.DelMemberList[idx]
- delRoleServiceId := model2.GetPlayerServiceNodeId(tmpUid)
- if delRoleServiceId != "" && model2.SendToGame(delRoleServiceId, msg) {
- return
- }
- }
- })
- //等级,充值等数据变更时通知导师
- serverproto.Handle_SOCIAL_SSInvitationMemberNoticeMasterReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSInvitationMemberNoticeMasterReq)
- util.InfoF("receive SSInvitationMemberNoticeMasterReq msg=%v", msg)
- masterRoleServiceId := model2.GetPlayerServiceNodeId(msg.MasterUid)
- if masterRoleServiceId != "" && model2.SendToGame(masterRoleServiceId, msg) {
- return
- }
- ssAckMsg := &serverproto.SSInvitationMemberNoticeMasterAck{
- Error: int32(serverproto.ErrorCode_ERROR_EXPEDITION_NOT_FIND_SERVICE_ID),
- SelfUid: msg.SelfUid,
- MasterUid: msg.MasterUid,
- Param: msg.Param,
- }
- model.ServiceReplay(ev, ssAckMsg)
- })
- //form other game
- serverproto.Handle_SOCIAL_SSInvitationMemberNoticeMasterAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSInvitationMemberNoticeMasterAck)
- util.InfoF("receive SSInvitationMemberNoticeMasterAck msg=%v", msg)
- masterRoleServiceId := model2.GetPlayerServiceNodeId(msg.SelfUid)
- if masterRoleServiceId != "" && model2.SendToGame(masterRoleServiceId, msg) {
- return
- }
- })
- ////百人道场
- //来自其他服务器的通知
- serverproto.Handle_SOCIAL_SSDaoChang100ChallengeResultNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSDaoChang100ChallengeResultNtf)
- util.InfoF("receive SSDaoChang100ChallengeResultNtf msg=%v", msg)
- masterRoleServiceId := model2.GetPlayerServiceNodeId(msg.NtfUid)
- if masterRoleServiceId != "" && model2.SendToGame(masterRoleServiceId, msg) {
- return
- }
- })
- //转盘大奖日志
- serverproto.Handle_SOCIAL_SSDaoChang100WheelLogAddNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSDaoChang100WheelLogAddNtf)
- util.InfoF("receive SSDaoChang100WheelLogAddNtf msg=%v", msg)
- model2.SendToAllGame(msg)
- })
- //礼包码获取奖励
- serverproto.Handle_SOCIAL_CSGiftRewardReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.CSGiftRewardReq)
- util.InfoF("receive CSGiftRewardReq msg=%v", msg)
- model2.SendGmweb(msg)
- })
- //gmweb->social->game 礼包码获取奖励
- serverproto.Handle_SOCIAL_SCGiftRewardAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SCGiftRewardAck)
- util.InfoF("receive SCGiftRewardAck msg=%v", msg)
- serviceId := model2.GetPlayerServiceNodeId(msg.Uuid)
- if serviceId != "" && model2.SendToGame(serviceId, msg) {
- return
- }
- })
- serverproto.Handle_SOCIAL_SSActivitiesCollectionServerDataNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSActivitiesCollectionServerDataNtf)
- util.InfoF("receive SSActivitiesCollectionServerDataNtf msg=%v", msg)
- //发送给其他game服务器节点
- model2.SendToAllGame(msg)
- })
- ////公会战
- //公会战数据变更通知
- serverproto.Handle_SOCIAL_SCGuildBattleDataChangeNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SCGuildBattleDataChangeNtf)
- util.InfoF("receive SCGuildBattleDataChangeNtf msg=%v", msg)
- //发送给其他game服务器节点
- msg.FromSocial = true
- model2.SendToAllGame(msg)
- // model2.SendToAllGameExcept(msg, cliId.SessID)
- })
- //封号/解封
- serverproto.Handle_SOCIAL_SSWebGMGuildBattle = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSWebGMGuildBattle)
- util.InfoF("receive SSWebGMGuildBattle msg=%v", msg)
- model2.SendGuild(msg)
- })
- serverproto.Handle_SOCIAL_SSWebGMHeadChange = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSWebGMHeadChange)
- util.InfoF("receive SSWebGMHeadChange msg=%v", msg)
- banPlayer := model2.GetSocialPlayer(msg.Uid)
- if banPlayer != nil {
- banPlayer.SendGame(msg)
- } else {
- //发送给其他game服务器节点
- model2.SendToAllGame(msg)
- }
- })
- }
|