From 564c8d647e834fcceef67509d2b8b8b02db5ec0e Mon Sep 17 00:00:00 2001 From: simoleo89 Date: Sun, 7 Jun 2026 00:34:50 +0200 Subject: [PATCH] fix(messenger): send friend look for offline friends in friend list FriendsComposer only serialized a buddy's look when online, sending an empty string for offline friends. The look is already loaded from the DB for every friend in Messenger.loadFriends (SELECT users.look), so the gate just discarded valid data: offline friends rendered with the anonymous/standard avatar in the friend list and messenger, while their profile (fetched separately) showed the real figure. Always serialize row.getLook(). StaffChatBuddy keeps a non-null look ("ADM") so there is no NPE risk, and UpdateFriendComposer already sent the look unconditionally, so this only aligns the initial friend list. --- .../com/eu/habbo/messages/outgoing/friends/FriendsComposer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Emulator/src/main/java/com/eu/habbo/messages/outgoing/friends/FriendsComposer.java b/Emulator/src/main/java/com/eu/habbo/messages/outgoing/friends/FriendsComposer.java index b84039a5..0891c091 100644 --- a/Emulator/src/main/java/com/eu/habbo/messages/outgoing/friends/FriendsComposer.java +++ b/Emulator/src/main/java/com/eu/habbo/messages/outgoing/friends/FriendsComposer.java @@ -40,7 +40,7 @@ public class FriendsComposer extends MessageComposer { this.response.appendInt(row.getGender().equals(HabboGender.M) ? 0 : 1); this.response.appendBoolean(row.getOnline() == 1); this.response.appendBoolean(row.inRoom()); //IN ROOM - this.response.appendString(row.getOnline() == 1 ? row.getLook() : ""); + this.response.appendString(row.getLook()); // send look for offline friends too (loaded from DB) this.response.appendInt(row.getCategoryId()); //Friends category this.response.appendString(row.getMotto()); this.response.appendString(""); //Last seen as DATETIMESTRING