plugins/basecommands.sp
author Scott Ehlert <ds@alliedmods.net>
Thu Jun 07 07:22:19 2007 +0000 (2007-06-07)
changeset 913 7c62d3c5d829
parent 910 153c052460af
child 917 2a9cf4e74620
permissions -rw-r--r--
Added anti-flood plugin.
Added some missing includes to sourcemod.inc
dvander@910
     1
/**
ds@913
     2
 * basecommands.sp
ds@913
     3
 * Implements basic admin commands.
dvander@910
     4
 * This file is part of SourceMod, Copyright (C) 2004-2007 AlliedModders LLC
dvander@910
     5
 *
dvander@910
     6
 * This program is free software; you can redistribute it and/or
dvander@910
     7
 * modify it under the terms of the GNU General Public License
dvander@910
     8
 * as published by the Free Software Foundation; either version 2
dvander@910
     9
 * of the License, or (at your option) any later version.
dvander@910
    10
 *
dvander@910
    11
 * This program is distributed in the hope that it will be useful,
dvander@910
    12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
dvander@910
    13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
dvander@910
    14
 * GNU General Public License for more details.
dvander@910
    15
 * 
dvander@910
    16
 * You should have received a copy of the GNU General Public License
dvander@910
    17
 * along with this program; if not, write to the Free Software
dvander@910
    18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
ds@913
    19
 *
ds@913
    20
 * Version: $Id$
dvander@910
    21
 */
dvander@910
    22
dvander@910
    23
#include <sourcemod>
dvander@910
    24
ds@913
    25
#pragma semicolon 1
ds@913
    26
dvander@910
    27
public Plugin:myinfo = 
dvander@910
    28
{
dvander@910
    29
	name = "Basic Commands",
dvander@910
    30
	author = "AlliedModders LLC",
dvander@910
    31
	description = "Basic Admin Commands",
dvander@910
    32
	version = SOURCEMOD_VERSION,
dvander@910
    33
	url = "http://www.sourcemod.net/"
dvander@910
    34
};
dvander@910
    35
dvander@910
    36
public OnPluginStart()
dvander@910
    37
{
dvander@910
    38
	LoadTranslations("core.cfg");
dvander@910
    39
	RegAdminCmd("sm_kick", Command_Kick, ADMFLAG_KICK, "sm_kick <#userid|name> [reason]");
dvander@910
    40
}
dvander@910
    41
dvander@910
    42
public Action:Command_Kick(client, args)
dvander@910
    43
{
dvander@910
    44
	if (args < 1)
dvander@910
    45
	{
dvander@910
    46
		ReplyToCommand(client, "[SM] Usage: sm_kick <#userid|name> [reason]");
dvander@910
    47
		return Plugin_Handled;
dvander@910
    48
	}
dvander@910
    49
	
dvander@910
    50
	new String:arg[65];
dvander@910
    51
	GetCmdArg(1, arg, sizeof(arg));
dvander@910
    52
	
dvander@910
    53
	new clients[2];
dvander@910
    54
	new numClients = SearchForClients(arg, clients, 2);
dvander@910
    55
	
dvander@910
    56
	if (numClients == 0)
dvander@910
    57
	{
dvander@910
    58
		ReplyToCommand(client, "[SM] %t", "No matching client");
dvander@910
    59
		return Plugin_Handled;
dvander@910
    60
	} else if (numClients > 1) {
dvander@910
    61
		ReplyToCommand(client, "[SM] %t", "More than one client matches", arg);
dvander@910
    62
		return Plugin_Handled;
dvander@910
    63
	}
dvander@910
    64
	
dvander@910
    65
	new userid = GetClientUserId(clients[0]);
dvander@910
    66
	new String:name[65];
dvander@910
    67
	
dvander@910
    68
	GetClientName(clients[0], name, sizeof(name));
dvander@910
    69
	
ds@913
    70
	decl String:reason[256];
dvander@910
    71
	if (args < 2)
dvander@910
    72
	{
dvander@910
    73
		/* Safely null terminate */
dvander@910
    74
		reason[0] = '\0';
dvander@910
    75
	} else {
dvander@910
    76
		GetCmdArg(2, reason, sizeof(reason));
dvander@910
    77
	}
dvander@910
    78
	
dvander@910
    79
	LogMessage("\"%L\" kicked \"%L\" (reason \"%s\")", client, clients[0], reason);
dvander@910
    80
	ShowActivity(client, "%t", "Kicked player", name);
dvander@910
    81
	
dvander@910
    82
	if (args < 2)
dvander@910
    83
	{
dvander@910
    84
		ServerCommand("kickid %d", userid);
dvander@910
    85
	} else {
dvander@910
    86
		ServerCommand("kickid %d \"%s\"", userid, reason);
dvander@910
    87
	}
dvander@910
    88
	
dvander@910
    89
	ReplyToCommand(client, "[SM] Client \"%s\" kicked.", name);
dvander@910
    90
	
dvander@910
    91
	return Plugin_Handled;
dvander@910
    92
}