1
This commit is contained in:
parent
7de769b4b6
commit
a7fc4d6866
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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,
|
||||
|
@ -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)
|
||||
|
@ -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_;
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user