diff -r ca6c19529734 -r d73c5851a773 protocols/ircv3/purpleircv3messagehandlers.c --- a/protocols/ircv3/purpleircv3messagehandlers.c Tue Aug 20 16:10:56 2024 -0500 +++ b/protocols/ircv3/purpleircv3messagehandlers.c Tue Aug 20 16:13:18 2024 -0500 @@ -34,15 +34,15 @@ purple_ircv3_add_contact_to_conversation(PurpleContact *contact, PurpleConversation *conversation) { + PurpleContactInfo *info = PURPLE_CONTACT_INFO(contact); PurpleConversationMember *member = NULL; - - member = purple_conversation_find_member(conversation, - PURPLE_CONTACT_INFO(contact)); + PurpleConversationMembers *members = NULL; + members = purple_conversation_get_members(conversation); + + member = purple_conversation_members_find_member(members, info); if(!PURPLE_IS_CONVERSATION_MEMBER(member)) { - purple_conversation_add_member(conversation, - PURPLE_CONTACT_INFO(contact), - TRUE, NULL); + purple_conversation_members_add_member(members, info, TRUE, NULL); } } @@ -97,6 +97,7 @@ PurpleContact *contact = NULL; PurpleConversation *conversation = NULL; PurpleConversationManager *manager = NULL; + PurpleConversationMembers *members = NULL; GStrv params = NULL; guint n_params = 0; char *reason = NULL; @@ -124,6 +125,8 @@ return TRUE; } + members = purple_conversation_get_members(conversation); + /* We do want to find or create the contact, even on a part, because we * could have connected to a BNC and we weren't told about the contact yet. */ @@ -136,9 +139,9 @@ reason = g_strjoinv(" ", params + 1); } - purple_conversation_remove_member(conversation, - PURPLE_CONTACT_INFO(contact), TRUE, - reason); + purple_conversation_members_remove_member(members, + PURPLE_CONTACT_INFO(contact), + TRUE, reason); g_clear_pointer(&reason, g_free); @@ -194,11 +197,13 @@ value = ibis_tags_lookup(tags, IBIS_TAG_TYPING); if(!purple_strempty(value)) { PurpleConversationMember *member = NULL; + PurpleConversationMembers *members = NULL; PurpleTypingState state = PURPLE_TYPING_STATE_NONE; guint timeout = 1; - member = purple_conversation_find_member(conversation, - PURPLE_CONTACT_INFO(contact)); + members = purple_conversation_get_members(conversation); + member = purple_conversation_members_find_member(members, + PURPLE_CONTACT_INFO(contact)); if(purple_strequal(value, IBIS_TYPING_ACTIVE)) { state = PURPLE_TYPING_STATE_TYPING;