1.1 --- a/plugins/basecommands.sp Sun Aug 26 19:20:36 2007 +0000
1.2 +++ b/plugins/basecommands.sp Sun Aug 26 19:41:05 2007 +0000
1.3 @@ -61,7 +61,7 @@
1.4 RegAdminCmd("sm_ban", Command_Ban, ADMFLAG_BAN, "sm_ban <#userid|name> <minutes|0> [reason]");
1.5 RegAdminCmd("sm_unban", Command_Unban, ADMFLAG_UNBAN, "sm_unban <steamid>");
1.6 RegAdminCmd("sm_addban", Command_AddBan, ADMFLAG_RCON, "sm_addban <time> <steamid> [reason]");
1.7 - RegAdminCmd("sm_banip", Command_BanIp, ADMFLAG_RCON, "sm_banip <time> <ip> [reason]");
1.8 + RegAdminCmd("sm_banip", Command_BanIp, ADMFLAG_BAN, "sm_banip <time> <ip|#userid|name> [reason]");
1.9 RegAdminCmd("sm_reloadadmins", Command_ReloadAdmins, ADMFLAG_BAN, "sm_reloadadmins");
1.10 RegAdminCmd("sm_cancelvote", Command_CancelVote, ADMFLAG_VOTE, "sm_cancelvote");
1.11
1.12 @@ -86,13 +86,47 @@
1.13 {
1.14 if (args < 2)
1.15 {
1.16 - ReplyToCommand(client, "[SM] Usage: sm_banip <time> <ip> [reason]");
1.17 + ReplyToCommand(client, "[SM] Usage: sm_banip <time> <ip|#userid|name> [reason]");
1.18 return Plugin_Handled;
1.19 }
1.20
1.21 decl String:arg[50], String:time[20];
1.22 GetCmdArg(1, time, sizeof(time));
1.23 GetCmdArg(2, arg, sizeof(arg));
1.24 +
1.25 + if (StrEqual(arg, "0"))
1.26 + {
1.27 + ReplyToCommand(client, "[SM] %t", "Cannot ban that IP");
1.28 + return Plugin_Handled;
1.29 + }
1.30 +
1.31 + new clients[1];
1.32 + new numClients = SearchForClients(arg, clients, 1);
1.33 +
1.34 + new bool:has_rcon;
1.35 +
1.36 + if (client == 0 || (client == 1 && !IsDedicatedServer()))
1.37 + {
1.38 + has_rcon = true;
1.39 + } else {
1.40 + new AdminId:id = GetUserAdmin(client);
1.41 + has_rcon = (id == INVALID_ADMIN_ID) ? false : GetAdminFlag(id, Admin_RCON);
1.42 + }
1.43 +
1.44 + new bool:hit_client = false;
1.45 + if (numClients == 1
1.46 + && !IsFakeClient(clients[0])
1.47 + && (has_rcon || CanUserTarget(client, clients[0])))
1.48 + {
1.49 + GetClientIP(clients[0], arg, sizeof(arg));
1.50 + hit_client = true;
1.51 + }
1.52 +
1.53 + if (!hit_client && !has_rcon)
1.54 + {
1.55 + ReplyToCommand(client, "[SM] %t", "No Access");
1.56 + return Plugin_Handled;
1.57 + }
1.58
1.59 new minutes = StringToInt(time);
1.60
1.61 @@ -118,7 +152,7 @@
1.62
1.63 if (act < Plugin_Stop)
1.64 {
1.65 - ServerCommand("banip %d %s", minutes, arg);
1.66 + ServerCommand("addip %d %s", minutes, arg);
1.67 ServerCommand("writeip");
1.68 }
1.69