X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=src%2FIRCEvents.c;h=a8239a9c420012c91cdfcd4a537c49c1bc285e9b;hb=55bcc9aad6a4c85d10b47fb8639b4d2255059051;hp=8176ef961af89fa5198820aa6c443435c1f3893a;hpb=3114e0ba66f59644658b554b022cd19877ac3ff2;p=NeonServV5.git diff --git a/src/IRCEvents.c b/src/IRCEvents.c index 8176ef9..a8239a9 100644 --- a/src/IRCEvents.c +++ b/src/IRCEvents.c @@ -44,8 +44,9 @@ static void **binds; #define BIND_TYPE_INVITE 13 #define BIND_TYPE_RAW 14 #define BIND_TYPE_BOT_READY 15 +#define BIND_TYPE_REGISTERED 16 -#define TOTAL_BIND_TYPES 16 +#define TOTAL_BIND_TYPES 17 void init_bind() { binds = calloc(TOTAL_BIND_TYPES, sizeof(*binds)); @@ -189,3 +190,17 @@ FUNC_EVENT(raw, raw_func_t, BIND_TYPE_RAW, (struct ClientSocket *client, char *f FUNC_BIND(bot_ready, bot_ready_func_t, BIND_TYPE_BOT_READY) FUNC_UNBIND(bot_ready, bot_ready_func_t, BIND_TYPE_BOT_READY) FUNC_EVENT(bot_ready, bot_ready_func_t, BIND_TYPE_BOT_READY, (struct ClientSocket *client), (client)) + +FUNC_BIND(registered, registered_func_t, BIND_TYPE_REGISTERED) +FUNC_UNBIND(registered, registered_func_t, BIND_TYPE_REGISTERED) +int event_registered(struct UserNode *old_user, struct UserNode *new_user) { + struct binding *cbind; + int ret = 0; + pre_event(BIND_TYPE_REGISTERED); + for(cbind = binds[BIND_TYPE_REGISTERED]; cbind; cbind = cbind->next) { + registered_func_t *func = cbind->func; + ret |= func(old_user, new_user); + } + post_event(BIND_TYPE_REGISTERED); + return ret; +}