diff options
| author | Marius "Teelevision" Neugebauer <marius@teele.eu> | 2014-04-13 17:54:27 +0200 |
|---|---|---|
| committer | Marius "Teelevision" Neugebauer <marius@teele.eu> | 2014-04-13 17:54:27 +0200 |
| commit | 46e074ce016b4ba8733eca53aa32b5a32c9cb793 (patch) | |
| tree | 56c590382f9b13ae18babd143f51de4f662a89ca | |
| parent | 929931a5c782d48ead69a548311cd0bea8b83ac2 (diff) | |
| download | zcatch-46e074ce016b4ba8733eca53aa32b5a32c9cb793.tar.gz zcatch-46e074ce016b4ba8733eca53aa32b5a32c9cb793.zip | |
the time of the ban command can be left out
| -rw-r--r-- | src/engine/server/server.cpp | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/src/engine/server/server.cpp b/src/engine/server/server.cpp index 2d6a16da..77345471 100644 --- a/src/engine/server/server.cpp +++ b/src/engine/server/server.cpp @@ -258,10 +258,40 @@ int CServerBan::BanRange(const CNetRange *pRange, int Seconds, const char *pReas void CServerBan::ConBanExt(IConsole::IResult *pResult, void *pUser) { CServerBan *pThis = static_cast<CServerBan *>(pUser); + const int defaultMinutes = 30; const char *pStr = pResult->GetString(0); - int Minutes = pResult->NumArguments()>1 ? clamp(pResult->GetInteger(1), 0, 44640) : 30; + int Minutes = pResult->NumArguments()>1 ? clamp(pResult->GetInteger(1), 0, 44640) : defaultMinutes; const char *pReason = pResult->NumArguments()>2 ? pResult->GetString(2) : "No reason given"; + + // check if time was given or a reason instead + const char *time; + if(pResult->NumArguments() > 1) + { + // check if number given + time = pResult->GetString(1); + int i = str_length(time) - 1; + for(; i >= 0; --i) + if(time[i] < '0' || '9' < time[i]) + break; + // in case that no number was given + if(!(str_length(time) && i < 0)) + { + Minutes = defaultMinutes; + if(pResult->NumArguments() > 2) + { // add to reason + char *newReason = (char*)malloc(sizeof(char) * (str_length(time) + str_length(pReason) + 2)); + mem_copy(newReason, time, sizeof(char) * str_length(time)); + newReason[str_length(time)] = ' '; + mem_copy(newReason + str_length(time) + 1, pReason, sizeof(char) * (str_length(pReason) + 1)); + pReason = newReason; + } + else + { // the time is the actual reason + pReason = time; + } + } + } int CID = -1; if(StrAllnum(pStr)) |