diff --git a/sql/mangos.sql b/sql/mangos.sql index e33a6660b..c487d60b7 100644 --- a/sql/mangos.sql +++ b/sql/mangos.sql @@ -24,7 +24,7 @@ CREATE TABLE `db_version` ( `version` varchar(120) default NULL, `creature_ai_version` varchar(120) default NULL, `cache_id` int(10) default '0', - `required_10131_01_mangos_spell_bonus_data` bit(1) default NULL + `required_10148_01_mangos_mangos_string` bit(1) default NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Used DB version notes'; -- @@ -3052,6 +3052,8 @@ INSERT INTO `mangos_string` VALUES (59,'Using creature EventAI: %s',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (61,'Username: ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (62,'Password: ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(63, "Accepts whispers", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(64, "Doesn't accept whispers", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), (100,'Global notify: ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (101,'Map: %u (%s) Zone: %u (%s) Area: %u (%s) Phase: %u\nX: %f Y: %f Z: %f Orientation: %f\ngrid[%u,%u]cell[%u,%u] InstanceID: %u\n ZoneX: %f ZoneY: %f\nGroundZ: %f FloorZ: %f Have height data (Map: %u VMap: %u)',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (102,'%s is already being teleported.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), diff --git a/sql/updates/10148_01_mangos_mangos_string.sql b/sql/updates/10148_01_mangos_mangos_string.sql new file mode 100644 index 000000000..ed8413ddf --- /dev/null +++ b/sql/updates/10148_01_mangos_mangos_string.sql @@ -0,0 +1,6 @@ +ALTER TABLE db_version CHANGE COLUMN required_10131_01_mangos_spell_bonus_data required_10148_01_mangos_mangos_string bit; + +DELETE FROM mangos_string WHERE entry IN (63, 64); +INSERT INTO mangos_string () VALUES +(63, "Accepts whispers", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(64, "Doesn't accept whispers", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); \ No newline at end of file diff --git a/sql/updates/Makefile.am b/sql/updates/Makefile.am index 4b0c5ca04..214c38534 100644 --- a/sql/updates/Makefile.am +++ b/sql/updates/Makefile.am @@ -98,6 +98,7 @@ pkgdata_DATA = \ 10119_01_mangos_creature_model_info.sql \ 10125_01_mangos_mangos_string.sql \ 10131_01_mangos_spell_bonus_data.sql \ + 10148_01_mangos_mangos_string.sql \ README ## Additional files to include when running 'make dist' @@ -176,4 +177,5 @@ EXTRA_DIST = \ 10119_01_mangos_creature_model_info.sql \ 10125_01_mangos_mangos_string.sql \ 10131_01_mangos_spell_bonus_data.sql \ + 10148_01_mangos_mangos_string.sql \ README diff --git a/src/game/Language.h b/src/game/Language.h index 78c9fb607..234562f6a 100644 --- a/src/game/Language.h +++ b/src/game/Language.h @@ -86,7 +86,9 @@ enum MangosStrings //LANG_RA_BUSY = 60, not used LANG_RA_USER = 61, LANG_RA_PASS = 62, - // Room for more level 0 63-99 not used + LANG_GM_ACCEPTS_WHISPER = 63, + LANG_GM_NO_WHISPER = 64, + // Room for more level 0 65-99 not used // level 1 chat LANG_GLOBAL_NOTIFY = 100, diff --git a/src/game/Level0.cpp b/src/game/Level0.cpp index cf7d93c25..e3181f8c3 100644 --- a/src/game/Level0.cpp +++ b/src/game/Level0.cpp @@ -151,7 +151,7 @@ bool ChatHandler::HandleSaveCommand(const char* /*args*/) bool ChatHandler::HandleGMListIngameCommand(const char* /*args*/) { - bool first = true; + std::list< std::pair > names; { HashMapHolder::ReadGuard g(HashMapHolder::GetLock()); @@ -161,19 +161,20 @@ bool ChatHandler::HandleGMListIngameCommand(const char* /*args*/) AccountTypes itr_sec = itr->second->GetSession()->GetSecurity(); if ((itr->second->isGameMaster() || (itr_sec > SEC_PLAYER && itr_sec <= (AccountTypes)sWorld.getConfig(CONFIG_UINT32_GM_LEVEL_IN_GM_LIST))) && (!m_session || itr->second->IsVisibleGloballyFor(m_session->GetPlayer()))) - { - if(first) - { - SendSysMessage(LANG_GMS_ON_SRV); - first = false; - } - - SendSysMessage(GetNameLink(itr->second).c_str()); - } + names.push_back(std::make_pair(GetNameLink(itr->second), itr->second->isAcceptWhispers())); } } - if(first) + if (!names.empty()) + { + SendSysMessage(LANG_GMS_ON_SRV); + + std::string accepts = GetMangosString(LANG_GM_ACCEPTS_WHISPER); + std::string not_accept = GetMangosString(LANG_GM_NO_WHISPER); + for(std::list >::const_iterator iter = names.begin(); iter != names.end(); ++iter) + PSendSysMessage("%s - %s", iter->first.c_str(), iter->second ? accepts.c_str() : not_accept.c_str()); + } + else SendSysMessage(LANG_GMS_NOT_LOGGED); return true; diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 4ffc22dce..111b3e258 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "10147" + #define REVISION_NR "10148" #endif // __REVISION_NR_H__ diff --git a/src/shared/revision_sql.h b/src/shared/revision_sql.h index eaf1f6a22..5af3bbcac 100644 --- a/src/shared/revision_sql.h +++ b/src/shared/revision_sql.h @@ -1,6 +1,6 @@ #ifndef __REVISION_SQL_H__ #define __REVISION_SQL_H__ #define REVISION_DB_CHARACTERS "required_10051_01_characters_character_aura" - #define REVISION_DB_MANGOS "required_10131_01_mangos_spell_bonus_data" + #define REVISION_DB_MANGOS "required_10148_01_mangos_mangos_string" #define REVISION_DB_REALMD "required_10008_01_realmd_realmd_db_version" #endif // __REVISION_SQL_H__