implemented bind system
[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
13 typedef void join_func_t(struct ChanUser *chanuser);
14 int bind_join(join_func_t *func);
15 int unbind_join(join_func_t *func);
16 int event_join(struct ChanUser *chanuser);
17
18 typedef void nick_func_t(struct UserNode *user, char *new_nick);
19 int bind_nick(nick_func_t *func);
20 int unbind_nick(nick_func_t *func);
21 int event_nick(struct UserNode *user, char *new_nick);
22
23 typedef void part_func_t(struct ChanUser *chanuser, char *reason);
24 int bind_part(part_func_t *func);
25 int unbind_part(part_func_t *func);
26 int event_part(struct ChanUser *chanuser, char *reason);
27
28 typedef void quit_func_t(struct UserNode *user, char *reason);
29 int bind_quit(quit_func_t *func);
30 int unbind_quit(quit_func_t *func);
31 int event_quit(struct UserNode *user, char *reason);
32
33 typedef void kick_func_t(struct UserNode *user, struct ChanUser *target, char *reason);
34 int bind_kick(kick_func_t *func);
35 int unbind_kick(kick_func_t *func);
36 int event_kick(struct UserNode *user, struct ChanUser *target, char *reason);
37
38 typedef void topic_func_t(struct UserNode *user, struct ChanNode *chan, const char *new_topic);
39 int bind_topic(topic_func_t *func);
40 int unbind_topic(topic_func_t *func);
41 int event_topic(struct UserNode *user, struct ChanNode *chan, const char *new_topic);
42
43 typedef void mode_func_t(struct UserNode *user, struct ChanNode *chan, char *modes, char **argv, int argc);
44 int bind_mode(mode_func_t *func);
45 int unbind_mode(mode_func_t *func);
46 int event_mode(struct UserNode *user, struct ChanNode *chan, char *modes, char **argv, int argc);
47
48 typedef void chanmsg_func_t(struct UserNode *user, struct ChanNode *chan, char *message);
49 int bind_chanmsg(chanmsg_func_t *func);
50 int unbind_chanmsg(chanmsg_func_t *func);
51 int event_chanmsg(struct UserNode *user, struct ChanNode *chan, char *message);
52
53 typedef void privmsg_func_t(struct UserNode *user, struct UserNode *target, char *message);
54 int bind_privmsg(privmsg_func_t *func);
55 int unbind_privmsg(privmsg_func_t *func);
56 int event_privmsg(struct UserNode *user, struct UserNode *target, char *message);
57
58 typedef void channotice_func_t(struct UserNode *user, struct ChanNode *chan, char *message);
59 int bind_channotice(channotice_func_t *func);
60 int unbind_channotice(channotice_func_t *func);
61 int event_channotice(struct UserNode *user, struct ChanNode *chan, char *message);
62
63 typedef void privnotice_func_t(struct UserNode *user, struct UserNode *target, char *message);
64 int bind_privnotice(privnotice_func_t *func);
65 int unbind_privnotice(privnotice_func_t *func);
66 int event_privnotice(struct UserNode *user, struct UserNode *target, char *message);
67
68 typedef void chanctcp_func_t(struct UserNode *user, struct ChanNode *chan, char *command, char *text);
69 int bind_chanctcp(chanctcp_func_t *func);
70 int unbind_chanctcp(chanctcp_func_t *func);
71 int event_chanctcp(struct UserNode *user, struct ChanNode *chan, char *command, char *text);
72
73 typedef void privctcp_func_t(struct UserNode *user, struct UserNode *target, char *command, char *text);
74 int bind_privctcp(privctcp_func_t *func);
75 int unbind_privctcp(privctcp_func_t *func);
76 int event_privctcp(struct UserNode *user, struct UserNode *target, char *command, char *text);
77
78 typedef void invite_func_t(struct UserNode *user, char *channel);
79 int bind_invite(invite_func_t *func);
80 int unbind_invite(invite_func_t *func);
81 int event_invite(struct UserNode *user, char *channel);
82
83 typedef void raw_func_t(struct ClientSocket *client, char *from, char *cmd, char **argv, int argc);
84 int bind_raw(raw_func_t *func);
85 int unbind_raw(raw_func_t *func);
86 int event_raw(struct ClientSocket *client, char *from, char *cmd, char **argv, int argc);
87
88
89
90 #endif