diff options
Diffstat (limited to 'src/zyklonb.c')
-rw-r--r-- | src/zyklonb.c | 33 |
1 files changed, 21 insertions, 12 deletions
diff --git a/src/zyklonb.c b/src/zyklonb.c index 9874961..c99b141 100644 --- a/src/zyklonb.c +++ b/src/zyklonb.c @@ -1257,20 +1257,12 @@ process_privmsg (struct bot_context *ctx, const struct irc_message *msg) } static void -irc_process_message (const struct irc_message *msg, - const char *raw, void *user_data) +irc_forward_message_to_plugins (struct bot_context *ctx, const char *raw) { - struct bot_context *ctx = user_data; - if (g_debug_mode) - fprintf (stderr, "[%s] ==> \"%s\"\n", "IRC", raw); - - // This should be as minimal as possible, I don't want to have the whole bot - // written in C, especially when I have this overengineered plugin system. - // Therefore the very basic functionality only. - // - // I should probably even rip out the autojoin... + // For consistency with plugin_process_message() + if (!ctx->irc_ready) + return; - // First forward the message to all the plugins for (struct plugin_data *plugin = ctx->plugins; plugin; plugin = plugin->next) { @@ -1283,6 +1275,23 @@ irc_process_message (const struct irc_message *msg, // TODO: make sure that this buffer doesn't get too large either str_append_printf (&plugin->queued_output, "%s\r\n", raw); } +} + +static void +irc_process_message (const struct irc_message *msg, + const char *raw, void *user_data) +{ + struct bot_context *ctx = user_data; + if (g_debug_mode) + fprintf (stderr, "[%s] ==> \"%s\"\n", "IRC", raw); + + // This should be as minimal as possible, I don't want to have the whole bot + // written in C, especially when I have this overengineered plugin system. + // Therefore the very basic functionality only. + // + // I should probably even rip out the autojoin... + + irc_forward_message_to_plugins (ctx, raw); if (!strcasecmp (msg->command, "PING")) { |