diff options
| author | Shocker <shocker@freakz.ro> | 2011-05-09 18:00:42 +0300 |
|---|---|---|
| committer | Shocker <shocker@freakz.ro> | 2011-05-09 18:00:42 +0300 |
| commit | 2703c6a38be44dd79b046648e4d3b6569aba50aa (patch) | |
| tree | 4f2f691c276be6363bafce48145c1de062a02cfa /src | |
| parent | 3fa651ce199e3e9fe65328c5c8fb9b916eb5647b (diff) | |
Core/Commands: Include mute/ban info in .pinfo command
Diffstat (limited to 'src')
| -rwxr-xr-x | src/server/game/Chat/Commands/Level2.cpp | 21 | ||||
| -rwxr-xr-x | src/server/game/Miscellaneous/Language.h | 2 |
2 files changed, 21 insertions, 2 deletions
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, |
