diff --git a/backends/libpurple/main.cpp b/backends/libpurple/main.cpp index 4be4e3a95ad50800ad175f495a5fb9a4955df1fa..b1cfa9dac322f71e21d9a444f86ba9b019f28c2a 100644 --- a/backends/libpurple/main.cpp +++ b/backends/libpurple/main.cpp @@ -118,7 +118,7 @@ class SpectrumNetworkPlugin : public NetworkPlugin { } } - virtual void handleVCardRequest(const std::string &user, const std::string &legacyName, unsigned int id) { + void handleVCardRequest(const std::string &user, const std::string &legacyName, unsigned int id) { PurpleAccount *account = m_sessions[user]; if (account) { serv_get_info(purple_account_get_connection(account), legacyName.c_str()); @@ -126,6 +126,18 @@ class SpectrumNetworkPlugin : public NetworkPlugin { } } + void handleBuddyUpdatedRequest(const std::string &user, const std::string &buddyName, const std::string &alias, const std::string &groups) { + PurpleAccount *account = m_sessions[user]; + if (account) { + PurpleBuddy *buddy = purple_find_buddy(account, buddyName.c_str()); + if (buddy) { + purple_blist_alias_buddy(buddy, alias.c_str()); + purple_blist_server_alias_buddy(buddy, alias.c_str()); + serv_alias_buddy(buddy); + } + } + } + std::map m_sessions; std::map m_accounts; std::map m_vcards;