diff --git a/src/main/java/com/eu/habbo/messages/outgoing/friends/UserSearchResultComposer.java b/src/main/java/com/eu/habbo/messages/outgoing/friends/UserSearchResultComposer.java index d27df321..4666d09e 100644 --- a/src/main/java/com/eu/habbo/messages/outgoing/friends/UserSearchResultComposer.java +++ b/src/main/java/com/eu/habbo/messages/outgoing/friends/UserSearchResultComposer.java @@ -7,11 +7,17 @@ import com.eu.habbo.messages.outgoing.MessageComposer; import com.eu.habbo.messages.outgoing.Outgoing; import gnu.trove.set.hash.THashSet; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; + public class UserSearchResultComposer extends MessageComposer { private final THashSet users; private final THashSet friends; private final Habbo habbo; + private static Comparator COMPARATOR = Comparator.comparing((MessengerBuddy b) -> b.getUsername().length()).thenComparing((MessengerBuddy b, MessengerBuddy b2) -> b.getUsername().compareToIgnoreCase(b2.getUsername())); + public UserSearchResultComposer(THashSet users, THashSet friends, Habbo habbo) { this.users = users; this.friends = friends; @@ -21,7 +27,7 @@ public class UserSearchResultComposer extends MessageComposer { @Override public ServerMessage compose() { this.response.init(Outgoing.UserSearchResultComposer); - THashSet u = new THashSet<>(); + List u = new ArrayList<>(); for (MessengerBuddy buddy : this.users) { if (!buddy.getUsername().equals(this.habbo.getHabboInfo().getUsername()) && !this.inFriendList(buddy)) { @@ -29,6 +35,11 @@ public class UserSearchResultComposer extends MessageComposer { } } + List friends = new ArrayList<>(this.friends); + + u.sort(UserSearchResultComposer.COMPARATOR); + friends.sort(UserSearchResultComposer.COMPARATOR); + this.response.appendInt(this.friends.size()); for (MessengerBuddy buddy : this.friends) { this.response.appendInt(buddy.getId());