summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/listmode.h9
-rw-r--r--src/listmode.cpp4
2 files changed, 13 insertions, 0 deletions
diff --git a/include/listmode.h b/include/listmode.h
index ba64f8b61..5eb77538f 100644
--- a/include/listmode.h
+++ b/include/listmode.h
@@ -178,6 +178,15 @@ class CoreExport ListModeBase : public ModeHandler
*/
virtual bool ValidateParam(User* user, Channel* channel, std::string& parameter);
+ /** In the event that the mode should be given a parameter, and no parameter was provided, this method is called.
+ * This allows you to give special information to the user, or handle this any way you like.
+ * @param user The user issuing the mode change
+ * @param dest For user mode changes, the target of the mode. For channel mode changes, NULL.
+ * @param channel For channel mode changes, the target of the mode. For user mode changes, NULL.
+ * See mode.h
+ */
+ virtual void OnParameterMissing(User* user, User* dest, Channel* channel) CXX11_OVERRIDE;
+
/** Tell the user the list is too long.
* Overridden by implementing module.
* @param source Source user adding the parameter
diff --git a/src/listmode.cpp b/src/listmode.cpp
index 23f98bf3f..a8f6e5108 100644
--- a/src/listmode.cpp
+++ b/src/listmode.cpp
@@ -221,6 +221,10 @@ bool ListModeBase::ValidateParam(User*, Channel*, std::string&)
return true;
}
+void ListModeBase::OnParameterMissing(User*, User*, Channel*)
+{
+}
+
void ListModeBase::TellListTooLong(User* source, Channel* channel, std::string& parameter)
{
source->WriteNumeric(ERR_BANLISTFULL, channel->name, parameter, "Channel ban list is full");