From: Samual Lenks Date: Mon, 24 Sep 2012 18:57:23 +0000 (-0400) Subject: Fix unban command to accept all kinds of syntaxes X-Git-Tag: xonotic-v0.7.0~215^2~1 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=bd7454d4acf49ae3f9c8d41a2702a6ffdf6577e6;p=xonotic%2Fxonotic-data.pk3dir.git Fix unban command to accept all kinds of syntaxes --- diff --git a/qcsrc/server/command/banning.qc b/qcsrc/server/command/banning.qc index ab58a4aee..eebadfa73 100644 --- a/qcsrc/server/command/banning.qc +++ b/qcsrc/server/command/banning.qc @@ -112,11 +112,40 @@ void BanCommand_unban(float request, float argc) switch(request) { case CMD_REQUEST_COMMAND: - { + { if(argv(1)) { - Ban_Delete(stof(argv(1))); - return; + float tmp_number = -1; + string tmp_string; + + if(substring(argv(1), 0, 1) == "#") + { + tmp_string = substring(argv(1), 1, -1); + + if(tmp_string != "") // is it all one token? like #1 + { + tmp_number = stof(tmp_string); + } + else if(argc > 2) // no, it's two tokens? # 1 + { + tmp_number = stof(argv(2)); + } + else + tmp_number = -1; + } + else // maybe it's ONLY a number? + { + tmp_number = stof(argv(1)); + + if((tmp_number == 0) && (argv(1) != "0")) + { tmp_number = -1; } + } + + if(tmp_number >= 0) + { + Ban_Delete(tmp_number); + return; + } } } @@ -228,4 +257,4 @@ float BanCommand(string command) } return FALSE; -} \ No newline at end of file +}