]> jfr.im git - solanum.git/blobdiff - include/chmode.h
Add +R channel mode module requiring services account to chat (#102)
[solanum.git] / include / chmode.h
index 94f7ea7f3f6d0e5b1e2f65709a0fec4d067d9e1e..7fae18af09989260881cb15b3980b5efeff98e2b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- *  charybdis: An advanced ircd.
+ *  Solanum: a slightly advanced ircd
  *  chmode.h: The ircd channel header.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
- *
- *  $Id$
  */
 
 #ifndef INCLUDED_chmode_h
 #define INCLUDED_chmode_h
 
-extern void chm_nosuch(struct Client *source_p, struct Channel *chptr,
-          int alevel, int parc, int *parn,
-          const char **parv, int *errors, int dir, char c, long mode_type);
-extern void chm_orphaned(struct Client *source_p, struct Channel *chptr,
-          int alevel, int parc, int *parn,
-          const char **parv, int *errors, int dir, char c, long mode_type);
-extern void chm_simple(struct Client *source_p, struct Channel *chptr,
-          int alevel, int parc, int *parn,
-          const char **parv, int *errors, int dir, char c, long mode_type);
-extern void chm_ban(struct Client *source_p, struct Channel *chptr,
-          int alevel, int parc, int *parn,
-          const char **parv, int *errors, int dir, char c, long mode_type);
-extern void chm_staff(struct Client *source_p, struct Channel *chptr,
-          int alevel, int parc, int *parn,
-          const char **parv, int *errors, int dir, char c, long mode_type);
-extern void chm_forward(struct Client *source_p, struct Channel *chptr,
-          int alevel, int parc, int *parn,
-          const char **parv, int *errors, int dir, char c, long mode_type);
-extern void chm_throttle(struct Client *source_p, struct Channel *chptr,
-          int alevel, int parc, int *parn,
-          const char **parv, int *errors, int dir, char c, long mode_type);
-extern void chm_key(struct Client *source_p, struct Channel *chptr,
-          int alevel, int parc, int *parn,
-          const char **parv, int *errors, int dir, char c, long mode_type);
-extern void chm_limit(struct Client *source_p, struct Channel *chptr,
-          int alevel, int parc, int *parn,
-          const char **parv, int *errors, int dir, char c, long mode_type);
-extern void chm_regonly(struct Client *source_p, struct Channel *chptr,
-          int alevel, int parc, int *parn,
-          const char **parv, int *errors, int dir, char c, long mode_type);
-extern void chm_op(struct Client *source_p, struct Channel *chptr,
-          int alevel, int parc, int *parn,
-          const char **parv, int *errors, int dir, char c, long mode_type);
-extern void chm_voice(struct Client *source_p, struct Channel *chptr,
-          int alevel, int parc, int *parn,
-          const char **parv, int *errors, int dir, char c, long mode_type);
+/* something not included in messages.tab
+ * to change some hooks behaviour when needed
+ * -- dwr
+ */
+#define ERR_CUSTOM 1000
+
+extern int chmode_flags[256];
+
+extern ChannelModeFunc chm_orphaned;
+extern ChannelModeFunc chm_simple;
+extern ChannelModeFunc chm_ban;
+extern ChannelModeFunc chm_hidden;
+extern ChannelModeFunc chm_staff;
+extern ChannelModeFunc chm_forward;
+extern ChannelModeFunc chm_throttle;
+extern ChannelModeFunc chm_key;
+extern ChannelModeFunc chm_limit;
+extern ChannelModeFunc chm_op;
+extern ChannelModeFunc chm_voice;
 
-extern void construct_noparam_modes(void);
-extern void find_orphaned_cflags(void);
-extern unsigned int find_cflag_slot(void);
+extern unsigned int cflag_add(char c, ChannelModeFunc function);
+extern void cflag_orphan(char c);
+extern void construct_cflags_strings(void);
 extern char cflagsbuf[256];
 extern char cflagsmyinfo[256];