]> jfr.im git - solanum.git/blobdiff - include/hook.h
Remove Windows support
[solanum.git] / include / hook.h
index ddcf6b6cb5a4c08ccfa3f52d0daac5d5cefd5394..c1971614c5cfea5a03e2f07086adffd77588491b 100644 (file)
@@ -45,6 +45,8 @@ extern int h_conf_read_start;
 extern int h_conf_read_end;
 extern int h_outbound_msgbuf;
 extern int h_rehash;
+extern int h_priv_change;
+extern int h_cap_change;
 
 void init_hook(void);
 int register_hook(const char *name);
@@ -79,8 +81,6 @@ typedef struct
 {
        struct Client *client;
        struct Client *target;
-       struct Channel *chptr;
-       int approved;
 } hook_data_client;
 
 typedef struct
@@ -109,6 +109,16 @@ typedef struct
        const char *error;
 } hook_data_channel_approval;
 
+typedef struct
+{
+       struct Client *client;
+       struct Client *target;
+       struct Channel *chptr;
+       struct membership *clientms;
+       struct membership *targetms;
+       int approved;
+} hook_data_channel_visibility;
+
 typedef struct
 {
        struct Client *client;
@@ -138,6 +148,14 @@ typedef struct
        unsigned int oldsnomask;
 } hook_data_umode_changed;
 
+typedef struct
+{
+       struct Client *client;
+       int oldcaps;
+       int add;
+       int del;
+} hook_data_cap_change;
+
 enum message_type {
        MESSAGE_TYPE_NOTICE,
        MESSAGE_TYPE_PRIVMSG,
@@ -163,6 +181,16 @@ typedef struct
        int approved;
 } hook_data_privmsg_user;
 
+typedef struct
+{
+       struct Client *client;
+       struct PrivilegeSet *old;
+       struct PrivilegeSet *new;
+       const struct PrivilegeSet *added;
+       const struct PrivilegeSet *removed;
+       const struct PrivilegeSet *unchanged;
+} hook_data_priv_change;
+
 typedef struct
 {
        bool signal;