From: pk910 Date: Sat, 13 Aug 2011 01:12:17 +0000 (+0200) Subject: moved all the bot things into bot_NeonServ.c X-Git-Tag: v5.3~560 X-Git-Url: http://git.pk910.de/?a=commitdiff_plain;h=06de317e5217b4a8b2fa60b9a1cdc3d70665a411;p=NeonServV5.git moved all the bot things into bot_NeonServ.c --- diff --git a/IRCEvents.c b/IRCEvents.c index 51e0d32..1bbbd4f 100644 --- a/IRCEvents.c +++ b/IRCEvents.c @@ -26,8 +26,9 @@ static void **binds; #define BIND_TYPE_PRIVCTCP 12 #define BIND_TYPE_INVITE 13 #define BIND_TYPE_RAW 14 +#define BIND_TYPE_BOT_READY 15 -#define TOTAL_BIND_TYPES 15 +#define TOTAL_BIND_TYPES 16 void init_bind() { binds = calloc(TOTAL_BIND_TYPES, sizeof(*binds)); @@ -158,3 +159,6 @@ FUNC_BIND(raw, raw_func_t, BIND_TYPE_RAW) FUNC_UNBIND(raw, raw_func_t, BIND_TYPE_RAW) FUNC_EVENT(raw, raw_func_t, BIND_TYPE_RAW, (struct ClientSocket *client, char *from, char *cmd, char **argv, int argc), (client, from, cmd, argv, argc)) +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)) diff --git a/IRCEvents.h b/IRCEvents.h index cb01774..b92669f 100644 --- a/IRCEvents.h +++ b/IRCEvents.h @@ -86,6 +86,11 @@ 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 diff --git a/IRCParser.c b/IRCParser.c index 13b76e4..bc14dfc 100644 --- a/IRCParser.c +++ b/IRCParser.c @@ -92,7 +92,7 @@ static USERLIST_CALLBACK(got_channel_userlist) { static IRC_CMD(raw_001) { client->flags |= SOCKET_FLAG_READY; - putsock(client, "JOIN #pktest"); + event_bot_ready(client); return 1; } diff --git a/bot_NeonServ.c b/bot_NeonServ.c index b69ac3f..364549f 100644 --- a/bot_NeonServ.c +++ b/bot_NeonServ.c @@ -1,11 +1,14 @@ #include "bot_NeonServ.h" #include "modcmd.h" +#include "IRCEvents.h" #include "UserNode.h" #include "ChanNode.h" #include "ChanUser.h" #include "ClientSocket.h" +#define BOTID 1 + static CMD_BIND(neonserv_cmd_users) { struct ChanUser *chanuser; putsock(client, "PRIVMSG %s :[BOT JOIN] Users on this Channel:", chan->name); @@ -20,14 +23,50 @@ static CMD_BIND(neonserv_cmd_modes) { putsock(client, "PRIVMSG %s :Modes: %s", chan->name, modeBuf); } +static void neonserv_bot_ready(struct ClientSocket *client) { + putsock(client, "JOIN #pktest"); +} + +static void neonserv_trigger_callback(struct ChanNode *chan, char *trigger) { + strcpy(trigger, "!"); +} + +static void start_bots() { + struct UserNode *user; + struct ClientSocket *client; + + user = addUser("TestBot"); + strcpy(user->ident, "test"); + strcpy(user->realname, "testUser!"); + user->flags |= USERFLAG_ISBOT; + client = create_socket("127.0.0.1", 6667, "pktest:pktest123", user); //pktest Hostmask(s): *@127.0.0.1 + client->flags |= SOCKET_FLAG_PREFERRED; + connect_socket(client); + + user = addUser("TestBot2"); + strcpy(user->ident, "test"); + strcpy(user->realname, "testUser!"); + user->flags |= USERFLAG_ISBOT; + client = create_socket("127.0.0.1", 6667, "pktest:pktest123", user); //pktest Hostmask(s): *@127.0.0.1 + connect_socket(client); +} + void init_NeonServ() { - register_command(0, "users", neonserv_cmd_users); - register_command(0, "modes", neonserv_cmd_modes); + start_bots(); + + bind_bot_ready(neonserv_bot_ready); - bind_cmd_to_command(0, "users", "users"); - bind_cmd_to_command(0, "modes", "modes"); + set_trigger_callback(BOTID, neonserv_trigger_callback); + + register_command(BOTID, "users", neonserv_cmd_users); + register_command(BOTID, "modes", neonserv_cmd_modes); + + bind_cmd_to_command(BOTID, "users", "users"); + bind_cmd_to_command(BOTID, "modes", "modes"); } void free_NeonServ() { } + +#undef BOTID diff --git a/main.c b/main.c index 58609a3..1dd4950 100644 --- a/main.c +++ b/main.c @@ -9,26 +9,6 @@ #include "WHOHandler.h" #include "bots.h" -void just_test_it() { - struct UserNode *user; - struct ClientSocket *client; - - user = addUser("TestBot"); - strcpy(user->ident, "test"); - strcpy(user->realname, "testUser!"); - user->flags |= USERFLAG_ISBOT; - client = create_socket("127.0.0.1", 6667, "pktest:pktest123", user); //pktest Hostmask(s): *@127.0.0.1 - client->flags |= SOCKET_FLAG_PREFERRED; - connect_socket(client); - - user = addUser("TestBot2"); - strcpy(user->ident, "test"); - strcpy(user->realname, "testUser!"); - user->flags |= USERFLAG_ISBOT; - client = create_socket("127.0.0.1", 6667, "pktest:pktest123", user); //pktest Hostmask(s): *@127.0.0.1 - connect_socket(client); -} - void cleanup() { free_sockets(); free_parser(); @@ -48,7 +28,6 @@ int main(void) init_bind(); init_modcmd(); init_bots(); - just_test_it(); time_t socket_wait; while(1) {