From d34c651fe15d8d92894aa9739a2bbfd63f3788cc Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Fri, 25 Sep 2020 16:19:36 +0800 Subject: [PATCH] 1 --- server/imserver/constant.h | 9 ++++++++- server/imserver/guild.cc | 11 +++++++++++ server/imserver/synchelper.cc | 8 ++++++++ server/imserver/synchelper.h | 6 ++++++ 4 files changed, 33 insertions(+), 1 deletion(-) diff --git a/server/imserver/constant.h b/server/imserver/constant.h index 512fbf5..5326cb0 100644 --- a/server/imserver/constant.h +++ b/server/imserver/constant.h @@ -56,13 +56,20 @@ enum ReadPointFlag RPF_Apply = 0 }; +enum GuildMemberQuitReason +{ + kGuildKick = 0, + kGuildQuit = 1, + kGuildDismisss = 2 +}; + const char* const PROJ_NAME_FMT = "friend_imserver"; const char* const PROJ_ROOT_FMT = "/data/logs/%s"; const char* const EVENT_FRIEND_AGREE = "friend.agree"; const char* const EVENT_FRIEND_DELETE = "friend.delete"; -const char* const EVENT_GUILD_DELETE = "guild.dismiss"; +const char* const EVENT_GUILD_DELETE = "guild.quit"; const int MAX_INSTANCE_ID = 1023; diff --git a/server/imserver/guild.cc b/server/imserver/guild.cc index bd6be31..34d3ad3 100644 --- a/server/imserver/guild.cc +++ b/server/imserver/guild.cc @@ -12,6 +12,7 @@ #include "typeconvert.h" #include "utils.h" #include "dbhelper.h" +#include "synchelper.h" const int GUILD_MAX_MEMBER_NUM = 50; @@ -222,6 +223,16 @@ void Guild::_CMGuildKick(f8::MsgHdr& hdr, const cs::CMGuildKick& msg) respmsg); return; } + GuildMgr::Instance()->ForwardGuildSMMsg(hdr.socket_handle, + forward_msg->context(), + respmsg); + SyncHelper::Instance()->SyncGuildMemberQuit + ( + this, + sender->account_id, + member->account_id, + kGuildKick + ); } void Guild::_CMGuildQuit(f8::MsgHdr& hdr, const cs::CMGuildQuit& msg) diff --git a/server/imserver/synchelper.cc b/server/imserver/synchelper.cc index 543946d..f976aa4 100644 --- a/server/imserver/synchelper.cc +++ b/server/imserver/synchelper.cc @@ -95,6 +95,14 @@ void SyncHelper::SyncApplyFriend(Player* hum, const std::string& target_id) delete notifymsg; } +void SyncHelper::SyncGuildMemberQuit(Guild* guild, + const std::string& sender_id, + const std::string& target_id, + int reason) +{ + +} + void SyncHelper::BroadcastIMConnMsg(int msgid, ::google::protobuf::Message& msg) { IMConnMgr::Instance()->TraverseIMConn diff --git a/server/imserver/synchelper.h b/server/imserver/synchelper.h index d483d06..d96ae39 100644 --- a/server/imserver/synchelper.h +++ b/server/imserver/synchelper.h @@ -10,6 +10,7 @@ namespace ss class SS_IM_FriendDeleteResponse; } +class Guild; class Player; struct timer_list; class SyncHelper : public a8::Singleton @@ -30,6 +31,11 @@ public: void SyncUpdateFriend(Player* hum, const std::string& target_id); void SyncApplyFriend(Player* hum, const std::string& target_id); + void SyncGuildMemberQuit(Guild* guild, + const std::string& sender_id, + const std::string& target_id, + int reason); + void _SS_IM_FriendAgreeResponse(f8::MsgHdr& hdr, const ss::SS_IM_FriendAgreeResponse& msg); void _SS_IM_FriendDeleteResponse(f8::MsgHdr& hdr, const ss::SS_IM_FriendDeleteResponse& msg);