This commit is contained in:
aozhiwei 2020-10-15 16:21:45 +08:00
parent 8ac9b19145
commit 2e78b16d4d

View File

@ -576,17 +576,35 @@ void Guild::_CMGuildChange(f8::MsgHdr& hdr, const cs::CMGuildChange& msg)
{
cs::SMGuildChange respmsg;
ss::SS_IM_ForwardGuildCMMsg *forward_msg = (ss::SS_IM_ForwardGuildCMMsg*)hdr.user_data;
GuildMember* sender = GetMember(forward_msg->context().user_info().base_data().account_id());
if (!sender) {
SendErrorMsg(hdr.socket_handle, forward_msg->context(), "服务器内部错误");
respmsg.set_errcode(2);
respmsg.set_errmsg("服务器内部错误");
GuildMgr::Instance()->ForwardGuildSMMsg(hdr.socket_handle,
forward_msg->context(),
respmsg);
return;
}
if (!(
GetMemberJob(sender->account_id) == kGuildOwner ||
GetMemberJob(sender->account_id) == kGuildAdmin
)) {
SendErrorMsg(hdr.socket_handle, forward_msg->context(), "权限不够");
respmsg.set_errcode(3);
respmsg.set_errmsg("权限不够");
GuildMgr::Instance()->ForwardGuildSMMsg(hdr.socket_handle,
forward_msg->context(),
respmsg);
return;
}
if ((!msg.has_guild_name() || msg.guild_name() == guild_name_) &&
(!msg.has_guild_declaration() || msg.guild_declaration() == guild_declaration_)) {
if (msg.has_guild_name()) {
guild_name_ = msg.guild_name();
}
if (msg.has_guild_badge()) {
guild_badge_ = msg.guild_badge();
}
if (msg.has_guild_declaration()) {
guild_declaration_ = msg.guild_declaration();
}
if (msg.has_join_unlimited()) {
join_unlimited_ = msg.join_unlimited();
}
@ -602,26 +620,6 @@ void Guild::_CMGuildChange(f8::MsgHdr& hdr, const cs::CMGuildChange& msg)
forward_msg->context(),
respmsg);
MarkDirty();
}
GuildMember* sender = GetMember(forward_msg->context().user_info().base_data().account_id());
if (!sender) {
SendErrorMsg(hdr.socket_handle, forward_msg->context(), "服务器内部错误");
respmsg.set_errcode(2);
respmsg.set_errmsg("服务器内部错误");
GuildMgr::Instance()->ForwardGuildSMMsg(hdr.socket_handle,
forward_msg->context(),
respmsg);
return;
}
if (!(
GetMemberJob(sender->account_id) == kGuildOwner)
) {
SendErrorMsg(hdr.socket_handle, forward_msg->context(), "权限不够");
respmsg.set_errcode(3);
respmsg.set_errmsg("权限不够");
GuildMgr::Instance()->ForwardGuildSMMsg(hdr.socket_handle,
forward_msg->context(),
respmsg);
return;
}