plugins/basecommands.sp
author David Anderson <dvander@alliedmods.net>
Thu Jun 07 06:17:57 2007 +0000 (2007-06-07)
changeset 910 153c052460af
child 913 7c62d3c5d829
permissions -rw-r--r--
- initial import of the first admin plugin (woot! it has one command!)
- added ShowActivity() native
- added lang.inc to sourcemod.inc
dvander@910
     1
/**
dvander@910
     2
 * admincmds-basic.sp
dvander@910
     3
 * Manages the standard flat files for admins.  This is the file to compile.
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.
dvander@910
    19
 */
dvander@910
    20
dvander@910
    21
#include <sourcemod>
dvander@910
    22
dvander@910
    23
public Plugin:myinfo = 
dvander@910
    24
{
dvander@910
    25
	name = "Basic Commands",
dvander@910
    26
	author = "AlliedModders LLC",
dvander@910
    27
	description = "Basic Admin Commands",
dvander@910
    28
	version = SOURCEMOD_VERSION,
dvander@910
    29
	url = "http://www.sourcemod.net/"
dvander@910
    30
};
dvander@910
    31
dvander@910
    32
public OnPluginStart()
dvander@910
    33
{
dvander@910
    34
	LoadTranslations("core.cfg");
dvander@910
    35
	RegAdminCmd("sm_kick", Command_Kick, ADMFLAG_KICK, "sm_kick <#userid|name> [reason]");
dvander@910
    36
}
dvander@910
    37
dvander@910
    38
public Action:Command_Kick(client, args)
dvander@910
    39
{
dvander@910
    40
	if (args < 1)
dvander@910
    41
	{
dvander@910
    42
		ReplyToCommand(client, "[SM] Usage: sm_kick <#userid|name> [reason]");
dvander@910
    43
		return Plugin_Handled;
dvander@910
    44
	}
dvander@910
    45
	
dvander@910
    46
	new String:arg[65];
dvander@910
    47
	GetCmdArg(1, arg, sizeof(arg));
dvander@910
    48
	
dvander@910
    49
	new clients[2];
dvander@910
    50
	new numClients = SearchForClients(arg, clients, 2);
dvander@910
    51
	
dvander@910
    52
	if (numClients == 0)
dvander@910
    53
	{
dvander@910
    54
		ReplyToCommand(client, "[SM] %t", "No matching client");
dvander@910
    55
		return Plugin_Handled;
dvander@910
    56
	} else if (numClients > 1) {
dvander@910
    57
		ReplyToCommand(client, "[SM] %t", "More than one client matches", arg);
dvander@910
    58
		return Plugin_Handled;
dvander@910
    59
	}
dvander@910
    60
	
dvander@910
    61
	new userid = GetClientUserId(clients[0]);
dvander@910
    62
	new String:name[65];
dvander@910
    63
	
dvander@910
    64
	GetClientName(clients[0], name, sizeof(name));
dvander@910
    65
	
dvander@910
    66
	decl String:reason[256]
dvander@910
    67
	if (args < 2)
dvander@910
    68
	{
dvander@910
    69
		/* Safely null terminate */
dvander@910
    70
		reason[0] = '\0';
dvander@910
    71
	} else {
dvander@910
    72
		GetCmdArg(2, reason, sizeof(reason));
dvander@910
    73
	}
dvander@910
    74
	
dvander@910
    75
	LogMessage("\"%L\" kicked \"%L\" (reason \"%s\")", client, clients[0], reason);
dvander@910
    76
	ShowActivity(client, "%t", "Kicked player", name);
dvander@910
    77
	
dvander@910
    78
	if (args < 2)
dvander@910
    79
	{
dvander@910
    80
		ServerCommand("kickid %d", userid);
dvander@910
    81
	} else {
dvander@910
    82
		ServerCommand("kickid %d \"%s\"", userid, reason);
dvander@910
    83
	}
dvander@910
    84
	
dvander@910
    85
	ReplyToCommand(client, "[SM] Client \"%s\" kicked.", name);
dvander@910
    86
	
dvander@910
    87
	return Plugin_Handled;
dvander@910
    88
}