core/sm_srvcmds.h
author Scott Ehlert <ds@alliedmods.net>
Mon May 14 21:29:17 2007 +0000 (2007-05-14)
changeset 794 5947b0ee60bb
parent 653 ef60870067ff
child 978 54782a83a1ef
permissions -rw-r--r--
Implemented amb286 - .smx extension no longer required with "sm plugins load"
dvander@370
     1
/**
ds@653
     2
 * vim: set ts=4 :
dvander@370
     3
 * ===============================================================
dvander@370
     4
 * SourceMod (C)2004-2007 AlliedModders LLC.  All rights reserved.
dvander@370
     5
 * ===============================================================
dvander@370
     6
 *
dvander@370
     7
 * This file is not open source and may not be copied without explicit
dvander@370
     8
 * written permission of AlliedModders LLC.  This file may not be redistributed 
dvander@370
     9
 * in whole or significant part.
dvander@370
    10
 * For information, see LICENSE.txt or http://www.sourcemod.net/license.php
dvander@370
    11
 *
dvander@370
    12
 * Version: $Id$
dvander@370
    13
 */
dvander@370
    14
dvander@223
    15
#ifndef _INCLUDE_SOURCEMOD_SERVERCOMMANDS_H_
dvander@223
    16
#define _INCLUDE_SOURCEMOD_SERVERCOMMANDS_H_
dvander@223
    17
dvander@223
    18
#include "sourcemod.h"
dvander@308
    19
#include <IRootConsoleMenu.h>
dvander@223
    20
#include "PluginSys.h"
faluco@216
    21
#include "sourcemm_api.h"
dvander@308
    22
#include <sh_list.h>
dvander@308
    23
#include <sh_string.h>
dvander@308
    24
#include "sm_trie.h"
faluco@216
    25
faluco@216
    26
using namespace SourceMod;
dvander@308
    27
using namespace SourceHook;
faluco@216
    28
dvander@308
    29
struct ConsoleEntry
faluco@216
    30
{
dvander@308
    31
	String command;
dvander@308
    32
	String description;
dvander@223
    33
};
dvander@223
    34
dvander@308
    35
class RootConsoleMenu : 
dvander@308
    36
	public IConCommandBaseAccessor,
dvander@308
    37
	public SMGlobalClass,
dvander@308
    38
	public IRootConsoleCommand,
dvander@308
    39
	public IRootConsole
dvander@308
    40
{
dvander@308
    41
public:
dvander@308
    42
	RootConsoleMenu();
dvander@308
    43
	~RootConsoleMenu();
dvander@308
    44
public: //IConCommandBaseAccessor
dvander@308
    45
	bool RegisterConCommandBase(ConCommandBase *pCommand);
dvander@308
    46
public: //SMGlobalClass
dvander@308
    47
	void OnSourceModStartup(bool late);
dvander@308
    48
	void OnSourceModShutdown();
dvander@308
    49
public: //IRootConsoleCommand
dvander@308
    50
	void OnRootConsoleCommand(const char *cmd, unsigned int argcount);
dvander@308
    51
public: //IRootConsole
dvander@308
    52
	bool AddRootConsoleCommand(const char *cmd, const char *text, IRootConsoleCommand *pHandler);
dvander@308
    53
	bool RemoveRootConsoleCommand(const char *cmd, IRootConsoleCommand *pHandler);
dvander@308
    54
	void ConsolePrint(const char *fmt, ...);
dvander@308
    55
	const char *GetArgument(unsigned int argno);
dvander@308
    56
	unsigned int GetArgumentCount();
dvander@308
    57
	const char *GetArguments();
dvander@309
    58
	void DrawGenericOption(const char *cmd, const char *text);
dvander@308
    59
public:
dvander@308
    60
	void GotRootCmd();
dvander@308
    61
private:
dvander@308
    62
	Trie *m_pCommands;
dvander@308
    63
	List<ConsoleEntry *> m_Menu;
dvander@308
    64
};
dvander@308
    65
dvander@308
    66
extern RootConsoleMenu g_RootMenu;
dvander@308
    67
dvander@223
    68
#endif //_INCLUDE_SOURCEMOD_SERVERCOMMANDS_H_