diff --git a/src/networkpluginserver.cpp b/src/networkpluginserver.cpp index d3b05652..bd0c9204 100644 --- a/src/networkpluginserver.cpp +++ b/src/networkpluginserver.cpp @@ -137,10 +137,15 @@ static void SigCatcher(int n) { static void handleBuddyPayload(LocalBuddy *buddy, const pbnetwork::Buddy &payload) { buddy->setName(payload.buddyname()); - buddy->setAlias(payload.alias()); - std::vector groups; - groups.push_back(payload.groups()); - buddy->setGroups(groups); + if (!payload.alias().empty()) { + buddy->setAlias(payload.alias()); + } + if (!payload.groups().empty()) { + std::vector groups; + groups.push_back(payload.groups()); + buddy->setGroups(groups); + } + buddy->setStatus(Swift::StatusShow((Swift::StatusShow::Type) payload.status()), payload.statusmessage()); buddy->setIconHash(payload.iconhash()); buddy->setBlocked(payload.blocked());