+ /** Called whenever a mode character is processed.
+ * Return 1 from this function to block the mode character from being processed entirely.
+ * @param user The user who is sending the mode
+ * @param chan The channel the mode is being sent to (or NULL if a usermode)
+ * @param mode The mode character being set
+ * @param param The parameter for the mode or an empty string
+ * @param adding true of the mode is being added, false if it is being removed
+ * @param pcnt The parameter count for the mode (0 or 1)
+ * @return ACR_DENY to deny the mode, ACR_DEFAULT to do standard mode checking, and ACR_ALLOW
+ * to skip all permission checking. Please note that for remote mode changes, your return value
+ * will be ignored!
+ */
+ virtual int OnRawMode(User* user, Channel* chan, const char mode, const std::string ¶m, bool adding, int pcnt, bool servermode = true);
+