From fd0eb0c2a5e49250752fc1f97fcb24e3e846d6f3 Mon Sep 17 00:00:00 2001 From: Remco Date: Tue, 24 Nov 2020 14:40:42 +0100 Subject: [PATCH] Refactored todo guildRightLevel method --- .../habbohotel/commands/CommandHandler.java | 5 +-- .../habbohotel/commands/EjectAllCommand.java | 3 +- .../com/eu/habbo/habbohotel/rooms/Room.java | 33 +++++++++---------- .../habbo/habbohotel/rooms/RoomManager.java | 8 ++--- .../habbohotel/rooms/RoomRightLevels.java | 16 +++++++++ .../items/MoodLightSaveSettingsEvent.java | 3 +- .../rooms/items/MoodLightTurnOnEvent.java | 3 +- .../rooms/items/MoveWallItemEvent.java | 3 +- .../promotions/BuyRoomPromotionEvent.java | 3 +- 9 files changed, 49 insertions(+), 28 deletions(-) diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/CommandHandler.java b/src/main/java/com/eu/habbo/habbohotel/commands/CommandHandler.java index 47e06da7..1ec167c4 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/CommandHandler.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/CommandHandler.java @@ -10,6 +10,7 @@ import com.eu.habbo.habbohotel.pets.PetCommand; import com.eu.habbo.habbohotel.pets.PetVocalsType; import com.eu.habbo.habbohotel.pets.RideablePet; import com.eu.habbo.habbohotel.rooms.Room; +import com.eu.habbo.habbohotel.rooms.RoomRightLevels; import com.eu.habbo.messages.outgoing.rooms.users.RoomUserTypingComposer; import com.eu.habbo.plugin.events.users.UserCommandEvent; import com.eu.habbo.plugin.events.users.UserExecuteCommandEvent; @@ -72,7 +73,7 @@ public class CommandHandler { for (String s : command.keys) { if (s.toLowerCase().equals(parts[0].toLowerCase())) { boolean succes = false; - if (command.permission == null || gameClient.getHabbo().hasPermission(command.permission, gameClient.getHabbo().getHabboInfo().getCurrentRoom() != null && (gameClient.getHabbo().getHabboInfo().getCurrentRoom().hasRights(gameClient.getHabbo())) || gameClient.getHabbo().hasPermission(Permission.ACC_PLACEFURNI) || (gameClient.getHabbo().getHabboInfo().getCurrentRoom() != null && gameClient.getHabbo().getHabboInfo().getCurrentRoom().getGuildId() > 0 && gameClient.getHabbo().getHabboInfo().getCurrentRoom().guildRightLevel(gameClient.getHabbo()) >= 2))) { + if (command.permission == null || gameClient.getHabbo().hasPermission(command.permission, gameClient.getHabbo().getHabboInfo().getCurrentRoom() != null && (gameClient.getHabbo().getHabboInfo().getCurrentRoom().hasRights(gameClient.getHabbo())) || gameClient.getHabbo().hasPermission(Permission.ACC_PLACEFURNI) || (gameClient.getHabbo().getHabboInfo().getCurrentRoom() != null && gameClient.getHabbo().getHabboInfo().getCurrentRoom().getGuildId() > 0 && gameClient.getHabbo().getHabboInfo().getCurrentRoom().getGuildRightLevel(gameClient.getHabbo()).isEqualOrGreaterThan(RoomRightLevels.GUILD_RIGHTS)))) { try { UserExecuteCommandEvent userExecuteCommandEvent = new UserExecuteCommandEvent(gameClient.getHabbo(), command, parts); Emulator.getPluginManager().fireEvent(userExecuteCommandEvent); @@ -319,4 +320,4 @@ public class CommandHandler { commands.clear(); LOGGER.info("Command Handler -> Disposed!"); } -} \ No newline at end of file +} diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/EjectAllCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/EjectAllCommand.java index 8e5ab590..51fa9589 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/EjectAllCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/EjectAllCommand.java @@ -3,6 +3,7 @@ package com.eu.habbo.habbohotel.commands; import com.eu.habbo.Emulator; import com.eu.habbo.habbohotel.gameclients.GameClient; import com.eu.habbo.habbohotel.rooms.Room; +import com.eu.habbo.habbohotel.rooms.RoomRightLevels; public class EjectAllCommand extends Command { public EjectAllCommand() { @@ -14,7 +15,7 @@ public class EjectAllCommand extends Command { Room room = gameClient.getHabbo().getHabboInfo().getCurrentRoom(); if (room != null) { - if (room.isOwner(gameClient.getHabbo()) || (room.hasGuild() && room.guildRightLevel(gameClient.getHabbo()) == 3)) { + if (room.isOwner(gameClient.getHabbo()) || (room.hasGuild() && room.getGuildRightLevel(gameClient.getHabbo()).equals(RoomRightLevels.GUILD_ADMIN))) { room.ejectAll(gameClient.getHabbo()); } } 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 1840a150..ed6a8e96 100644 --- a/src/main/java/com/eu/habbo/habbohotel/rooms/Room.java +++ b/src/main/java/com/eu/habbo/habbohotel/rooms/Room.java @@ -73,7 +73,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.awt.*; -import java.lang.reflect.InvocationTargetException; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; @@ -3841,20 +3840,27 @@ public class Room implements Comparable, ISerialize, Runnable { } } - //TODO: Return Enum - public int guildRightLevel(Habbo habbo) { + public RoomRightLevels getGuildRightLevel(Habbo habbo) { if (this.guild > 0 && habbo.getHabboStats().hasGuild(this.guild)) { Guild guild = Emulator.getGameEnvironment().getGuildManager().getGuild(this.guild); if (Emulator.getGameEnvironment().getGuildManager().getOnlyAdmins(guild).get(habbo.getHabboInfo().getId()) != null) - return 3; + return RoomRightLevels.GUILD_ADMIN; if (guild.getRights()) { - return 2; + return RoomRightLevels.GUILD_RIGHTS; } } - return 0; + return RoomRightLevels.NONE; + } + + /** + * @deprecated Deprecated since 2.5.0. Use {@link #getGuildRightLevel(Habbo)} instead. + */ + @Deprecated + public int guildRightLevel(Habbo habbo) { + return this.getGuildRightLevel(habbo).level; } public boolean isOwner(Habbo habbo) { @@ -3971,16 +3977,9 @@ public class Room implements Comparable, ISerialize, Runnable { } else if (this.hasRights(habbo) && !this.hasGuild()) { flatCtrl = RoomRightLevels.RIGHTS; } else if (this.hasGuild()) { - int level = this.guildRightLevel(habbo); - - if (level == 3) { - flatCtrl = RoomRightLevels.GUILD_ADMIN; - } else if (level == 2) { - flatCtrl = RoomRightLevels.GUILD_RIGHTS; - } + flatCtrl = this.getGuildRightLevel(habbo); } - habbo.getClient().sendResponse(new RoomRightsComposer(flatCtrl)); habbo.getRoomUnit().setStatus(RoomUnitStatus.FLAT_CONTROL, flatCtrl.level + ""); habbo.getRoomUnit().setRightsLevel(flatCtrl); @@ -4422,7 +4421,7 @@ public class Room implements Comparable, ISerialize, Runnable { } rotation %= 8; - if (this.hasRights(habbo) || this.guildRightLevel(habbo) >= 2 || habbo.hasPermission(Permission.ACC_MOVEROTATE)) { + if (this.hasRights(habbo) || this.getGuildRightLevel(habbo).isEqualOrGreaterThan(RoomRightLevels.GUILD_RIGHTS) || habbo.hasPermission(Permission.ACC_MOVEROTATE)) { return FurnitureMovementError.NONE; } @@ -4537,7 +4536,7 @@ public class Room implements Comparable, ISerialize, Runnable { } public FurnitureMovementError placeWallFurniAt(HabboItem item, String wallPosition, Habbo owner) { - if (!(this.hasRights(owner) || this.guildRightLevel(owner) >= 2)) { + if (!(this.hasRights(owner) || this.getGuildRightLevel(owner).isEqualOrGreaterThan(RoomRightLevels.GUILD_RIGHTS))) { return FurnitureMovementError.NO_RIGHTS; } @@ -4777,4 +4776,4 @@ public class Room implements Comparable, ISerialize, Runnable { THashSet roomUnits = getRoomUnits(); return roomUnits.stream().filter(unit -> unit.getCurrentLocation() == tile).collect(Collectors.toSet()); } -} \ No newline at end of file +} 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 0f5b83b0..102ca77d 100644 --- a/src/main/java/com/eu/habbo/habbohotel/rooms/RoomManager.java +++ b/src/main/java/com/eu/habbo/habbohotel/rooms/RoomManager.java @@ -531,14 +531,14 @@ public class RoomManager { habbo.hasPermission(Permission.ACC_ENTERANYROOM) || room.hasRights(habbo) || (room.getState().equals(RoomState.INVISIBLE) && room.hasRights(habbo)) || - (room.hasGuild() && room.guildRightLevel(habbo) > 2)) { + (room.hasGuild() && room.getGuildRightLevel(habbo).isGreaterThan(RoomRightLevels.GUILD_RIGHTS))) { this.openRoom(habbo, room, doorLocation); } else if (room.getState() == RoomState.LOCKED) { boolean rightsFound = false; synchronized (room.roomUnitLock) { for (Habbo current : room.getHabbos()) { - if (room.hasRights(current) || current.getHabboInfo().getId() == room.getOwnerId() || (room.hasGuild() && room.guildRightLevel(current) >= 2)) { + if (room.hasRights(current) || current.getHabboInfo().getId() == room.getOwnerId() || (room.hasGuild() && room.getGuildRightLevel(current).isEqualOrGreaterThan(RoomRightLevels.GUILD_RIGHTS))) { current.getClient().sendResponse(new DoorbellAddUserComposer(habbo.getHabboInfo().getUsername())); rightsFound = true; } @@ -875,7 +875,7 @@ public class RoomManager { habbo.getClient().sendResponse(new RoomUsersGuildBadgesComposer(guildBadges)); - if (room.hasRights(habbo) || (room.hasGuild() && room.guildRightLevel(habbo) >= 2)) { + if (room.hasRights(habbo) || (room.hasGuild() && room.getGuildRightLevel(habbo).isEqualOrGreaterThan(RoomRightLevels.GUILD_RIGHTS))) { if (!room.getHabboQueue().isEmpty()) { for (Habbo waiting : room.getHabboQueue().valueCollection()) { habbo.getClient().sendResponse(new DoorbellAddUserComposer(waiting.getHabboInfo().getUsername())); @@ -1555,4 +1555,4 @@ public class RoomManager { this.duration = duration; } } -} \ No newline at end of file +} diff --git a/src/main/java/com/eu/habbo/habbohotel/rooms/RoomRightLevels.java b/src/main/java/com/eu/habbo/habbohotel/rooms/RoomRightLevels.java index 9795ec9c..fef685a4 100644 --- a/src/main/java/com/eu/habbo/habbohotel/rooms/RoomRightLevels.java +++ b/src/main/java/com/eu/habbo/habbohotel/rooms/RoomRightLevels.java @@ -36,4 +36,20 @@ public enum RoomRightLevels { RoomRightLevels(int level) { this.level = level; } + + public boolean equals(RoomRightLevels level) { + return this.level == level.level; + } + + public boolean isEqualOrGreaterThan(RoomRightLevels level) { + return this.level >= level.level; + } + + public boolean isGreaterThan(RoomRightLevels level) { + return this.level > level.level; + } + + public boolean isLessThan(RoomRightLevels level) { + return this.level < level.level; + } } diff --git a/src/main/java/com/eu/habbo/messages/incoming/rooms/items/MoodLightSaveSettingsEvent.java b/src/main/java/com/eu/habbo/messages/incoming/rooms/items/MoodLightSaveSettingsEvent.java index 04934da6..731e6490 100644 --- a/src/main/java/com/eu/habbo/messages/incoming/rooms/items/MoodLightSaveSettingsEvent.java +++ b/src/main/java/com/eu/habbo/messages/incoming/rooms/items/MoodLightSaveSettingsEvent.java @@ -5,6 +5,7 @@ import com.eu.habbo.habbohotel.items.interactions.InteractionMoodLight; import com.eu.habbo.habbohotel.modtool.ScripterManager; import com.eu.habbo.habbohotel.rooms.Room; import com.eu.habbo.habbohotel.rooms.RoomMoodlightData; +import com.eu.habbo.habbohotel.rooms.RoomRightLevels; import com.eu.habbo.habbohotel.users.HabboItem; import com.eu.habbo.messages.incoming.MessageHandler; import com.eu.habbo.messages.outgoing.rooms.items.MoodLightDataComposer; @@ -20,7 +21,7 @@ public class MoodLightSaveSettingsEvent extends MessageHandler { public void handle() throws Exception { Room room = this.client.getHabbo().getHabboInfo().getCurrentRoom(); - if ((room.getGuildId() <= 0 && room.guildRightLevel(this.client.getHabbo()) < 2) && !room.hasRights(this.client.getHabbo())) + if ((room.getGuildId() <= 0 && room.getGuildRightLevel(this.client.getHabbo()).isLessThan(RoomRightLevels.GUILD_RIGHTS)) && !room.hasRights(this.client.getHabbo())) return; int id = this.packet.readInt(); diff --git a/src/main/java/com/eu/habbo/messages/incoming/rooms/items/MoodLightTurnOnEvent.java b/src/main/java/com/eu/habbo/messages/incoming/rooms/items/MoodLightTurnOnEvent.java index eee75a7b..4f2e8eb5 100644 --- a/src/main/java/com/eu/habbo/messages/incoming/rooms/items/MoodLightTurnOnEvent.java +++ b/src/main/java/com/eu/habbo/messages/incoming/rooms/items/MoodLightTurnOnEvent.java @@ -4,6 +4,7 @@ import com.eu.habbo.Emulator; import com.eu.habbo.habbohotel.items.interactions.InteractionMoodLight; import com.eu.habbo.habbohotel.rooms.Room; import com.eu.habbo.habbohotel.rooms.RoomMoodlightData; +import com.eu.habbo.habbohotel.rooms.RoomRightLevels; import com.eu.habbo.habbohotel.users.HabboItem; import com.eu.habbo.messages.incoming.MessageHandler; @@ -12,7 +13,7 @@ public class MoodLightTurnOnEvent extends MessageHandler { public void handle() throws Exception { Room room = this.client.getHabbo().getHabboInfo().getCurrentRoom(); - if ((room.getGuildId() > 0 && room.guildRightLevel(this.client.getHabbo()) < 2) && !room.hasRights(this.client.getHabbo())) + if ((room.getGuildId() > 0 && room.getGuildRightLevel(this.client.getHabbo()).isLessThan(RoomRightLevels.GUILD_RIGHTS)) && !room.hasRights(this.client.getHabbo())) return; for (HabboItem moodLight : room.getRoomSpecialTypes().getItemsOfType(InteractionMoodLight.class)) { diff --git a/src/main/java/com/eu/habbo/messages/incoming/rooms/items/MoveWallItemEvent.java b/src/main/java/com/eu/habbo/messages/incoming/rooms/items/MoveWallItemEvent.java index bb260add..10397073 100644 --- a/src/main/java/com/eu/habbo/messages/incoming/rooms/items/MoveWallItemEvent.java +++ b/src/main/java/com/eu/habbo/messages/incoming/rooms/items/MoveWallItemEvent.java @@ -3,6 +3,7 @@ package com.eu.habbo.messages.incoming.rooms.items; import com.eu.habbo.habbohotel.permissions.Permission; import com.eu.habbo.habbohotel.rooms.FurnitureMovementError; import com.eu.habbo.habbohotel.rooms.Room; +import com.eu.habbo.habbohotel.rooms.RoomRightLevels; import com.eu.habbo.habbohotel.users.HabboItem; import com.eu.habbo.messages.incoming.MessageHandler; import com.eu.habbo.messages.outgoing.generic.alerts.BubbleAlertComposer; @@ -16,7 +17,7 @@ public class MoveWallItemEvent extends MessageHandler { if (room == null) return; - if (!room.hasRights(this.client.getHabbo()) && !this.client.getHabbo().hasPermission(Permission.ACC_PLACEFURNI) && !(room.getGuildId() > 0 && room.guildRightLevel(this.client.getHabbo()) >= 2)) { + if (!room.hasRights(this.client.getHabbo()) && !this.client.getHabbo().hasPermission(Permission.ACC_PLACEFURNI) && !(room.getGuildId() > 0 && room.getGuildRightLevel(this.client.getHabbo()).isEqualOrGreaterThan(RoomRightLevels.GUILD_RIGHTS))) { this.client.sendResponse(new BubbleAlertComposer(BubbleAlertKeys.FURNITURE_PLACEMENT_ERROR.key, FurnitureMovementError.NO_RIGHTS.errorCode)); return; } diff --git a/src/main/java/com/eu/habbo/messages/incoming/rooms/promotions/BuyRoomPromotionEvent.java b/src/main/java/com/eu/habbo/messages/incoming/rooms/promotions/BuyRoomPromotionEvent.java index 511f9829..fdf37650 100644 --- a/src/main/java/com/eu/habbo/messages/incoming/rooms/promotions/BuyRoomPromotionEvent.java +++ b/src/main/java/com/eu/habbo/messages/incoming/rooms/promotions/BuyRoomPromotionEvent.java @@ -5,6 +5,7 @@ import com.eu.habbo.habbohotel.catalog.CatalogItem; import com.eu.habbo.habbohotel.catalog.CatalogPage; import com.eu.habbo.habbohotel.permissions.Permission; import com.eu.habbo.habbohotel.rooms.Room; +import com.eu.habbo.habbohotel.rooms.RoomRightLevels; import com.eu.habbo.messages.incoming.MessageHandler; import com.eu.habbo.messages.outgoing.catalog.AlertPurchaseFailedComposer; import com.eu.habbo.messages.outgoing.catalog.PurchaseOKComposer; @@ -35,7 +36,7 @@ public class BuyRoomPromotionEvent extends MessageHandler { if (this.client.getHabbo().getHabboInfo().canBuy(item)) { Room room = Emulator.getGameEnvironment().getRoomManager().getRoom(roomId); - if (!(room.isOwner(this.client.getHabbo()) || room.hasRights(this.client.getHabbo()) || room.guildRightLevel(this.client.getHabbo()) == 3)) { + if (!(room.isOwner(this.client.getHabbo()) || room.hasRights(this.client.getHabbo()) || room.getGuildRightLevel(this.client.getHabbo()).equals(RoomRightLevels.GUILD_ADMIN))) { return; }