aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/base/world_database.sql2
-rw-r--r--sql/updates/world/2011_05_09_00_trinity_string.sql1
-rwxr-xr-xsrc/server/game/Chat/Commands/Level2.cpp21
-rwxr-xr-xsrc/server/game/Miscellaneous/Language.h2
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,