diff --git a/server/imserver/guild.cc b/server/imserver/guild.cc index 7105aad..0a30be3 100644 --- a/server/imserver/guild.cc +++ b/server/imserver/guild.cc @@ -139,6 +139,10 @@ void Guild::_CMGuildAgree(f8::MsgHdr& hdr, const cs::CMGuildAgree& msg) forward_msg->context(), respmsg); if (!GetMember(forward_msg->context().user_info().base_data().account_id())) { + GuildMember* member = new GuildMember(); + TypeConvert::Convert(forward_msg->context().user_info().base_data(), *member); + member_hash_[member->account_id] = member; + GenSortedMembers(); } } diff --git a/server/imserver/typeconvert.cc b/server/imserver/typeconvert.cc index dee25e1..c455876 100644 --- a/server/imserver/typeconvert.cc +++ b/server/imserver/typeconvert.cc @@ -118,6 +118,20 @@ void TypeConvert::Convert(const ss::MFBaseUserDataDB& base_data_pb, GuildMember& member.data_version1 = base_data_pb.base_data_version(); } +void TypeConvert::Convert(const cs::MFBaseUserData& base_data_pb, GuildMember& member) +{ + member.account_id = base_data_pb.account_id(); + member.nickname = base_data_pb.nickname(); + member.avatar_url = base_data_pb.avatar_url(); + member.sex = base_data_pb.sex(); + member.last_login_time = base_data_pb.last_login_time(); + member.guild_job = base_data_pb.guild_job(); + member.user_value1 = base_data_pb.user_value1(); + member.user_value2 = base_data_pb.user_value2(); + member.user_value3 = base_data_pb.user_value3(); + member.data_version1 = base_data_pb.base_data_version(); +} + void TypeConvert::Convert(const cs::MFBaseUserData& base_data_pb, BaseUserData& base_data) { base_data.account_id = base_data_pb.account_id(); diff --git a/server/imserver/typeconvert.h b/server/imserver/typeconvert.h index 0f27e57..ee8c6e7 100644 --- a/server/imserver/typeconvert.h +++ b/server/imserver/typeconvert.h @@ -29,6 +29,7 @@ class TypeConvert static void Convert(const GuildMember& member, ss::MFBaseUserDataDB& base_data_pb); static void Convert(const ss::MFBaseUserDataDB& base_data_pb, GuildMember& member); static void Convert(const GuildMember& member, cs::MFBaseUserData& base_data_pb); + static void Convert(const cs::MFBaseUserData& base_data_pb, GuildMember& member); static void Convert(const cs::MFBaseUserData& base_data_pb, BaseUserData& base_data); static void Convert(const BaseUserData& base_data, cs::MFBaseUserData& base_data_pb);