dvander@223: #ifndef _INCLUDE_SOURCEMOD_SERVERCOMMANDS_H_ dvander@223: #define _INCLUDE_SOURCEMOD_SERVERCOMMANDS_H_ dvander@223: dvander@223: #include "sourcemod.h" dvander@308: #include dvander@223: #include "PluginSys.h" faluco@216: #include "sourcemm_api.h" faluco@216: #include dvander@308: #include dvander@308: #include dvander@308: #include "sm_trie.h" faluco@216: faluco@216: using namespace SourceMod; dvander@308: using namespace SourceHook; faluco@216: dvander@308: struct ConsoleEntry faluco@216: { dvander@308: String command; dvander@308: String description; dvander@223: }; dvander@223: dvander@308: class RootConsoleMenu : dvander@308: public IConCommandBaseAccessor, dvander@308: public SMGlobalClass, dvander@308: public IRootConsoleCommand, dvander@308: public IRootConsole dvander@308: { dvander@308: public: dvander@308: RootConsoleMenu(); dvander@308: ~RootConsoleMenu(); dvander@308: public: //IConCommandBaseAccessor dvander@308: bool RegisterConCommandBase(ConCommandBase *pCommand); dvander@308: public: //SMGlobalClass dvander@308: void OnSourceModStartup(bool late); dvander@308: void OnSourceModShutdown(); dvander@308: public: //IRootConsoleCommand dvander@308: void OnRootConsoleCommand(const char *cmd, unsigned int argcount); dvander@308: public: //IRootConsole dvander@308: bool AddRootConsoleCommand(const char *cmd, const char *text, IRootConsoleCommand *pHandler); dvander@308: bool RemoveRootConsoleCommand(const char *cmd, IRootConsoleCommand *pHandler); dvander@308: void ConsolePrint(const char *fmt, ...); dvander@308: const char *GetArgument(unsigned int argno); dvander@308: unsigned int GetArgumentCount(); dvander@308: const char *GetArguments(); dvander@309: void DrawGenericOption(const char *cmd, const char *text); dvander@308: public: dvander@308: void GotRootCmd(); dvander@308: private: dvander@308: Trie *m_pCommands; dvander@308: List m_Menu; dvander@308: }; dvander@308: dvander@308: extern RootConsoleMenu g_RootMenu; dvander@308: dvander@223: #endif //_INCLUDE_SOURCEMOD_SERVERCOMMANDS_H_