From e06814b25969ee89b4a44202b3d67c617f4a7e37 Mon Sep 17 00:00:00 2001 From: Alejandro <25-alejandro@users.noreply.git.krews.org> Date: Sun, 16 Jun 2019 17:31:50 +0300 Subject: [PATCH] Fix room moderation achievements --- src/main/java/com/eu/habbo/Emulator.java | 2 +- .../eu/habbo/habbohotel/commands/TestCommand.java | 1 - .../items/interactions/InteractionWater.java | 11 ++++++++++- .../java/com/eu/habbo/habbohotel/rooms/Room.java | 4 +++- .../incoming/rooms/RequestRoomSettingsEvent.java | 7 ------- .../incoming/users/UserActivityEvent.java | 15 +++++++++++++++ 6 files changed, 29 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/eu/habbo/Emulator.java b/src/main/java/com/eu/habbo/Emulator.java index 506b10c4..501ebab4 100644 --- a/src/main/java/com/eu/habbo/Emulator.java +++ b/src/main/java/com/eu/habbo/Emulator.java @@ -149,7 +149,7 @@ public final class Emulator { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); - while (!isShuttingDown && isReady) { + while (!isShuttingDown && isReady && reader.ready()) { try { String line = reader.readLine(); diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/TestCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/TestCommand.java index 16e15769..0a1ae289 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/TestCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/TestCommand.java @@ -53,7 +53,6 @@ public class TestCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) throws Exception { - if (true) return true; if (params[1].equalsIgnoreCase("ut")) { RoomTile tile = gameClient.getHabbo().getRoomUnit().getCurrentLocation(); gameClient.getHabbo().getHabboInfo().getCurrentRoom().updateTile(tile); diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/InteractionWater.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/InteractionWater.java index a7df3c6d..9af96347 100644 --- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/InteractionWater.java +++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/InteractionWater.java @@ -152,7 +152,7 @@ public class InteractionWater extends InteractionDefault { if(pet == null) return; - if (!pet.getRoomUnit().hasStatus(RoomUnitStatus.SWIM)) { + if (!pet.getRoomUnit().hasStatus(RoomUnitStatus.SWIM) && pet.getPetData().canSwim) { pet.getRoomUnit().setStatus(RoomUnitStatus.SWIM, ""); } } @@ -213,4 +213,13 @@ public class InteractionWater extends InteractionDefault { return super.canStackAt(room, itemsAtLocation); } + + @Override + public boolean canWalkOn(RoomUnit roomUnit, Room room, Object[] objects) { + if (!super.canWalkOn(roomUnit, room, objects)) return false; + + Pet pet = room.getPet(roomUnit); + + return pet == null || pet.getPetData().canSwim; + } } diff --git a/src/main/java/com/eu/habbo/habbohotel/rooms/Room.java b/src/main/java/com/eu/habbo/habbohotel/rooms/Room.java index 5ca538ea..246d9372 100644 --- a/src/main/java/com/eu/habbo/habbohotel/rooms/Room.java +++ b/src/main/java/com/eu/habbo/habbohotel/rooms/Room.java @@ -558,7 +558,9 @@ public class Room implements Comparable, ISerialize, Runnable { RoomTileState result = RoomTileState.OPEN; HabboItem lowestItem = null; HabboItem lowestChair = this.getLowestChair(tile); - for (HabboItem item : this.getItemsAt(tile)) { + THashSet items = this.getItemsAt(tile); + if (items == null) return RoomTileState.INVALID; + for (HabboItem item : items) { if (exclude != null && item == exclude) continue; if (lowestChair != null && item.getZ() > lowestChair.getZ() + 1.5) { diff --git a/src/main/java/com/eu/habbo/messages/incoming/rooms/RequestRoomSettingsEvent.java b/src/main/java/com/eu/habbo/messages/incoming/rooms/RequestRoomSettingsEvent.java index 5a9ad183..e025d33f 100644 --- a/src/main/java/com/eu/habbo/messages/incoming/rooms/RequestRoomSettingsEvent.java +++ b/src/main/java/com/eu/habbo/messages/incoming/rooms/RequestRoomSettingsEvent.java @@ -15,12 +15,5 @@ public class RequestRoomSettingsEvent extends MessageHandler { if (room != null) this.client.sendResponse(new RoomSettingsComposer(room)); - - AchievementManager.progressAchievement(this.client.getHabbo(), Emulator.getGameEnvironment().getAchievementManager().getAchievement("SelfModChatFloodFilterSeen")); - AchievementManager.progressAchievement(this.client.getHabbo(), Emulator.getGameEnvironment().getAchievementManager().getAchievement("SelfModChatHearRangeSeen")); - AchievementManager.progressAchievement(this.client.getHabbo(), Emulator.getGameEnvironment().getAchievementManager().getAchievement("SelfModChatScrollSpeedSeen")); - AchievementManager.progressAchievement(this.client.getHabbo(), Emulator.getGameEnvironment().getAchievementManager().getAchievement("SelfModDoorModeSeen")); - AchievementManager.progressAchievement(this.client.getHabbo(), Emulator.getGameEnvironment().getAchievementManager().getAchievement("SelfModWalkthroughSeen")); - } } diff --git a/src/main/java/com/eu/habbo/messages/incoming/users/UserActivityEvent.java b/src/main/java/com/eu/habbo/messages/incoming/users/UserActivityEvent.java index 42f5c746..4afb28fe 100644 --- a/src/main/java/com/eu/habbo/messages/incoming/users/UserActivityEvent.java +++ b/src/main/java/com/eu/habbo/messages/incoming/users/UserActivityEvent.java @@ -31,6 +31,21 @@ public class UserActivityEvent extends MessageHandler { case "forum.can.moderate.seen": AchievementManager.progressAchievement(this.client.getHabbo(), Emulator.getGameEnvironment().getAchievementManager().getAchievement("SelfModForumCanModerateSeen")); break; + case "room.settings.doormode.seen": + AchievementManager.progressAchievement(this.client.getHabbo(), Emulator.getGameEnvironment().getAchievementManager().getAchievement("SelfModDoorModeSeen")); + break; + case "room.settings.walkthrough.seen": + AchievementManager.progressAchievement(this.client.getHabbo(), Emulator.getGameEnvironment().getAchievementManager().getAchievement("SelfModWalkthroughSeen")); + break; + case "room.settings.chat.scrollspeed.seen": + AchievementManager.progressAchievement(this.client.getHabbo(), Emulator.getGameEnvironment().getAchievementManager().getAchievement("SelfModChatScrollSpeedSeen")); + break; + case "room.settings.chat.hearrange.seen": + AchievementManager.progressAchievement(this.client.getHabbo(), Emulator.getGameEnvironment().getAchievementManager().getAchievement("SelfModChatHearRangeSeen")); + break; + case "room.settings.chat.floodfilter.seen": + AchievementManager.progressAchievement(this.client.getHabbo(), Emulator.getGameEnvironment().getAchievementManager().getAchievement("SelfModChatFloodFilterSeen")); + break; } } } \ No newline at end of file