added amb786 - sm_banip can take a user name, redid access permissions, and prevented a bad mistake
authorDavid Anderson <dvander@alliedmods.net>
Sun Aug 26 19:41:05 2007 +0000 (2007-08-26)
changeset 137476f2c00429b1
parent 1373 4dc1bc06a66e
child 1375 b7acfca8070d
added amb786 - sm_banip can take a user name, redid access permissions, and prevented a bad mistake
plugins/basecommands.sp
plugins/include/admin.inc
translations/common.phrases.txt
     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  }