summaryrefslogtreecommitdiff
path: root/include/mode.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/mode.h')
-rw-r--r--include/mode.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/include/mode.h b/include/mode.h
index 9b8d07877..18fed8b0a 100644
--- a/include/mode.h
+++ b/include/mode.h
@@ -100,6 +100,12 @@ enum ParamSpec
*/
class CoreExport ModeHandler : public ServiceProvider
{
+ public:
+ enum Class
+ {
+ MC_OTHER
+ };
+
/**
* Removes this prefix mode from all users on the given channel
* @param channel The channel which the server wants to remove your mode from
@@ -150,6 +156,10 @@ class CoreExport ModeHandler : public ServiceProvider
*/
ModeType m_type;
+ /** The object type of this mode handler
+ */
+ const Class type_id;
+
/** The prefix char needed on channel to use this mode,
* only checked for channel modes
*/
@@ -170,8 +180,9 @@ class CoreExport ModeHandler : public ServiceProvider
* @param modeletter The mode letter you wish to handle
* @param params Parameters taken by the mode
* @param type Type of the mode (MODETYPE_USER or MODETYPE_CHANNEL)
+ * @param mclass The object type of this mode handler, one of ModeHandler::Class
*/
- ModeHandler(Module* me, const std::string& name, char modeletter, ParamSpec params, ModeType type);
+ ModeHandler(Module* me, const std::string& name, char modeletter, ParamSpec params, ModeType type, Class mclass = MC_OTHER);
virtual CullResult cull();
virtual ~ModeHandler();
/**