--- a/libpurple/purpleconversation.c Sun Nov 10 00:55:40 2024 -0600 +++ b/libpurple/purpleconversation.c Sun Nov 10 02:29:31 2024 -0600 @@ -1530,6 +1530,7 @@ { PurpleAccount *account = NULL; PurpleProtocol *protocol = NULL; + PurpleProtocolConversation *protocol_conversation = NULL; GTask *task = NULL; g_return_if_fail(PURPLE_IS_CONVERSATION(conversation)); @@ -1555,6 +1556,18 @@ return; } + protocol_conversation = PURPLE_PROTOCOL_CONVERSATION(protocol); + if(!purple_protocol_conversation_implements_send_message(protocol_conversation)) + { + g_task_return_new_error(task, PURPLE_CONVERSATION_DOMAIN, 0, + "protocol does not implement " + "PurpleProtocolConversation.send_message"); + + g_clear_object(&task); + + return; + } + purple_protocol_conversation_send_message_async(PURPLE_PROTOCOL_CONVERSATION(protocol), conversation, message,