core/sm_srvcmds.h
author Scott Ehlert <ds@alliedmods.net>
Wed Aug 15 06:19:30 2007 +0000 (2007-08-15)
changeset 1330 ab94316bb52b
parent 1231 17badaf66ce4
child 1541 e46ad208b9b4
permissions -rw-r--r--
Updated license headers on virtually all files with extremely minor changes in the name of some sort of strange consistency.
All plugin and include file headers also have been changed to say about GPL3 instead of GPL2.

(This day shall henceforth be known as the Eighty Column Massacre of '07)
dvander@370
     1
/**
ds@653
     2
 * vim: set ts=4 :
ds@1330
     3
 * =============================================================================
dvander@1231
     4
 * SourceMod
dvander@1231
     5
 * Copyright (C) 2004-2007 AlliedModders LLC.  All rights reserved.
ds@1330
     6
 * =============================================================================
dvander@370
     7
 *
ds@1330
     8
 * This program is free software; you can redistribute it and/or modify it under
ds@1330
     9
 * the terms of the GNU General Public License, version 3.0, as published by the
ds@1330
    10
 * Free Software Foundation.
dvander@1231
    11
 * 
ds@1330
    12
 * This program is distributed in the hope that it will be useful, but WITHOUT
ds@1330
    13
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
ds@1330
    14
 * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
ds@1330
    15
 * details.
dvander@1231
    16
 *
ds@1330
    17
 * You should have received a copy of the GNU General Public License along with
ds@1330
    18
 * this program.  If not, see <http://www.gnu.org/licenses/>.
dvander@1231
    19
 *
ds@1330
    20
 * As a special exception, AlliedModders LLC gives you permission to link the
ds@1330
    21
 * code of this program (as well as its derivative works) to "Half-Life 2," the
ds@1330
    22
 * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
ds@1330
    23
 * by the Valve Corporation.  You must obey the GNU General Public License in
ds@1330
    24
 * all respects for all other code used.  Additionally, AlliedModders LLC grants
ds@1330
    25
 * this exception to all derivative works.  AlliedModders LLC defines further
ds@1330
    26
 * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
ds@1330
    27
 * or <http://www.sourcemod.net/license.php>.
dvander@370
    28
 *
dvander@370
    29
 * Version: $Id$
dvander@370
    30
 */
dvander@370
    31
dvander@223
    32
#ifndef _INCLUDE_SOURCEMOD_SERVERCOMMANDS_H_
dvander@223
    33
#define _INCLUDE_SOURCEMOD_SERVERCOMMANDS_H_
dvander@223
    34
dvander@223
    35
#include "sourcemod.h"
dvander@308
    36
#include <IRootConsoleMenu.h>
dvander@223
    37
#include "PluginSys.h"
faluco@216
    38
#include "sourcemm_api.h"
dvander@308
    39
#include <sh_list.h>
dvander@308
    40
#include <sh_string.h>
dvander@308
    41
#include "sm_trie.h"
faluco@216
    42
faluco@216
    43
using namespace SourceMod;
dvander@308
    44
using namespace SourceHook;
faluco@216
    45
dvander@308
    46
struct ConsoleEntry
faluco@216
    47
{
dvander@308
    48
	String command;
dvander@308
    49
	String description;
dvander@223
    50
};
dvander@223
    51
dvander@308
    52
class RootConsoleMenu : 
dvander@308
    53
	public IConCommandBaseAccessor,
dvander@308
    54
	public SMGlobalClass,
dvander@308
    55
	public IRootConsoleCommand,
dvander@308
    56
	public IRootConsole
dvander@308
    57
{
dvander@308
    58
public:
dvander@308
    59
	RootConsoleMenu();
dvander@308
    60
	~RootConsoleMenu();
dvander@308
    61
public: //IConCommandBaseAccessor
dvander@308
    62
	bool RegisterConCommandBase(ConCommandBase *pCommand);
dvander@308
    63
public: //SMGlobalClass
dvander@308
    64
	void OnSourceModStartup(bool late);
dvander@308
    65
	void OnSourceModShutdown();
dvander@308
    66
public: //IRootConsoleCommand
dvander@308
    67
	void OnRootConsoleCommand(const char *cmd, unsigned int argcount);
dvander@308
    68
public: //IRootConsole
dvander@308
    69
	bool AddRootConsoleCommand(const char *cmd, const char *text, IRootConsoleCommand *pHandler);
dvander@308
    70
	bool RemoveRootConsoleCommand(const char *cmd, IRootConsoleCommand *pHandler);
dvander@308
    71
	void ConsolePrint(const char *fmt, ...);
dvander@308
    72
	const char *GetArgument(unsigned int argno);
dvander@308
    73
	unsigned int GetArgumentCount();
dvander@308
    74
	const char *GetArguments();
dvander@309
    75
	void DrawGenericOption(const char *cmd, const char *text);
dvander@308
    76
public:
dvander@308
    77
	void GotRootCmd();
dvander@308
    78
private:
dvander@978
    79
	bool m_CfgExecDone;
dvander@308
    80
	Trie *m_pCommands;
dvander@308
    81
	List<ConsoleEntry *> m_Menu;
dvander@308
    82
};
dvander@308
    83
dvander@308
    84
extern RootConsoleMenu g_RootMenu;
dvander@308
    85
dvander@223
    86
#endif //_INCLUDE_SOURCEMOD_SERVERCOMMANDS_H_