e08803e9f34fd14fa306d9ce50b294584bb91e74
[NeonServV5.git] / IRCEvents.h
1 #ifndef _IRCEvents_h
2 #define _IRCEvents_h
3
4 #include "main.h"
5
6 struct UserNode;
7 struct ChanNode;
8 struct ChanUser;
9 struct ClientSocket;
10
11 void init_bind();
12 void free_bind();
13
14 typedef void join_func_t(struct ChanUser *chanuser);
15 int bind_join(join_func_t *func);
16 void unbind_join(join_func_t *func);
17 int event_join(struct ChanUser *chanuser);
18
19 typedef void nick_func_t(struct UserNode *user, char *new_nick);
20 int bind_nick(nick_func_t *func);
21 void unbind_nick(nick_func_t *func);
22 int event_nick(struct UserNode *user, char *new_nick);
23
24 typedef void part_func_t(struct ChanUser *chanuser, char *reason);
25 int bind_part(part_func_t *func);
26 void unbind_part(part_func_t *func);
27 int event_part(struct ChanUser *chanuser, char *reason);
28
29 typedef void quit_func_t(struct UserNode *user, char *reason);
30 int bind_quit(quit_func_t *func);
31 void unbind_quit(quit_func_t *func);
32 int event_quit(struct UserNode *user, char *reason);
33
34 typedef void kick_func_t(struct UserNode *user, struct ChanUser *target, char *reason);
35 int bind_kick(kick_func_t *func);
36 void unbind_kick(kick_func_t *func);
37 int event_kick(struct UserNode *user, struct ChanUser *target, char *reason);
38
39 typedef void topic_func_t(struct UserNode *user, struct ChanNode *chan, const char *new_topic);
40 int bind_topic(topic_func_t *func);
41 void unbind_topic(topic_func_t *func);
42 int event_topic(struct UserNode *user, struct ChanNode *chan, const char *new_topic);
43
44 typedef void mode_func_t(struct UserNode *user, struct ChanNode *chan, char *modes, char **argv, int argc);
45 int bind_mode(mode_func_t *func);
46 void unbind_mode(mode_func_t *func);
47 int event_mode(struct UserNode *user, struct ChanNode *chan, char *modes, char **argv, int argc);
48
49 typedef void chanmsg_func_t(struct UserNode *user, struct ChanNode *chan, char *message);
50 int bind_chanmsg(chanmsg_func_t *func);
51 void unbind_chanmsg(chanmsg_func_t *func);
52 int event_chanmsg(struct UserNode *user, struct ChanNode *chan, char *message);
53
54 typedef void privmsg_func_t(struct UserNode *user, struct UserNode *target, char *message);
55 int bind_privmsg(privmsg_func_t *func);
56 void unbind_privmsg(privmsg_func_t *func);
57 int event_privmsg(struct UserNode *user, struct UserNode *target, char *message);
58
59 typedef void channotice_func_t(struct UserNode *user, struct ChanNode *chan, char *message);
60 int bind_channotice(channotice_func_t *func);
61 void unbind_channotice(channotice_func_t *func);
62 int event_channotice(struct UserNode *user, struct ChanNode *chan, char *message);
63
64 typedef void privnotice_func_t(struct UserNode *user, struct UserNode *target, char *message);
65 int bind_privnotice(privnotice_func_t *func);
66 void unbind_privnotice(privnotice_func_t *func);
67 int event_privnotice(struct UserNode *user, struct UserNode *target, char *message);
68
69 typedef void chanctcp_func_t(struct UserNode *user, struct ChanNode *chan, char *command, char *text);
70 int bind_chanctcp(chanctcp_func_t *func);
71 void unbind_chanctcp(chanctcp_func_t *func);
72 int event_chanctcp(struct UserNode *user, struct ChanNode *chan, char *command, char *text);
73
74 typedef void privctcp_func_t(struct UserNode *user, struct UserNode *target, char *command, char *text);
75 int bind_privctcp(privctcp_func_t *func);
76 void unbind_privctcp(privctcp_func_t *func);
77 int event_privctcp(struct UserNode *user, struct UserNode *target, char *command, char *text);
78
79 typedef void invite_func_t(struct ClientSocket *client, struct UserNode *user, char *channel);
80 int bind_invite(invite_func_t *func);
81 void unbind_invite(invite_func_t *func);
82 int event_invite(struct ClientSocket *client, struct UserNode *user, char *channel);
83
84 typedef void raw_func_t(struct ClientSocket *client, char *from, char *cmd, char **argv, int argc);
85 int bind_raw(raw_func_t *func);
86 void unbind_raw(raw_func_t *func);
87 int event_raw(struct ClientSocket *client, char *from, char *cmd, char **argv, int argc);
88
89 typedef void bot_ready_func_t(struct ClientSocket *client);
90 int bind_bot_ready(bot_ready_func_t *func);
91 void unbind_bot_ready(bot_ready_func_t *func);
92 int event_bot_ready(struct ClientSocket *client);
93
94
95
96 #endif