summaryrefslogtreecommitdiffstats
path: root/source/SquirrelCommandBinder.h
diff options
context:
space:
mode:
Diffstat (limited to 'source/SquirrelCommandBinder.h')
-rw-r--r--source/SquirrelCommandBinder.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/source/SquirrelCommandBinder.h b/source/SquirrelCommandBinder.h
new file mode 100644
index 000000000..50e026d06
--- /dev/null
+++ b/source/SquirrelCommandBinder.h
@@ -0,0 +1,35 @@
+#pragma once
+#include <string>
+#include <sqrat.h>
+
+class cPlugin;
+class cPlayer;
+
+class cSquirrelCommandBinder
+{
+public:
+ cSquirrelCommandBinder();
+ ~cSquirrelCommandBinder();
+
+ bool HandleCommand( const std::string & a_Command, cPlayer* a_Player );
+
+ bool BindCommand( const std::string & a_Command, const std::string & a_Permission, cPlugin* a_Plugin, Sqrat::Function a_Callback);
+
+ void ClearBindings();
+ void RemoveBindingsForPlugin( cPlugin* a_Plugin );
+private:
+ struct BoundFunction
+ {
+ Sqrat::Function Callback;
+ cPlugin *Plugin;
+ std::string Permission;
+ };
+
+ typedef std::map< std::string, BoundFunction > CommandMap;
+ CommandMap m_BoundCommands;
+};
+
+
+
+
+