basecommands.sp: Removed plugin.basecommands.txt, switched to FindTarget stock, and added a 2 minute IP ban to sm_ban to stop retry spammers.

--HG--
extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%401201
This commit is contained in:
Michael McKoy 2007-07-27 22:30:05 +00:00
parent ead84293c8
commit 65dc62d818

View File

@ -40,7 +40,7 @@ new Handle:hBanRemoved = INVALID_HANDLE;
public OnPluginStart()
{
LoadTranslations("common.phrases");
LoadTranslations("plugin.basecommands");
RegAdminCmd("sm_kick", Command_Kick, ADMFLAG_KICK, "sm_kick <#userid|name> [reason]");
RegAdminCmd("sm_map", Command_Map, ADMFLAG_CHANGEMAP, "sm_map <map>");
RegAdminCmd("sm_rcon", Command_Rcon, ADMFLAG_RCON, "sm_rcon <args>");
@ -211,21 +211,9 @@ public Action:Command_Ban(client, args)
decl String:arg[65];
GetCmdArg(1, arg, sizeof(arg));
new clients[2];
new numClients = SearchForClients(arg, clients, 2);
if (numClients == 0)
new target = FindTarget(client, arg, true);
if (target == -1)
{
ReplyToCommand(client, "[SM] %t", "No matching client");
return Plugin_Handled;
} else if (numClients > 1) {
ReplyToCommand(client, "[SM] %t", "More than one client matches", arg);
return Plugin_Handled;
} else if (!CanUserTarget(client, clients[0])) {
ReplyToCommand(client, "[SM] %t", "Unable to target");
return Plugin_Handled;
} else if (IsFakeClient(clients[0])) {
ReplyToCommand(client, "[SM] %t", "Cannot target bot");
return Plugin_Handled;
}
@ -233,6 +221,7 @@ public Action:Command_Ban(client, args)
GetCmdArg(2, s_time, sizeof(s_time));
new time = StringToInt(s_time);
new iptime = (time < 2 ? time : 2);
decl String:reason[128];
if (args >= 3)
@ -242,15 +231,16 @@ public Action:Command_Ban(client, args)
reason[0] = '\0';
}
decl String:authid[64];
GetClientAuthString(clients[0], authid, sizeof(authid));
GetClientName(clients[0], arg, sizeof(arg));
decl String:authid[64], String:ip[50];
GetClientAuthString(target, authid, sizeof(authid));
GetClientIP(target, ip, sizeof(ip));
GetClientName(target, arg, sizeof(arg));
/* Fire the ban forward */
new Action:act = Plugin_Continue;
Call_StartForward(hBanForward);
Call_PushCell(client);
Call_PushCell(clients[0]);
Call_PushCell(target);
Call_PushCell(time);
Call_PushString(reason);
Call_Finish(act);
@ -273,7 +263,7 @@ public Action:Command_Ban(client, args)
ShowActivity(client, "%t", "Banned player reason", arg, time, reason);
}
}
LogMessage("\"%L\" banned \"%L\" (minutes \"%d\") (reason \"%s\")", client, clients[0], time, reason);
LogMessage("\"%L\" banned \"%L\" (minutes \"%d\") (reason \"%s\")", client, target, time, reason);
}
if (act < Plugin_Stop)
@ -283,8 +273,9 @@ public Action:Command_Ban(client, args)
strcopy(reason, sizeof(reason), "Banned");
}
ServerCommand("banip %d %s", iptime, ip);
ServerCommand("banid %d %s", time, authid);
KickClient(clients[0], "%s", reason);
KickClient(target, "%s", reason);
if (time == 0)
{
@ -577,24 +568,16 @@ public Action:Command_Kick(client, args)
decl String:arg[65];
GetCmdArg(1, arg, sizeof(arg));
new clients[2];
new numClients = SearchForClients(arg, clients, 2);
if (numClients == 0)
new target = FindTarget(client, arg);
if (target == -1)
{
ReplyToCommand(client, "[SM] %t", "No matching client");
return Plugin_Handled;
} else if (numClients > 1) {
ReplyToCommand(client, "[SM] %t", "More than one client matches", arg);
return Plugin_Handled;
} else if (!CanUserTarget(client, clients[0])) {
ReplyToCommand(client, "[SM] %t", "Unable to target");
return Plugin_Handled;
}
decl String:name[65];
GetClientName(clients[0], name, sizeof(name));
GetClientName(target, name, sizeof(name));
decl String:reason[256];
if (args < 2)
@ -607,9 +590,9 @@ public Action:Command_Kick(client, args)
ShowActivity(client, "%t", "Kicked player", name);
LogMessage("\"%L\" kicked \"%L\" (reason \"%s\")", client, clients[0], reason);
LogMessage("\"%L\" kicked \"%L\" (reason \"%s\")", client, target, reason);
KickClient(clients[0], "%s", reason);
KickClient(target, "%s", reason);
return Plugin_Handled;
}