diff --git a/plugins/plugin_ircclient.cpp b/plugins/plugin_ircclient.cpp index c50d9a2..9f80ff4 100644 --- a/plugins/plugin_ircclient.cpp +++ b/plugins/plugin_ircclient.cpp @@ -63,9 +63,7 @@ SOLANA_PLUGIN_EXPORT void solana_plugin_stop(void) { } SOLANA_PLUGIN_EXPORT float solana_plugin_tick(float delta) { - g_ircc->iterate(delta); // TODO: return interval, respect dcc etc - - return 1.f; // expect atleast once per sec + return g_ircc->iterate(delta); } } // extern C diff --git a/src/solanaceae/ircclient/ircclient.cpp b/src/solanaceae/ircclient/ircclient.cpp index 7b7eae7..3995fae 100644 --- a/src/solanaceae/ircclient/ircclient.cpp +++ b/src/solanaceae/ircclient/ircclient.cpp @@ -167,6 +167,10 @@ const std::string_view IRCClient1::getServerName(void) const { return _server_name; } +void IRCClient1::join(std::string_view channel) { + assert(false && "implement me"); +} + void IRCClient1::connectSession(void) { _try_connecting_state = true; _try_connecting_cooldown = 20.f; diff --git a/src/solanaceae/ircclient/ircclient.hpp b/src/solanaceae/ircclient/ircclient.hpp index afcfc23..72fe26e 100644 --- a/src/solanaceae/ircclient/ircclient.hpp +++ b/src/solanaceae/ircclient/ircclient.hpp @@ -207,12 +207,14 @@ class IRCClient1 : public IRCClientEventProviderI { template static void on_event_generic_new(irc_session_t* session, const char* event, const char* origin, const char** params, unsigned int count) { + assert(session != nullptr); + std::vector params_view; for (size_t i = 0; i < count; i++) { params_view.push_back(params[i]); } - std::cout << "IRC: event " << event << " " << origin << "\n"; + std::cout << "IRC: event '" << (event?event:"") << "' o:" << (origin?origin:"") << "\n"; #if 0 if (std::string_view{event} == "ACTION") { @@ -228,7 +230,8 @@ class IRCClient1 : public IRCClientEventProviderI { auto* ircc = static_cast(irc_get_ctx(session)); assert(ircc != nullptr); - ircc->dispatch(event_type_enum, EventType{origin, params_view}); + // hack if origin is null + ircc->dispatch(event_type_enum, EventType{origin?origin:"", params_view}); ircc->_event_fired = true; } };