From a0250f9d854e49383d8ab850362603fca8057b7a Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Thu, 24 Dec 2020 11:01:19 +0800 Subject: [PATCH] 1 --- server/imserver/metamgr.cc | 14 ++++++++++++++ server/imserver/metamgr.h | 3 +++ 2 files changed, 17 insertions(+) diff --git a/server/imserver/metamgr.cc b/server/imserver/metamgr.cc index 274bbdd..eddc9f0 100644 --- a/server/imserver/metamgr.cc +++ b/server/imserver/metamgr.cc @@ -34,8 +34,10 @@ class MetaDataLoader public: std::list guild_meta_list; std::list guild_list; + std::list text_meta_list; std::map guild_hash; + std::map text_hash; std::map > dirty_words; @@ -63,6 +65,7 @@ public: res_path = "../res/"; } f8::ReadCsvMetaFile(res_path + "Clan@Clan.csv", guild_meta_list); + f8::ReadCsvMetaFile(res_path + "text@text.csv", text_meta_list); LoadDirtyWordTable(); BindToMetaData(); Check(); @@ -102,6 +105,11 @@ private: item.Init(); guild_hash[item.i->grade()] = &item; } + + for (auto& meta : text_meta_list) { + text_hash[meta.textid()] = meta.text(); + } + } private: @@ -169,3 +177,9 @@ std::string MetaMgr::ReplaceDirtyWord(const std::string& text, char c) } return result; } + +std::string MetaMgr::GetText(const std::string& textid, const std::string& def_text) +{ + auto itr = loader_->text_hash.find(textid); + return itr != loader_->text_hash.end() ? itr->second : def_text; +} diff --git a/server/imserver/metamgr.h b/server/imserver/metamgr.h index b1c1024..64757df 100644 --- a/server/imserver/metamgr.h +++ b/server/imserver/metamgr.h @@ -2,6 +2,8 @@ #include "metadata.h" +#define TEXT(textid, def_text) MetaMgr::Instance()->GetText(#textid, #def_text) + class MetaDataLoader; class MetaMgr : public a8::Singleton { @@ -18,6 +20,7 @@ class MetaMgr : public a8::Singleton MetaData::Guild* GetGuild(int guild_lv); std::string ReplaceDirtyWord(const std::string& text, char c); + std::string GetText(const std::string& textid, const std::string& def_text=""); private: MetaDataLoader* loader_ = nullptr;