diff options
| -rw-r--r-- | sql/base/world_database.sql | 2 | ||||
| -rw-r--r-- | sql/updates/world/2011_05_09_00_trinity_string.sql | 1 | ||||
| -rwxr-xr-x | src/server/game/Chat/Commands/Level2.cpp | 21 | ||||
| -rwxr-xr-x | src/server/game/Miscellaneous/Language.h | 2 |
4 files changed, 23 insertions, 3 deletions
diff --git a/sql/base/world_database.sql b/sql/base/world_database.sql index 8dda19d69ca..e2a337bc9a4 100644 --- a/sql/base/world_database.sql +++ b/sql/base/world_database.sql @@ -27356,7 +27356,7 @@ INSERT INTO `trinity_string` (`entry`,`content_default`,`content_loc1`,`content_ (547, 'InstanceID: %u', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), (548, 'Player%s %s (guid: %u) Account: %s (id: %u) Email: %s GMLevel: %u Last IP: %s Last login: %s Latency: %ums', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), (549, 'Race: %s Class: %s Played time: %s Level: %u Money: %ug%us%uc', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), -(550, 'Command .pinfo doesn''t support ''rep'' option for offline players.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(550, 'Mute time remaining: %s, Ban time remaining: %s', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), (551, '%s has explored all zones now.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), (552, '%s has no more explored zones.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), (553, '%s has explored all zones for you.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), diff --git a/sql/updates/world/2011_05_09_00_trinity_string.sql b/sql/updates/world/2011_05_09_00_trinity_string.sql new file mode 100644 index 00000000000..4050d1e600b --- /dev/null +++ b/sql/updates/world/2011_05_09_00_trinity_string.sql @@ -0,0 +1 @@ +UPDATE `trinity_string` SET `content_default` = 'Mute time remaining: %s, Ban time remaining: %s' WHERE `entry` = 550; diff --git a/src/server/game/Chat/Commands/Level2.cpp b/src/server/game/Chat/Commands/Level2.cpp index 2aa29687a39..c959853d763 100755 --- a/src/server/game/Chat/Commands/Level2.cpp +++ b/src/server/game/Chat/Commands/Level2.cpp @@ -246,6 +246,8 @@ bool ChatHandler::HandlePInfoCommand(const char* args) uint32 latency = 0; uint8 race; uint8 Class; + int64 muteTime = 0; + int64 banTime = -1; // get additional information from Player object if (target) @@ -261,6 +263,7 @@ bool ChatHandler::HandlePInfoCommand(const char* args) latency = target->GetSession()->GetLatency(); race = target->getRace(); Class = target->getClass(); + muteTime = target->GetSession()->m_muteTime; } // get additional information from DB else @@ -289,7 +292,7 @@ bool ChatHandler::HandlePInfoCommand(const char* args) uint32 security = 0; std::string last_login = GetTrinityString(LANG_ERROR); - QueryResult result = LoginDatabase.PQuery("SELECT a.username, aa.gmlevel, a.email, a.last_ip, a.last_login " + QueryResult result = LoginDatabase.PQuery("SELECT a.username, aa.gmlevel, a.email, a.last_ip, a.last_login, a.mutetime " "FROM account a " "LEFT JOIN account_access aa " "ON (a.id = aa.id) " @@ -300,6 +303,7 @@ bool ChatHandler::HandlePInfoCommand(const char* args) username = fields[0].GetString(); security = fields[1].GetUInt32(); email = fields[2].GetString(); + muteTime = fields[5].GetUInt64(); if (email.empty()) email = "-"; @@ -320,6 +324,21 @@ bool ChatHandler::HandlePInfoCommand(const char* args) PSendSysMessage(LANG_PINFO_ACCOUNT, (target?"":GetTrinityString(LANG_OFFLINE)), nameLink.c_str(), GUID_LOPART(target_guid), username.c_str(), accId, email.c_str(), security, last_ip.c_str(), last_login.c_str(), latency); + if (QueryResult result = LoginDatabase.PQuery("SELECT unbandate, bandate = unbandate FROM account_banned WHERE id = '%u' AND active ORDER BY bandate ASC LIMIT 1", accId)) + { + Field * fields = result->Fetch(); + banTime = fields[1].GetBool() ? 0 : fields[0].GetUInt64(); + } + else if (QueryResult result = CharacterDatabase.PQuery("SELECT unbandate, bandate = unbandate FROM character_banned WHERE guid = '%u' AND active ORDER BY bandate ASC LIMIT 1", GUID_LOPART(target_guid))) + { + Field * fields = result->Fetch(); + banTime = fields[1].GetBool() ? 0 : fields[0].GetUInt64(); + } + + muteTime = muteTime - time(NULL); + if (muteTime > 0 || banTime >= 0) + PSendSysMessage(LANG_PINFO_MUTE_BAN, muteTime > 0 ? secsToTimeString(muteTime, true).c_str() : "---", !banTime ? "perm." : (banTime > 0 ? secsToTimeString(banTime - time(NULL), true).c_str() : "---")); + std::string race_s, Class_s; switch(race) { diff --git a/src/server/game/Miscellaneous/Language.h b/src/server/game/Miscellaneous/Language.h index bff49fe385f..41458ecaf55 100755 --- a/src/server/game/Miscellaneous/Language.h +++ b/src/server/game/Miscellaneous/Language.h @@ -512,7 +512,7 @@ enum TrinityStrings LANG_PINFO_ACCOUNT = 548, LANG_PINFO_LEVEL = 549, - LANG_PINFO_NO_REP = 550, + LANG_PINFO_MUTE_BAN = 550, LANG_YOU_SET_EXPLORE_ALL = 551, LANG_YOU_SET_EXPLORE_NOTHING = 552, |
