X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=src%2FIRCEvents.h;fp=src%2FIRCEvents.h;h=e08803e9f34fd14fa306d9ce50b294584bb91e74;hb=0f1dc61921eef1db8e404a5a82372e2d1cd55daa;hp=0000000000000000000000000000000000000000;hpb=795115bf680185ae01043bd1222b78bfed8c1d87;p=NeonServV5.git diff --git a/src/IRCEvents.h b/src/IRCEvents.h new file mode 100644 index 0000000..e08803e --- /dev/null +++ b/src/IRCEvents.h @@ -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