aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/zyklonb.c33
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"))
{