added amb786 - sm_banip can take a user name, redid access permissions, and prevented a bad mistake
added
amb786 - sm_banip can take a user name, redid access permissions, and prevented a bad mistake
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
2.1 --- a/plugins/include/admin.inc Sun Aug 26 19:20:36 2007 +0000
2.2 +++ b/plugins/include/admin.inc Sun Aug 26 19:41:05 2007 +0000
2.3 @@ -385,7 +385,7 @@
2.4 * @param mode Access mode to check.
2.5 * @return True if enabled, false otherwise.
2.6 */
2.7 -native bool:GetAdminFlag(AdminId:id, AdminFlag:flag, AdmAccessMode:mode);
2.8 +native bool:GetAdminFlag(AdminId:id, AdminFlag:flag, AdmAccessMode:mode=Access_Effective);
2.9
2.10 /**
2.11 * Returns the bitstring of access flags on an admin.
3.1 --- a/translations/common.phrases.txt Sun Aug 26 19:20:36 2007 +0000
3.2 +++ b/translations/common.phrases.txt Sun Aug 26 19:41:05 2007 +0000
3.3 @@ -221,4 +221,9 @@
3.4 {
3.5 "en" "Failed to query database."
3.6 }
3.7 +
3.8 + "Cannot ban that IP"
3.9 + {
3.10 + "en" "You cannot ban that IP address."
3.11 + }
3.12 }