summaryrefslogtreecommitdiff
path: root/include/mode.h
diff options
context:
space:
mode:
authordanieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7>2009-10-08 23:34:01 +0000
committerdanieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7>2009-10-08 23:34:01 +0000
commitc4d6ce8c5e1802e5b834d5845e31c3adf7700585 (patch)
treeca3e729b91e7f01f240d90d40665cb764d4f474e /include/mode.h
parent7e843c22e16c81054bad18073d24fe1a07026431 (diff)
Add names for all modes (part 1 of named channel mode list)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11809 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'include/mode.h')
-rw-r--r--include/mode.h32
1 files changed, 12 insertions, 20 deletions
diff --git a/include/mode.h b/include/mode.h
index 1b02efeaa..beb493810 100644
--- a/include/mode.h
+++ b/include/mode.h
@@ -116,7 +116,7 @@ class CoreExport ModeHandler : public classbase
/**
* The mode letter you're implementing.
*/
- char mode;
+ const char mode;
/** Mode prefix, or 0
*/
@@ -158,28 +158,20 @@ class CoreExport ModeHandler : public classbase
public:
/** Module that created this mode. NULL for core modes */
Module* const creator;
+ /** Long-form name
+ */
+ const std::string name;
/**
* The constructor for ModeHandler initalizes the mode handler.
* The constructor of any class you derive from ModeHandler should
* probably call this constructor with the parameters set correctly.
+ * @param name A one-word name for the mode
* @param modeletter The mode letter you wish to handle
- * @param parameters_on The number of parameters your mode takes when being set. Note that any nonzero value is treated as 1.
- * @param parameters_off The number of parameters your mode takes when being unset. Note that any nonzero value is treated as 1.
- * @param listmode Set to true if your mode is a listmode, e.g. it will respond to MODE #channel +modechar with a list of items
- * @param ModeType Set this to MODETYPE_USER for a usermode, or MODETYPE_CHANNEL for a channelmode.
- * @param operonly Set this to true if only opers should be allowed to set or unset the mode.
- * @param mprefix For listmodes where parameters are NICKNAMES which are on the channel (for example, +ohv), you may define a prefix.
- * When you define a prefix, it can be returned in NAMES, WHO etc if it has the highest value (as returned by GetPrefixRank())
- * In the core, the only modes to implement prefixes are +ovh (ops, voice, halfop) which define the prefix characters @, % and +
- * and the rank values OP_VALUE, HALFOP_VALUE and VOICE_VALUE respectively. Any prefixes you define should have unique values proportional
- * to these three defaults or proportional to another mode in a module you depend on. See src/cmode_o.cpp as an example.
- * @param prefixrequired The prefix required to change this mode
- */
- ModeHandler(Module* me, char modeletter, ParamSpec params, ModeType type);
- /**
- * The default destructor does nothing
+ * @param params Parameters taken by the mode
+ * @param type Type of the mode (MODETYPE_USER or MODETYPE_CHANNEL)
*/
+ ModeHandler(Module* me, const std::string& name, char modeletter, ParamSpec params, ModeType type);
virtual ~ModeHandler();
/**
* Returns true if the mode is a list mode
@@ -338,8 +330,8 @@ class CoreExport ModeHandler : public classbase
class CoreExport SimpleUserModeHandler : public ModeHandler
{
public:
- SimpleUserModeHandler(Module* Creator, char modeletter)
- : ModeHandler(Creator, modeletter, PARAM_NONE, MODETYPE_USER) {}
+ SimpleUserModeHandler(Module* Creator, const std::string& Name, char modeletter)
+ : ModeHandler(Creator, Name, modeletter, PARAM_NONE, MODETYPE_USER) {}
virtual ~SimpleUserModeHandler() {}
virtual ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string &parameter, bool adding);
};
@@ -352,8 +344,8 @@ class CoreExport SimpleUserModeHandler : public ModeHandler
class CoreExport SimpleChannelModeHandler : public ModeHandler
{
public:
- SimpleChannelModeHandler(Module* Creator, char modeletter)
- : ModeHandler(Creator, modeletter, PARAM_NONE, MODETYPE_CHANNEL) {}
+ SimpleChannelModeHandler(Module* Creator, const std::string& Name, char modeletter)
+ : ModeHandler(Creator, Name, modeletter, PARAM_NONE, MODETYPE_CHANNEL) {}
virtual ~SimpleChannelModeHandler() {}
virtual ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string &parameter, bool adding);
};