1
This commit is contained in:
parent
7de769b4b6
commit
a7fc4d6866
@ -713,6 +713,45 @@ void Guild::_CMGuildMemberSetJob(f8::MsgHdr& hdr, const cs::CMGuildMemberSetJob&
|
|||||||
SaveToDB();
|
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)
|
int Guild::GetMemberJob(const std::string& account_id)
|
||||||
{
|
{
|
||||||
auto itr = member_job_hash_.find(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 _CMGuildApplyList(f8::MsgHdr& hdr, const cs::CMGuildApplyList& msg);
|
||||||
void _CMGuildLog(f8::MsgHdr& hdr, const cs::CMGuildLog& msg);
|
void _CMGuildLog(f8::MsgHdr& hdr, const cs::CMGuildLog& msg);
|
||||||
void _CMGuildMemberSetJob(f8::MsgHdr& hdr, const cs::CMGuildMemberSetJob& 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_; }
|
long long GuildId() { return guild_id_; }
|
||||||
int GetMemberJob(const std::string& account_id);
|
int GetMemberJob(const std::string& account_id);
|
||||||
|
@ -121,6 +121,7 @@ void HandlerMgr::RegisterNetMsgHandlers()
|
|||||||
RegisterNetMsgHandler(&wsmsghandler, &Player::_CMGuildApplyList);
|
RegisterNetMsgHandler(&wsmsghandler, &Player::_CMGuildApplyList);
|
||||||
RegisterNetMsgHandler(&wsmsghandler, &Player::_CMGuildLog);
|
RegisterNetMsgHandler(&wsmsghandler, &Player::_CMGuildLog);
|
||||||
RegisterNetMsgHandler(&wsmsghandler, &Player::_CMGuildMemberSetJob);
|
RegisterNetMsgHandler(&wsmsghandler, &Player::_CMGuildMemberSetJob);
|
||||||
|
RegisterNetMsgHandler(&wsmsghandler, &Player::_CMGuildAgreeInvite);
|
||||||
|
|
||||||
RegisterNetMsgHandler(&guild_msghandler, &Guild::_CMGuildInfo);
|
RegisterNetMsgHandler(&guild_msghandler, &Guild::_CMGuildInfo);
|
||||||
RegisterNetMsgHandler(&guild_msghandler, &Guild::_CMGuildJoin);
|
RegisterNetMsgHandler(&guild_msghandler, &Guild::_CMGuildJoin);
|
||||||
@ -134,6 +135,7 @@ void HandlerMgr::RegisterNetMsgHandlers()
|
|||||||
RegisterNetMsgHandler(&guild_msghandler, &Guild::_CMGuildApplyList);
|
RegisterNetMsgHandler(&guild_msghandler, &Guild::_CMGuildApplyList);
|
||||||
RegisterNetMsgHandler(&guild_msghandler, &Guild::_CMGuildLog);
|
RegisterNetMsgHandler(&guild_msghandler, &Guild::_CMGuildLog);
|
||||||
RegisterNetMsgHandler(&guild_msghandler, &Guild::_CMGuildMemberSetJob);
|
RegisterNetMsgHandler(&guild_msghandler, &Guild::_CMGuildMemberSetJob);
|
||||||
|
RegisterNetMsgHandler(&guild_msghandler, &Guild::_CMGuildAgreeInvite);
|
||||||
}
|
}
|
||||||
|
|
||||||
void HandlerMgr::ProcGMMsg(unsigned long saddr, int sockhandle,
|
void HandlerMgr::ProcGMMsg(unsigned long saddr, int sockhandle,
|
||||||
|
@ -37,6 +37,7 @@ void Player::Init()
|
|||||||
(unsigned char*)myself.base_data.account_id.data(),
|
(unsigned char*)myself.base_data.account_id.data(),
|
||||||
myself.base_data.account_id.size()
|
myself.base_data.account_id.size()
|
||||||
);
|
);
|
||||||
|
user_sign_ = a8::openssl::md5(AccountId());
|
||||||
a8::Timer::Instance()->AddRepeatTimerAndAttach
|
a8::Timer::Instance()->AddRepeatTimerAndAttach
|
||||||
(
|
(
|
||||||
1000 * 3 + (rand() % 3000),
|
1000 * 3 + (rand() % 3000),
|
||||||
@ -976,6 +977,23 @@ void Player::_CMGuildMemberSetJob(f8::MsgHdr& hdr, const cs::CMGuildMemberSetJob
|
|||||||
ForwardGuildCMMsg(hdr, GuildId());
|
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)
|
void Player::_SS_IM_FriendAgreeRequest(f8::MsgHdr& hdr, const ss::SS_IM_FriendAgreeRequest& msg)
|
||||||
{
|
{
|
||||||
if (!GetFriendById(msg.context().user_info().base_data().account_id())) {
|
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)
|
void Player::FillSMLogin(cs::SMLogin& respmsg)
|
||||||
{
|
{
|
||||||
FillMFUserInfo(respmsg.mutable_account_info()->mutable_user_info());
|
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)
|
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 _CMGuildApplyList(f8::MsgHdr& hdr, const cs::CMGuildApplyList& msg);
|
||||||
void _CMGuildLog(f8::MsgHdr& hdr, const cs::CMGuildLog& msg);
|
void _CMGuildLog(f8::MsgHdr& hdr, const cs::CMGuildLog& msg);
|
||||||
void _CMGuildMemberSetJob(f8::MsgHdr& hdr, const cs::CMGuildMemberSetJob& 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_FriendAgreeRequest(f8::MsgHdr& hdr, const ss::SS_IM_FriendAgreeRequest& msg);
|
||||||
void _SS_IM_FriendDeleteRequest(f8::MsgHdr& hdr, const ss::SS_IM_FriendDeleteRequest& 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_;
|
std::map<long long, Event> event_hash_;
|
||||||
int red_point_flags_ = 0;
|
int red_point_flags_ = 0;
|
||||||
std::set<std::string> exclude_account_ids_;
|
std::set<std::string> exclude_account_ids_;
|
||||||
|
std::string user_sign_;
|
||||||
|
|
||||||
std::map<std::string, Friend*> friend_hash_;
|
std::map<std::string, Friend*> friend_hash_;
|
||||||
std::map<std::string, Friend*> black_hash_;
|
std::map<std::string, Friend*> black_hash_;
|
||||||
|
@ -41,6 +41,7 @@ enum CMMessageId_e
|
|||||||
_CMGuildLog = 243;
|
_CMGuildLog = 243;
|
||||||
_CMGuildMemberSetJob = 244;
|
_CMGuildMemberSetJob = 244;
|
||||||
_CMGuildRefuse = 245;
|
_CMGuildRefuse = 245;
|
||||||
|
_CMGuildAgreeInvite = 246;
|
||||||
_CMGuildMsgEnd = 270;
|
_CMGuildMsgEnd = 270;
|
||||||
|
|
||||||
_CMTeamCreate = 301;
|
_CMTeamCreate = 301;
|
||||||
@ -89,6 +90,7 @@ enum SMMessageId_e
|
|||||||
_SMGuildLog = 243;
|
_SMGuildLog = 243;
|
||||||
_SMGuildMemberSetJob = 244;
|
_SMGuildMemberSetJob = 244;
|
||||||
_SMGuildRefuse = 245;
|
_SMGuildRefuse = 245;
|
||||||
|
_SMGuildAgreeInvite = 246;
|
||||||
_SMGuildMsgEnd = 270;
|
_SMGuildMsgEnd = 270;
|
||||||
|
|
||||||
_SMTeamCreate = 301;
|
_SMTeamCreate = 301;
|
||||||
|
@ -61,6 +61,7 @@ message MFUserTempCustomData
|
|||||||
message MFAccountInfo
|
message MFAccountInfo
|
||||||
{
|
{
|
||||||
optional MFUserInfo user_info = 1; //用户数据
|
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
|
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
|
message CMSendChatMsg
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user