core/sm_srvcmds.h
author David Anderson <dvander@alliedmods.net>
Wed Jan 17 18:22:00 2007 +0000 (2007-01-17)
changeset 309 51e67f50830e
parent 308 f0e65f92cb34
child 370 d3a484f98f6d
permissions -rw-r--r--
Finished porting the "plugins" command to the new menu system
dvander@223
     1
#ifndef _INCLUDE_SOURCEMOD_SERVERCOMMANDS_H_
dvander@223
     2
#define _INCLUDE_SOURCEMOD_SERVERCOMMANDS_H_
dvander@223
     3
dvander@223
     4
#include "sourcemod.h"
dvander@308
     5
#include <IRootConsoleMenu.h>
dvander@223
     6
#include "PluginSys.h"
faluco@216
     7
#include "sourcemm_api.h"
faluco@216
     8
#include <convar.h>
dvander@308
     9
#include <sh_list.h>
dvander@308
    10
#include <sh_string.h>
dvander@308
    11
#include "sm_trie.h"
faluco@216
    12
faluco@216
    13
using namespace SourceMod;
dvander@308
    14
using namespace SourceHook;
faluco@216
    15
dvander@308
    16
struct ConsoleEntry
faluco@216
    17
{
dvander@308
    18
	String command;
dvander@308
    19
	String description;
dvander@223
    20
};
dvander@223
    21
dvander@308
    22
class RootConsoleMenu : 
dvander@308
    23
	public IConCommandBaseAccessor,
dvander@308
    24
	public SMGlobalClass,
dvander@308
    25
	public IRootConsoleCommand,
dvander@308
    26
	public IRootConsole
dvander@308
    27
{
dvander@308
    28
public:
dvander@308
    29
	RootConsoleMenu();
dvander@308
    30
	~RootConsoleMenu();
dvander@308
    31
public: //IConCommandBaseAccessor
dvander@308
    32
	bool RegisterConCommandBase(ConCommandBase *pCommand);
dvander@308
    33
public: //SMGlobalClass
dvander@308
    34
	void OnSourceModStartup(bool late);
dvander@308
    35
	void OnSourceModShutdown();
dvander@308
    36
public: //IRootConsoleCommand
dvander@308
    37
	void OnRootConsoleCommand(const char *cmd, unsigned int argcount);
dvander@308
    38
public: //IRootConsole
dvander@308
    39
	bool AddRootConsoleCommand(const char *cmd, const char *text, IRootConsoleCommand *pHandler);
dvander@308
    40
	bool RemoveRootConsoleCommand(const char *cmd, IRootConsoleCommand *pHandler);
dvander@308
    41
	void ConsolePrint(const char *fmt, ...);
dvander@308
    42
	const char *GetArgument(unsigned int argno);
dvander@308
    43
	unsigned int GetArgumentCount();
dvander@308
    44
	const char *GetArguments();
dvander@309
    45
	void DrawGenericOption(const char *cmd, const char *text);
dvander@308
    46
public:
dvander@308
    47
	void GotRootCmd();
dvander@308
    48
private:
dvander@308
    49
	Trie *m_pCommands;
dvander@308
    50
	List<ConsoleEntry *> m_Menu;
dvander@308
    51
};
dvander@308
    52
dvander@308
    53
extern RootConsoleMenu g_RootMenu;
dvander@308
    54
dvander@223
    55
#endif //_INCLUDE_SOURCEMOD_SERVERCOMMANDS_H_