This commit is contained in:
aozhiwei 2020-09-30 11:45:05 +08:00
parent 7de769b4b6
commit a7fc4d6866
7 changed files with 78 additions and 0 deletions

View File

@ -713,6 +713,45 @@ void Guild::_CMGuildMemberSetJob(f8::MsgHdr& hdr, const cs::CMGuildMemberSetJob&
SaveToDB();
}
void Guild::_CMGuildAgreeInvite(f8::MsgHdr& hdr, const cs::CMGuildAgreeInvite& msg)
{
ss::SS_IM_ForwardGuildCMMsg *forward_msg = (ss::SS_IM_ForwardGuildCMMsg*)hdr.user_data;
cs::SMGuildAgreeInvite respmsg;
GuildMember* member = GetMember(forward_msg->context().user_info().base_data().account_id());
if (member) {
GuildMgr::Instance()->ForwardGuildSMMsg(hdr.socket_handle,
forward_msg->context(),
respmsg);
return;
}
if (IsFull()) {
SendErrorMsg(hdr.socket_handle, forward_msg->context(), "公会人数已达上限");
respmsg.set_errcode(1);
respmsg.set_errmsg("公会人数已达上限");
GuildMgr::Instance()->ForwardGuildSMMsg(hdr.socket_handle,
forward_msg->context(),
respmsg);
return;
}
GuildMgr::Instance()->ForwardGuildSMMsg(hdr.socket_handle,
forward_msg->context(),
respmsg);
member = new GuildMember();
TypeConvert::Convert(forward_msg->context().user_info().base_data(), *member);
AddMember(member);
SyncHelper::Instance()->SyncGuildMemberUpdate(this, member, kGuildUpdateReasonAgree);
DBHelper::Instance()->SetGuildApplyStatus
(
forward_msg->context().user_info().base_data().account_id(),
guild_id_,
kGuildApplyAgree
);
ClearApplyBySenderId(forward_msg->context().user_info().base_data().account_id());
}
int Guild::GetMemberJob(const std::string& account_id)
{
auto itr = member_job_hash_.find(account_id);

View File

@ -28,6 +28,7 @@ public:
void _CMGuildApplyList(f8::MsgHdr& hdr, const cs::CMGuildApplyList& msg);
void _CMGuildLog(f8::MsgHdr& hdr, const cs::CMGuildLog& msg);
void _CMGuildMemberSetJob(f8::MsgHdr& hdr, const cs::CMGuildMemberSetJob& msg);
void _CMGuildAgreeInvite(f8::MsgHdr& hdr, const cs::CMGuildAgreeInvite& msg);
long long GuildId() { return guild_id_; }
int GetMemberJob(const std::string& account_id);

View File

@ -121,6 +121,7 @@ void HandlerMgr::RegisterNetMsgHandlers()
RegisterNetMsgHandler(&wsmsghandler, &Player::_CMGuildApplyList);
RegisterNetMsgHandler(&wsmsghandler, &Player::_CMGuildLog);
RegisterNetMsgHandler(&wsmsghandler, &Player::_CMGuildMemberSetJob);
RegisterNetMsgHandler(&wsmsghandler, &Player::_CMGuildAgreeInvite);
RegisterNetMsgHandler(&guild_msghandler, &Guild::_CMGuildInfo);
RegisterNetMsgHandler(&guild_msghandler, &Guild::_CMGuildJoin);
@ -134,6 +135,7 @@ void HandlerMgr::RegisterNetMsgHandlers()
RegisterNetMsgHandler(&guild_msghandler, &Guild::_CMGuildApplyList);
RegisterNetMsgHandler(&guild_msghandler, &Guild::_CMGuildLog);
RegisterNetMsgHandler(&guild_msghandler, &Guild::_CMGuildMemberSetJob);
RegisterNetMsgHandler(&guild_msghandler, &Guild::_CMGuildAgreeInvite);
}
void HandlerMgr::ProcGMMsg(unsigned long saddr, int sockhandle,

View File

@ -37,6 +37,7 @@ void Player::Init()
(unsigned char*)myself.base_data.account_id.data(),
myself.base_data.account_id.size()
);
user_sign_ = a8::openssl::md5(AccountId());
a8::Timer::Instance()->AddRepeatTimerAndAttach
(
1000 * 3 + (rand() % 3000),
@ -976,6 +977,23 @@ void Player::_CMGuildMemberSetJob(f8::MsgHdr& hdr, const cs::CMGuildMemberSetJob
ForwardGuildCMMsg(hdr, GuildId());
}
void Player::_CMGuildAgreeInvite(f8::MsgHdr& hdr, const cs::CMGuildAgreeInvite& msg)
{
cs::SMGuildAgreeInvite respmsg;
if (GuildId() != 0) {
if (GuildId() == msg.guild_id()) {
NotifyUserInfoUpdate(&myself);
SendMsg(respmsg);
} else {
respmsg.set_errcode(1);
respmsg.set_errmsg("你已经有公会");
SendMsg(respmsg);
}
return;
}
ForwardGuildCMMsg(hdr, GuildId());
}
void Player::_SS_IM_FriendAgreeRequest(f8::MsgHdr& hdr, const ss::SS_IM_FriendAgreeRequest& msg)
{
if (!GetFriendById(msg.context().user_info().base_data().account_id())) {
@ -1294,6 +1312,7 @@ void Player::UpdateGuildData(long long guild_id, int guild_job)
void Player::FillSMLogin(cs::SMLogin& respmsg)
{
FillMFUserInfo(respmsg.mutable_account_info()->mutable_user_info());
respmsg.mutable_account_info()->set_user_sign(user_sign_);
}
void Player::FillApplyList(const cs::MFPaging& paging, cs::SMFriendApplyList& respmsg)

View File

@ -117,6 +117,7 @@ class Player
void _CMGuildApplyList(f8::MsgHdr& hdr, const cs::CMGuildApplyList& msg);
void _CMGuildLog(f8::MsgHdr& hdr, const cs::CMGuildLog& msg);
void _CMGuildMemberSetJob(f8::MsgHdr& hdr, const cs::CMGuildMemberSetJob& msg);
void _CMGuildAgreeInvite(f8::MsgHdr& hdr, const cs::CMGuildAgreeInvite& msg);
void _SS_IM_FriendAgreeRequest(f8::MsgHdr& hdr, const ss::SS_IM_FriendAgreeRequest& msg);
void _SS_IM_FriendDeleteRequest(f8::MsgHdr& hdr, const ss::SS_IM_FriendDeleteRequest& msg);
@ -196,6 +197,7 @@ private:
std::map<long long, Event> event_hash_;
int red_point_flags_ = 0;
std::set<std::string> exclude_account_ids_;
std::string user_sign_;
std::map<std::string, Friend*> friend_hash_;
std::map<std::string, Friend*> black_hash_;

View File

@ -41,6 +41,7 @@ enum CMMessageId_e
_CMGuildLog = 243;
_CMGuildMemberSetJob = 244;
_CMGuildRefuse = 245;
_CMGuildAgreeInvite = 246;
_CMGuildMsgEnd = 270;
_CMTeamCreate = 301;
@ -89,6 +90,7 @@ enum SMMessageId_e
_SMGuildLog = 243;
_SMGuildMemberSetJob = 244;
_SMGuildRefuse = 245;
_SMGuildAgreeInvite = 246;
_SMGuildMsgEnd = 270;
_SMTeamCreate = 301;

View File

@ -61,6 +61,7 @@ message MFUserTempCustomData
message MFAccountInfo
{
optional MFUserInfo user_info = 1; //
optional string user_sign = 2; //
}
//
@ -554,6 +555,18 @@ message SMGuildMemberSetJob
repeated MFStringTuple chged_members = 3; // values[0]: account_id values[1]: job
}
//
message CMGuildAgreeInvite
{
optional int64 guild_id = 1; //id
optional string user_sign = 2; //
}
message SMGuildAgreeInvite
{
optional int32 errcode = 1; //
optional string errmsg = 2; //
}
//
message CMSendChatMsg
{