From ae555d29fb982e5f6531365e2bfb0b04ba82ca03 Mon Sep 17 00:00:00 2001 From: Alejandro <25-alejandro@users.noreply.git.krews.org> Date: Mon, 27 May 2019 23:17:54 +0300 Subject: [PATCH] Add my friends category to my world in navigator --- .../navigation/NavigatorManager.java | 3 +++ .../navigation/NavigatorUserFilter.java | 6 ++++++ .../habbo/habbohotel/rooms/RoomManager.java | 20 +++++++++++++++++++ .../eu/habbo/habbohotel/users/HabboStats.java | 2 +- 4 files changed, 30 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/eu/habbo/habbohotel/navigation/NavigatorManager.java b/src/main/java/com/eu/habbo/habbohotel/navigation/NavigatorManager.java index 2767a48f..070051e9 100644 --- a/src/main/java/com/eu/habbo/habbohotel/navigation/NavigatorManager.java +++ b/src/main/java/com/eu/habbo/habbohotel/navigation/NavigatorManager.java @@ -153,6 +153,9 @@ public class NavigatorManager { case "categories": rooms = Emulator.getGameEnvironment().getRoomManager().getRoomsPromoted(); break; + case "with_friends": + rooms = Emulator.getGameEnvironment().getRoomManager().getRoomsWithFriendsIn(habbo, 25); + break; default: return null; } diff --git a/src/main/java/com/eu/habbo/habbohotel/navigation/NavigatorUserFilter.java b/src/main/java/com/eu/habbo/habbohotel/navigation/NavigatorUserFilter.java index 997a1e5f..38f70200 100644 --- a/src/main/java/com/eu/habbo/habbohotel/navigation/NavigatorUserFilter.java +++ b/src/main/java/com/eu/habbo/habbohotel/navigation/NavigatorUserFilter.java @@ -42,6 +42,12 @@ public class NavigatorUserFilter extends NavigatorFilter { i++; } + List friendRooms = Emulator.getGameEnvironment().getNavigatorManager().getRoomsForCategory("with_friends", habbo); + if (!friendRooms.isEmpty()) { + resultLists.add(new SearchResultList(i, "with_friends", "", SearchAction.NONE, habbo.getHabboStats().navigatorWindowSettings.getListModeForCategory("with_friends"), habbo.getHabboStats().navigatorWindowSettings.getDisplayModeForCategory("with_friends"), friendRooms, true, true, DisplayOrder.ORDER_NUM, i)); + i++; + } + List rightRooms = Emulator.getGameEnvironment().getNavigatorManager().getRoomsForCategory("with_rights", habbo); if (!rightRooms.isEmpty()) { resultLists.add(new SearchResultList(i, "with_rights", "", SearchAction.NONE, habbo.getHabboStats().navigatorWindowSettings.getListModeForCategory("with_rights"), habbo.getHabboStats().navigatorWindowSettings.getDisplayModeForCategory("with_rights"), rightRooms, true, true, DisplayOrder.ORDER_NUM, i)); diff --git a/src/main/java/com/eu/habbo/habbohotel/rooms/RoomManager.java b/src/main/java/com/eu/habbo/habbohotel/rooms/RoomManager.java index de8e9241..967eb331 100644 --- a/src/main/java/com/eu/habbo/habbohotel/rooms/RoomManager.java +++ b/src/main/java/com/eu/habbo/habbohotel/rooms/RoomManager.java @@ -54,6 +54,7 @@ import gnu.trove.set.hash.THashSet; import java.sql.*; import java.util.*; import java.util.concurrent.ConcurrentHashMap; +import java.util.stream.Collectors; public class RoomManager { private static final int page = 0; @@ -1271,6 +1272,25 @@ public class RoomManager { return rooms; } + public ArrayList getRoomsWithFriendsIn(Habbo habbo, int limit) { + final ArrayList rooms = new ArrayList<>(); + + for (MessengerBuddy buddy : habbo.getMessenger().getFriends().values()) { + Habbo friend = Emulator.getGameEnvironment().getHabboManager().getHabbo(buddy.getId()); + + if (friend == null || friend.getHabboInfo() == null) continue; + + Room room = friend.getHabboInfo().getCurrentRoom(); + if (room != null) rooms.add(room); + + if (rooms.size() >= limit) break; + } + + Collections.sort(rooms); + + return rooms; + } + public ArrayList getRoomsWithAdminRights(Habbo habbo) { ArrayList rooms = new ArrayList<>(); diff --git a/src/main/java/com/eu/habbo/habbohotel/users/HabboStats.java b/src/main/java/com/eu/habbo/habbohotel/users/HabboStats.java index 2e180bfc..6dc2929d 100644 --- a/src/main/java/com/eu/habbo/habbohotel/users/HabboStats.java +++ b/src/main/java/com/eu/habbo/habbohotel/users/HabboStats.java @@ -326,7 +326,7 @@ public class HabboStats implements Runnable { statement.setString(31, this.allowTrade ? "1" : "0"); statement.setInt(32, this.forumPostsCount); statement.setInt(33, this.uiFlags); - + statement.setInt(34, this.habboInfo.getId()); statement.executeUpdate(); }