From bd7454d4acf49ae3f9c8d41a2702a6ffdf6577e6 Mon Sep 17 00:00:00 2001 From: Samual Lenks Date: Mon, 24 Sep 2012 14:57:23 -0400 Subject: [PATCH] Fix unban command to accept all kinds of syntaxes --- qcsrc/server/command/banning.qc | 37 +++++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-) 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 +} -- 2.39.2