tried to reorder the program structure and build process
[NeonServV5.git] / src / IRCEvents.h
diff --git a/src/IRCEvents.h b/src/IRCEvents.h
new file mode 100644 (file)
index 0000000..e08803e
--- /dev/null
@@ -0,0 +1,96 @@
+#ifndef _IRCEvents_h
+#define _IRCEvents_h
+
+#include "main.h"
+
+struct UserNode;
+struct ChanNode;
+struct ChanUser;
+struct ClientSocket;
+
+void init_bind();
+void free_bind();
+
+typedef void join_func_t(struct ChanUser *chanuser);
+int bind_join(join_func_t *func);
+void unbind_join(join_func_t *func);
+int event_join(struct ChanUser *chanuser);
+
+typedef void nick_func_t(struct UserNode *user, char *new_nick);
+int bind_nick(nick_func_t *func);
+void unbind_nick(nick_func_t *func);
+int event_nick(struct UserNode *user, char *new_nick);
+
+typedef void part_func_t(struct ChanUser *chanuser, char *reason);
+int bind_part(part_func_t *func);
+void unbind_part(part_func_t *func);
+int event_part(struct ChanUser *chanuser, char *reason);
+
+typedef void quit_func_t(struct UserNode *user, char *reason);
+int bind_quit(quit_func_t *func);
+void unbind_quit(quit_func_t *func);
+int event_quit(struct UserNode *user, char *reason);
+
+typedef void kick_func_t(struct UserNode *user, struct ChanUser *target, char *reason);
+int bind_kick(kick_func_t *func);
+void unbind_kick(kick_func_t *func);
+int event_kick(struct UserNode *user, struct ChanUser *target, char *reason);
+
+typedef void topic_func_t(struct UserNode *user, struct ChanNode *chan, const char *new_topic);
+int bind_topic(topic_func_t *func);
+void unbind_topic(topic_func_t *func);
+int event_topic(struct UserNode *user, struct ChanNode *chan, const char *new_topic);
+
+typedef void mode_func_t(struct UserNode *user, struct ChanNode *chan, char *modes, char **argv, int argc);
+int bind_mode(mode_func_t *func);
+void unbind_mode(mode_func_t *func);
+int event_mode(struct UserNode *user, struct ChanNode *chan, char *modes, char **argv, int argc);
+
+typedef void chanmsg_func_t(struct UserNode *user, struct ChanNode *chan, char *message);
+int bind_chanmsg(chanmsg_func_t *func);
+void unbind_chanmsg(chanmsg_func_t *func);
+int event_chanmsg(struct UserNode *user, struct ChanNode *chan, char *message);
+
+typedef void privmsg_func_t(struct UserNode *user, struct UserNode *target, char *message);
+int bind_privmsg(privmsg_func_t *func);
+void unbind_privmsg(privmsg_func_t *func);
+int event_privmsg(struct UserNode *user, struct UserNode *target, char *message);
+
+typedef void channotice_func_t(struct UserNode *user, struct ChanNode *chan, char *message);
+int bind_channotice(channotice_func_t *func);
+void unbind_channotice(channotice_func_t *func);
+int event_channotice(struct UserNode *user, struct ChanNode *chan, char *message);
+
+typedef void privnotice_func_t(struct UserNode *user, struct UserNode *target, char *message);
+int bind_privnotice(privnotice_func_t *func);
+void unbind_privnotice(privnotice_func_t *func);
+int event_privnotice(struct UserNode *user, struct UserNode *target, char *message);
+
+typedef void chanctcp_func_t(struct UserNode *user, struct ChanNode *chan, char *command, char *text);
+int bind_chanctcp(chanctcp_func_t *func);
+void unbind_chanctcp(chanctcp_func_t *func);
+int event_chanctcp(struct UserNode *user, struct ChanNode *chan, char *command, char *text);
+
+typedef void privctcp_func_t(struct UserNode *user, struct UserNode *target, char *command, char *text);
+int bind_privctcp(privctcp_func_t *func);
+void unbind_privctcp(privctcp_func_t *func);
+int event_privctcp(struct UserNode *user, struct UserNode *target, char *command, char *text);
+
+typedef void invite_func_t(struct ClientSocket *client, struct UserNode *user, char *channel);
+int bind_invite(invite_func_t *func);
+void unbind_invite(invite_func_t *func);
+int event_invite(struct ClientSocket *client, struct UserNode *user, char *channel);
+
+typedef void raw_func_t(struct ClientSocket *client, char *from, char *cmd, char **argv, int argc);
+int bind_raw(raw_func_t *func);
+void unbind_raw(raw_func_t *func);
+int event_raw(struct ClientSocket *client, char *from, char *cmd, char **argv, int argc);
+
+typedef void bot_ready_func_t(struct ClientSocket *client);
+int bind_bot_ready(bot_ready_func_t *func);
+void unbind_bot_ready(bot_ready_func_t *func);
+int event_bot_ready(struct ClientSocket *client);
+
+
+
+#endif
\ No newline at end of file