summaryrefslogtreecommitdiff
path: root/src/account-server/storage.cpp
diff options
context:
space:
mode:
authorPhilipp Sehmisch <mana@crushnet.org>2011-03-18 20:14:57 +0100
committerPhilipp Sehmisch <mana@crushnet.org>2011-03-18 20:15:49 +0100
commitc4f3d184abeda63abcfdaa386b4846e94bfed1f9 (patch)
tree0882b3a10184236d88d0ea8b4ed69cd1c39e2ba9 /src/account-server/storage.cpp
parent9344a79233882ac278b3812b91b6edf874ef5d16 (diff)
downloadmanaserv-c4f3d184abeda63abcfdaa386b4846e94bfed1f9.tar.gz
manaserv-c4f3d184abeda63abcfdaa386b4846e94bfed1f9.tar.bz2
manaserv-c4f3d184abeda63abcfdaa386b4846e94bfed1f9.tar.xz
manaserv-c4f3d184abeda63abcfdaa386b4846e94bfed1f9.zip
Improved @ban command
When banning a character, the game master now sets a time unit (m, h, d, w or y for minutes, hours, days, weeks or years) after the duration. Ban durations longer than 2^16 minutes are now possible. The banned character is now kicked automatically and the banning character receives a feedback chat message. Reviewed-by: Thorbjorn
Diffstat (limited to 'src/account-server/storage.cpp')
-rw-r--r--src/account-server/storage.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/account-server/storage.cpp b/src/account-server/storage.cpp
index 333f3aaf..fdcb1cd9 100644
--- a/src/account-server/storage.cpp
+++ b/src/account-server/storage.cpp
@@ -1649,6 +1649,7 @@ void Storage::banCharacter(int id, int duration)
{
try
{
+ // check the account of the character
std::ostringstream query;
query << "select user_id from " << CHARACTERS_TBL_NAME
<< " where id = '" << id << "';";
@@ -1659,10 +1660,12 @@ void Storage::banCharacter(int id, int duration)
return;
}
+ uint64_t bantime = (uint64_t)time(0) + (uint64_t)duration * 60u;
+ // ban the character
std::ostringstream sql;
sql << "update " << ACCOUNTS_TBL_NAME
<< " set level = '" << AL_BANNED << "', banned = '"
- << time(0) + duration * 60
+ << bantime
<< "' where id = '" << info(0, 0) << "';";
mDb->execSql(sql.str());
}