diff --git a/src/main/java/com/eu/habbo/Emulator.java b/src/main/java/com/eu/habbo/Emulator.java index 695d6b11..25f2bda9 100644 --- a/src/main/java/com/eu/habbo/Emulator.java +++ b/src/main/java/com/eu/habbo/Emulator.java @@ -35,16 +35,14 @@ public final class Emulator { public static final int MAJOR = 4; public static final int MINOR = 0; - public static final int BUILD = 0; + public static final int REVISION = 0; public static final String PREVIEW = "Developer Preview"; - public static final String version = "Arcturus Morningstar" + " " + MAJOR + "." + MINOR + "." + BUILD + " " + PREVIEW; + public static final String VERSION = "Arcturus Morningstar" + " " + MAJOR + "." + MINOR + "." + REVISION + " " + PREVIEW; public static String build = ""; public static boolean isReady = false; public static boolean isShuttingDown = false; public static boolean stopped = false; public static boolean debugging = false; - - private static final Logger LOGGER = LoggerFactory.getLogger(Emulator.class); private static final String OS_NAME = (System.getProperty("os.name") != null ? System.getProperty("os.name") : "Unknown"); private static final String CLASS_PATH = (System.getProperty("java.class.path") != null ? System.getProperty("java.class.path") : "Unknown"); @@ -87,9 +85,9 @@ public final class Emulator { } public static void promptEnterKey(){ - System.out.println("\n"); - System.out.println("This is a developer preview build. Your plugins for Arcturus Morningstar 3.x will NOT work on this build."); - System.out.println("Press \"ENTER\" if you agree to the terms stated above..."); + log.info("\n"); + log.info("This is a developer preview build. Your plugins for Arcturus Morningstar 3.x will NOT work on this build."); + log.info("Press \"ENTER\" if you agree to the terms stated above..."); Scanner scanner = new Scanner(System.in); scanner.nextLine(); } @@ -121,7 +119,7 @@ public final class Emulator { } log.info("eek. Has it really been a year?"); log.info("This project is for educational purposes only. This Emulator is an open-source fork of Arcturus created by TheGeneral."); - log.info("Version: {}", version); + log.info("Version: {}", VERSION); log.info("Build: {}", build); log.info("Follow our development at https://git.krews.org/morningstar/Arcturus-Community"); @@ -238,7 +236,7 @@ public final class Emulator { Emulator.isShuttingDown = true; Emulator.isReady = false; - log.info("Stopping Arcturus Morningstar {}", version); + log.info("Stopping Arcturus Morningstar {}", VERSION); try { if (Emulator.getPluginManager() != null) @@ -289,7 +287,7 @@ public final class Emulator { } catch (Exception ignored) { } - log.info("Stopped Arcturus Morningstar {}", version); + log.info("Stopped Arcturus Morningstar {}", VERSION); if (Emulator.database != null) { Emulator.getDatabase().dispose(); diff --git a/src/main/java/com/eu/habbo/core/ErrorLog.java b/src/main/java/com/eu/habbo/core/ErrorLog.java index aa2a5c6a..96ca231c 100644 --- a/src/main/java/com/eu/habbo/core/ErrorLog.java +++ b/src/main/java/com/eu/habbo/core/ErrorLog.java @@ -22,8 +22,8 @@ public class ErrorLog implements DatabaseLoggable { public final String stackTrace; public ErrorLog(String type, Throwable e) { - this.version = Emulator.version; - this.buildHash = Emulator.version; + this.version = Emulator.VERSION; + this.buildHash = Emulator.VERSION; this.timeStamp = Emulator.getIntUnixTimestamp(); this.type = type; @@ -42,7 +42,7 @@ public class ErrorLog implements DatabaseLoggable { } public ErrorLog(String type, String message) { - this.version = Emulator.version; + this.version = Emulator.VERSION; this.buildHash = Emulator.build; this.timeStamp = Emulator.getIntUnixTimestamp(); diff --git a/src/main/java/com/eu/habbo/core/consolecommands/ConsoleInfoCommand.java b/src/main/java/com/eu/habbo/core/consolecommands/ConsoleInfoCommand.java index b0001ee2..e2be1706 100644 --- a/src/main/java/com/eu/habbo/core/consolecommands/ConsoleInfoCommand.java +++ b/src/main/java/com/eu/habbo/core/consolecommands/ConsoleInfoCommand.java @@ -21,7 +21,7 @@ public class ConsoleInfoCommand extends ConsoleCommand { long minute = TimeUnit.SECONDS.toMinutes(seconds) - (TimeUnit.SECONDS.toHours(seconds) * 60); long second = TimeUnit.SECONDS.toSeconds(seconds) - (TimeUnit.SECONDS.toMinutes(seconds) * 60); - log.info("Emulator version: " + Emulator.version); + log.info("Emulator version: " + Emulator.VERSION); log.info("Emulator build: " + Emulator.build); log.info(""); diff --git a/src/main/java/com/eu/habbo/habbohotel/achievements/Achievement.java b/src/main/java/com/eu/habbo/habbohotel/achievements/Achievement.java index 1e16f29b..6b40995c 100644 --- a/src/main/java/com/eu/habbo/habbohotel/achievements/Achievement.java +++ b/src/main/java/com/eu/habbo/habbohotel/achievements/Achievement.java @@ -42,10 +42,8 @@ public class Achievement { if (progress > 0) { for (AchievementLevel level : this.levels.values()) { if (progress >= level.getProgress()) { - if (l != null) { - if (l.getLevel() > level.getLevel()) { - continue; - } + if (l != null && l.getLevel() > level.getLevel()) { + continue; } l = level; @@ -57,7 +55,6 @@ public class Achievement { public AchievementLevel getNextLevel(int currentLevel) { - AchievementLevel l = null; for (AchievementLevel level : this.levels.values()) { if (level.getLevel() == (currentLevel + 1)) diff --git a/src/main/java/com/eu/habbo/habbohotel/achievements/AchievementManager.java b/src/main/java/com/eu/habbo/habbohotel/achievements/AchievementManager.java index 001585cc..a7c23ace 100644 --- a/src/main/java/com/eu/habbo/habbohotel/achievements/AchievementManager.java +++ b/src/main/java/com/eu/habbo/habbohotel/achievements/AchievementManager.java @@ -21,12 +21,15 @@ import gnu.trove.procedure.TObjectIntProcedure; import lombok.extern.slf4j.Slf4j; import java.sql.*; +import java.util.Arrays; import java.util.LinkedHashMap; import java.util.Map; +import static com.eu.habbo.database.DatabaseConstants.CAUGHT_SQL_EXCEPTION; + @Slf4j public class AchievementManager { - public static boolean TALENTTRACK_ENABLED = false; + public static boolean TALENT_TRACK_ENABLED = false; private final THashMap<String, Achievement> achievements; private final THashMap<TalentTrackType, LinkedHashMap<Integer, TalentTrackLevel>> talentTrackLevels; @@ -57,7 +60,7 @@ public class AchievementManager { statement.setInt(4, amount); statement.execute(); } catch (SQLException e) { - log.error("Caught SQL exception", e); + log.error(CAUGHT_SQL_EXCEPTION, e); } } } @@ -68,13 +71,7 @@ public class AchievementManager { } public static void progressAchievement(Habbo habbo, Achievement achievement, int amount) { - if (achievement == null) - return; - - if (habbo == null) - return; - - if (!habbo.isOnline()) + if (achievement == null || habbo == null || !habbo.isOnline()) return; int currentProgress = habbo.getHabboStats().getAchievementProgress(achievement); @@ -102,17 +99,12 @@ public class AchievementManager { AchievementLevel newLevel = achievement.getLevelForProgress(currentProgress + amount); - if (AchievementManager.TALENTTRACK_ENABLED) { - for (TalentTrackType type : TalentTrackType.values()) { - if (Emulator.getGameEnvironment().getAchievementManager().talentTrackLevels.containsKey(type)) { - for (Map.Entry<Integer, TalentTrackLevel> entry : Emulator.getGameEnvironment().getAchievementManager().talentTrackLevels.get(type).entrySet()) { - if (entry.getValue().achievements.containsKey(achievement)) { - Emulator.getGameEnvironment().getAchievementManager().handleTalentTrackAchievement(habbo, type); - break; - } - } - } - } + if (AchievementManager.TALENT_TRACK_ENABLED) { + Arrays.stream(TalentTrackType.values()) + .filter(type -> Emulator.getGameEnvironment().getAchievementManager().talentTrackLevels.containsKey(type)) + .filter(type -> Emulator.getGameEnvironment().getAchievementManager().talentTrackLevels.get(type).entrySet().stream() + .anyMatch(entry -> entry.getValue().achievements.containsKey(achievement))) + .forEach(type -> Emulator.getGameEnvironment().getAchievementManager().handleTalentTrackAchievement(habbo, type)); } if (newLevel == null || @@ -163,10 +155,8 @@ public class AchievementManager { Emulator.getThreading().run(badge); - if (badge.getSlot() > 0) { - if (habbo.getHabboInfo().getCurrentRoom() != null) { - habbo.getHabboInfo().getCurrentRoom().sendComposer(new UserBadgesComposer(habbo.getInventory().getBadgesComponent().getWearingBadges(), habbo.getHabboInfo().getId()).compose()); - } + if (badge.getSlot() > 0 && habbo.getHabboInfo().getCurrentRoom() != null) { + habbo.getHabboInfo().getCurrentRoom().sendComposer(new UserBadgesComposer(habbo.getInventory().getBadgesComponent().getWearingBadges(), habbo.getHabboInfo().getId()).compose()); } habbo.getClient().sendResponse(new UnseenItemsComposer(badge.getId(), UnseenItemsComposer.AddHabboItemCategory.BADGE)); @@ -207,7 +197,7 @@ public class AchievementManager { statement.setInt(3, 1); statement.execute(); } catch (SQLException e) { - log.error("Caught SQL exception", e); + log.error(CAUGHT_SQL_EXCEPTION, e); } } @@ -221,7 +211,7 @@ public class AchievementManager { } statement.executeBatch(); } catch (SQLException e) { - log.error("Caught SQL exception", e); + log.error(CAUGHT_SQL_EXCEPTION, e); } } @@ -235,7 +225,7 @@ public class AchievementManager { } } } catch (SQLException e) { - log.error("Caught SQL exception", e); + log.error(CAUGHT_SQL_EXCEPTION, e); } return 0; @@ -258,7 +248,7 @@ public class AchievementManager { } } } catch (SQLException e) { - log.error("Caught SQL exception", e); + log.error(CAUGHT_SQL_EXCEPTION, e); } catch (Exception e) { log.error("Caught exception", e); } @@ -280,7 +270,7 @@ public class AchievementManager { } } } catch (SQLException e) { - log.error("Caught SQL exception", e); + log.error(CAUGHT_SQL_EXCEPTION, e); log.error("Achievement Manager -> Failed to load!"); return; } @@ -309,7 +299,7 @@ public class AchievementManager { return this.achievements; } - public LinkedHashMap<Integer, TalentTrackLevel> getTalenTrackLevels(TalentTrackType type) { + public Map<Integer, TalentTrackLevel> getTalenTrackLevels(TalentTrackType type) { return this.talentTrackLevels.get(type); } @@ -318,15 +308,12 @@ public class AchievementManager { for (Map.Entry<Integer, TalentTrackLevel> entry : this.talentTrackLevels.get(type).entrySet()) { final boolean[] allCompleted = {true}; - entry.getValue().achievements.forEachEntry(new TObjectIntProcedure<Achievement>() { - @Override - public boolean execute(Achievement a, int b) { - if (habbo.getHabboStats().getAchievementProgress(a) < b) { - allCompleted[0] = false; - } - - return allCompleted[0]; + entry.getValue().achievements.forEachEntry((a, b) -> { + if (habbo.getHabboStats().getAchievementProgress(a) < b) { + allCompleted[0] = false; } + + return allCompleted[0]; }); if (allCompleted[0]) { diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/AboutCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/AboutCommand.java index 64be09e6..489aef83 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/AboutCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/AboutCommand.java @@ -13,7 +13,7 @@ public class AboutCommand extends Command { public AboutCommand() { super(null, new String[]{"about", "info", "online", "server"}); } - public static final String credits = """ + public static final String CREDITS = """ Arcturus Morningstar is an opensource project based on Arcturus By TheGeneral\s The Following people have all contributed to this emulator: TheGeneral @@ -58,7 +58,7 @@ public class AboutCommand extends Command { long minute = TimeUnit.SECONDS.toMinutes(seconds) - (TimeUnit.SECONDS.toHours(seconds) * 60); long second = TimeUnit.SECONDS.toSeconds(seconds) - (TimeUnit.SECONDS.toMinutes(seconds) * 60); - String message = "<b>" + Emulator.version + "</b>\r\n"; + String message = "<b>" + Emulator.VERSION + "</b>\r\n"; if (Emulator.getConfig().getBoolean("info.shown", true)) { message += "<b>Hotel Statistics</b>\r" + @@ -79,7 +79,7 @@ public class AboutCommand extends Command { "<b>Thanks for using Arcturus. Report issues on the forums. http://arcturus.wf \r\r" + " - The General"; gameClient.getHabbo().alert(message); - gameClient.sendResponse(new MOTDNotificationComposer(Collections.singletonList(credits))); + gameClient.sendResponse(new MOTDNotificationComposer(Collections.singletonList(CREDITS))); return true; } } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/AddYoutubePlaylistCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/AddYoutubePlaylistCommand.java index be689722..03a2cea4 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/AddYoutubePlaylistCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/AddYoutubePlaylistCommand.java @@ -19,7 +19,7 @@ public class AddYoutubePlaylistCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) throws Exception { if (params.length < 3) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_add_youtube_playlist.usage")); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_add_youtube_playlist.usage")); return true; } @@ -28,19 +28,19 @@ public class AddYoutubePlaylistCommand extends Command { try { itemId = Integer.parseInt(params[1]); } catch (NumberFormatException e) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_add_youtube_playlist.no_base_item")); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_add_youtube_playlist.no_base_item")); return true; } if (Emulator.getGameEnvironment().getItemManager().getItem(itemId) == null) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_add_youtube_playlist.no_base_item")); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_add_youtube_playlist.no_base_item")); return true; } YoutubeManager.YoutubePlaylist playlist = Emulator.getGameEnvironment().getItemManager().getYoutubeManager().getPlaylistDataById(params[2]); if (playlist == null) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_add_youtube_playlist.failed_playlist")); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_add_youtube_playlist.failed_playlist")); return true; } @@ -55,7 +55,7 @@ public class AddYoutubePlaylistCommand extends Command { log.error("Caught SQL exception", e); } - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_add_youtube_playlist")); + gameClient.getHabbo().whisper(getTextsValue("commands.succes.cmd_add_youtube_playlist")); return true; } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/AlertCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/AlertCommand.java index 17c2042f..4af606f0 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/AlertCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/AlertCommand.java @@ -5,6 +5,9 @@ import com.eu.habbo.habbohotel.gameclients.GameClient; import com.eu.habbo.habbohotel.rooms.RoomChatMessageBubbles; import com.eu.habbo.habbohotel.users.Habbo; +import java.util.stream.Collectors; +import java.util.stream.IntStream; + public class AlertCommand extends Command { public AlertCommand() { @@ -14,28 +17,24 @@ public class AlertCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) { if (params.length < 2) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_alert.forgot_username"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_alert.forgot_username"), RoomChatMessageBubbles.ALERT); return true; } if (params.length < 3) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_alert.forgot_message"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_alert.forgot_message"), RoomChatMessageBubbles.ALERT); return true; } String targetUsername = params[1]; - StringBuilder message = new StringBuilder(); + String message = IntStream.range(2, params.length).mapToObj(i -> params[i] + " ").collect(Collectors.joining()); - for (int i = 2; i < params.length; i++) { - message.append(params[i]).append(" "); - } - - Habbo habbo = Emulator.getGameEnvironment().getHabboManager().getHabbo(targetUsername); + Habbo habbo = getHabbo(targetUsername); if (habbo != null) { habbo.alert(message + "\r\n -" + gameClient.getHabbo().getHabboInfo().getUsername()); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_alert.message_send").replace("%user%", targetUsername), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.succes.cmd_alert.message_send"), targetUsername), RoomChatMessageBubbles.ALERT); } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_alert.user_offline").replace("%user%", targetUsername), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.error.cmd_alert.user_offline"), targetUsername), RoomChatMessageBubbles.ALERT); } return true; } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/AllowTradingCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/AllowTradingCommand.java index 649d5137..6d216a86 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/AllowTradingCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/AllowTradingCommand.java @@ -16,21 +16,21 @@ public class AllowTradingCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) throws Exception { if (params.length == 1) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_allow_trading.forgot_username")); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_allow_trading.forgot_username")); return true; } if (params.length == 2) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_allow_trading.forgot_trade").replace("%username%", params[1])); + gameClient.getHabbo().whisper(replaceUsername(getTextsValue("commands.error.cmd_allow_trading.forgot_trade"), params[1])); return true; } final String username = params[1]; final String option = params[2]; - if (option.equalsIgnoreCase(Emulator.getTexts().getValue("generic.yes")) || option.equalsIgnoreCase(Emulator.getTexts().getValue("generic.no"))) { - final boolean enabled = option.equalsIgnoreCase(Emulator.getTexts().getValue("generic.yes")); - final Habbo habbo = Emulator.getGameEnvironment().getHabboManager().getHabbo(username); + if (option.equalsIgnoreCase(getTextsValue("generic.yes")) || option.equalsIgnoreCase(getTextsValue("generic.no"))) { + final boolean enabled = option.equalsIgnoreCase(getTextsValue("generic.yes")); + final Habbo habbo = getHabbo(username); if (habbo != null) { if (!enabled) { @@ -41,28 +41,28 @@ public class AllowTradingCommand extends Command { } } habbo.getHabboStats().setAllowTrade(enabled); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_allow_trading." + (enabled ? "enabled" : "disabled")).replace("%username%", params[1])); + gameClient.getHabbo().whisper(replaceUsername(getTextsValue("commands.succes.cmd_allow_trading." + (enabled ? "enabled" : "disabled")), params[1])); habbo.getClient().sendResponse(new UserPerksComposer(habbo)); return true; } else { boolean found; try (Connection connection = Emulator.getDatabase().getDataSource().getConnection(); PreparedStatement statement = connection.prepareStatement("UPDATE users_settings INNER JOIN users ON users.id = users_settings.user_id SET can_trade = ?, tradelock_amount = tradelock_amount + ? WHERE users.username LIKE ?")) { - statement.setString(1, enabled ? "1" : "0"); - statement.setInt(2, enabled ? 0 : 1); + statement.setString(1, booleanToIntString(enabled)); + statement.setInt(2, booleanToInt(enabled)); statement.setString(3, username); found = statement.executeUpdate() > 0; } if (!found) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_allow_trading.user_not_found").replace("%username%", params[1])); + gameClient.getHabbo().whisper(replaceUsername(getTextsValue("commands.error.cmd_allow_trading.user_not_found"), params[1])); return true; } - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_allow_trading." + (enabled ? "enabled" : "disabled")).replace("%username%", params[1])); + gameClient.getHabbo().whisper(replaceUsername(getTextsValue("commands.succes.cmd_allow_trading." + (enabled ? "enabled" : "disabled")), params[1])); } } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_allow_trading.incorrect_setting").replace("%enabled%", Emulator.getTexts().getValue("generic.yes")).replace("%disabled%", Emulator.getTexts().getValue("generic.no"))); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_allow_trading.incorrect_setting").replace("%enabled%", getTextsValue("generic.yes")).replace("%disabled%", getTextsValue("generic.no"))); } return true; } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/BlockAlertCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/BlockAlertCommand.java index ab8ff887..c23e0f74 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/BlockAlertCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/BlockAlertCommand.java @@ -13,7 +13,7 @@ public class BlockAlertCommand extends Command { public boolean handle(GameClient gameClient, String[] params) { if (gameClient.getHabbo().getHabboInfo().getCurrentRoom() != null) { gameClient.getHabbo().getHabboStats().setBlockStaffAlerts(!gameClient.getHabbo().getHabboStats().isBlockStaffAlerts()); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_blockalert").replace("%state%", (gameClient.getHabbo().getHabboStats().isBlockStaffAlerts() ? Emulator.getTexts().getValue("generic.on") : Emulator.getTexts().getValue("generic.off"))), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.succes.cmd_blockalert").replace("%state%", (gameClient.getHabbo().getHabboStats().isBlockStaffAlerts() ? getTextsValue("generic.on") : getTextsValue("generic.off"))), RoomChatMessageBubbles.ALERT); return true; } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/BotsCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/BotsCommand.java index 6c49e89e..096c39b1 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/BotsCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/BotsCommand.java @@ -14,13 +14,18 @@ public class BotsCommand extends Command { if (gameClient.getHabbo().getHabboInfo().getCurrentRoom() == null || !gameClient.getHabbo().getHabboInfo().getCurrentRoom().hasRights(gameClient.getHabbo())) return false; - StringBuilder data = new StringBuilder(Emulator.getTexts().getValue("total") + ": " + gameClient.getHabbo().getHabboInfo().getCurrentRoom().getCurrentBots().values().length); + StringBuilder data = new StringBuilder(getTextsValue("total") + ": " + gameClient.getHabbo().getHabboInfo().getCurrentRoom().getCurrentBots().values().length); - for (Object bot : gameClient.getHabbo().getHabboInfo().getCurrentRoom().getCurrentBots().values()) { - if (bot instanceof Bot) { - data.append("\r"); - data.append("<b>").append(Emulator.getTexts().getValue("generic.bot.name")).append("</b>: ").append(((Bot) bot).getName()).append(" <b>").append(Emulator.getTexts().getValue("generic.bot.id")).append("</b>: ").append(((Bot) bot).getId()); - } + for (Bot bot : gameClient.getHabbo().getHabboInfo().getCurrentRoom().getCurrentBots().valueCollection()) { + data.append("\r"); + data.append("<b>"); + data.append(Emulator.getTexts().getValue("generic.bot.name")); + data.append("</b>: "); + data.append(bot.getName()); + data.append(" <b>"); + data.append(Emulator.getTexts().getValue("generic.bot.id")); + data.append("</b>: "); + data.append(bot.getId()); } gameClient.getHabbo().alert(data.toString()); diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/ChangeNameCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/ChangeNameCommand.java index 25bf2774..aedd2342 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/ChangeNameCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/ChangeNameCommand.java @@ -21,16 +21,16 @@ public class ChangeNameCommand extends Command { } // check if the habbo exists or is online - Habbo habbo = Emulator.getGameEnvironment().getHabboManager().getHabbo(params[1]); + Habbo habbo = getHabbo(params[1]); - if ( habbo == null) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_changename.user_not_found").replace("%user%", params[1])); + if (habbo == null) { + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.error.cmd_changename.user_not_found"), params[1])); return true; } // this runs if params[1] is a valid habbo - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_changename.done").replace("%user%", params[1])); - habbo.alert(Emulator.getTexts().getValue("commands.succes.cmd_changename.received")); + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.succes.cmd_changename.done"), params[1])); + habbo.alert(getTextsValue("commands.succes.cmd_changename.received")); habbo.getHabboStats().setAllowNameChange(!habbo.getHabboStats().isAllowNameChange()); habbo.getClient().sendResponse(new UserObjectComposer(habbo)); return true; diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/ChatTypeCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/ChatTypeCommand.java index 57f8a421..56c69289 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/ChatTypeCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/ChatTypeCommand.java @@ -19,7 +19,7 @@ public class ChatTypeCommand extends Command { try { chatColor = Integer.parseInt(params[1]); } catch (Exception e) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_chatcolor.numbers"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_chatcolor.numbers"), RoomChatMessageBubbles.ALERT); return true; } @@ -28,14 +28,14 @@ public class ChatTypeCommand extends Command { } if (chatColor < 0) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_chatcolor.numbers"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_chatcolor.numbers"), RoomChatMessageBubbles.ALERT); return true; } if (!gameClient.getHabbo().hasPermission(Permission.ACC_ANYCHATCOLOR)) { for (String s : Emulator.getConfig().getValue("commands.cmd_chatcolor.banned_numbers").split(";")) { if (Integer.parseInt(s) == chatColor) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_chatcolor.banned"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_chatcolor.banned"), RoomChatMessageBubbles.ALERT); return true; } } @@ -43,10 +43,10 @@ public class ChatTypeCommand extends Command { gameClient.getHabbo().getHabboStats().setChatColor(RoomChatMessageBubbles.getBubble(chatColor)); gameClient.sendResponse(new AccountPreferencesComposer(gameClient.getHabbo())); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_chatcolor.set").replace("%chat%", RoomChatMessageBubbles.values()[chatColor].name().replace("_", " ").toLowerCase()), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.succes.cmd_chatcolor.set").replace("%chat%", RoomChatMessageBubbles.values()[chatColor].name().replace("_", " ").toLowerCase()), RoomChatMessageBubbles.ALERT); } else { gameClient.getHabbo().getHabboStats().setChatColor(RoomChatMessageBubbles.NORMAL); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_chatcolor.reset"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.succes.cmd_chatcolor.reset"), RoomChatMessageBubbles.ALERT); } return true; } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/Command.java b/src/main/java/com/eu/habbo/habbohotel/commands/Command.java index 711bede9..1fe51d85 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/Command.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/Command.java @@ -1,6 +1,8 @@ package com.eu.habbo.habbohotel.commands; +import com.eu.habbo.Emulator; import com.eu.habbo.habbohotel.gameclients.GameClient; +import com.eu.habbo.habbohotel.users.Habbo; import lombok.AllArgsConstructor; @AllArgsConstructor @@ -11,4 +13,33 @@ public abstract class Command { public abstract boolean handle(GameClient gameClient, String[] params) throws Exception; + + + protected Habbo getHabbo(String username) { + return Emulator.getGameEnvironment().getHabboManager().getHabbo(username); + } + + protected String getTextsValue(String key) { + return Emulator.getTexts().getValue(key); + } + + protected String getTextsValue(String key, String defaultValue) { + return Emulator.getTexts().getValue(key, defaultValue); + } + + protected String replaceUser(String input, String user) { + return input.replace("%user%", user); + } + + protected String replaceUsername(String input, String user) { + return input.replace("%username%", user); + } + + protected int booleanToInt(boolean value) { + return value ? 1 : 0; + } + + protected String booleanToIntString(boolean value) { + return value ? "1" : "0"; + } } \ No newline at end of file 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 bbaea77d..3b1c4720 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/CommandHandler.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/CommandHandler.java @@ -5,11 +5,19 @@ import com.eu.habbo.core.CommandLog; import com.eu.habbo.habbohotel.commands.badge.BadgeCommand; import com.eu.habbo.habbohotel.commands.badge.MassBadgeCommand; import com.eu.habbo.habbohotel.commands.badge.RoomBadgeCommand; +import com.eu.habbo.habbohotel.commands.badge.TakeBadgeCommand; import com.eu.habbo.habbohotel.commands.bans.BanCommand; +import com.eu.habbo.habbohotel.commands.bans.IPBanCommand; import com.eu.habbo.habbohotel.commands.bans.MachineBanCommand; import com.eu.habbo.habbohotel.commands.bans.SuperbanCommand; +import com.eu.habbo.habbohotel.commands.credits.CreditsCommand; +import com.eu.habbo.habbohotel.commands.credits.MassCreditsCommand; +import com.eu.habbo.habbohotel.commands.credits.RoomCreditsCommand; import com.eu.habbo.habbohotel.commands.gift.GiftCommand; import com.eu.habbo.habbohotel.commands.gift.MassGiftCommand; +import com.eu.habbo.habbohotel.commands.pixels.MassPixelsCommand; +import com.eu.habbo.habbohotel.commands.pixels.PixelCommand; +import com.eu.habbo.habbohotel.commands.pixels.RoomPixelsCommand; import com.eu.habbo.habbohotel.commands.points.MassPointsCommand; import com.eu.habbo.habbohotel.commands.points.PointsCommand; import com.eu.habbo.habbohotel.commands.points.RoomPointsCommand; @@ -36,7 +44,7 @@ import java.util.NoSuchElementException; @Slf4j public class CommandHandler { - private final static THashMap<String, Command> commands = new THashMap<>(5); + private static final THashMap<String, Command> commands = new THashMap<>(5); private static final Comparator<Command> ALPHABETICAL_ORDER = (c1, c2) -> { int res = String.CASE_INSENSITIVE_ORDER.compare(c1.permission, c2.permission); return (res != 0) ? res : c1.permission.compareTo(c2.permission); @@ -59,7 +67,7 @@ public class CommandHandler { public static void addCommand(Class<? extends Command> command) { try { //command.getConstructor().setAccessible(true); - addCommand(command.newInstance()); + addCommand(command.getDeclaredConstructor().newInstance()); log.debug("Added command: {}", command.getName()); } catch (Exception e) { log.error("Caught exception", e); @@ -132,32 +140,30 @@ public class CommandHandler { Pet pet = petIterator.value(); - if (pet != null) { - if (pet.getName().equalsIgnoreCase(args[0])) { - StringBuilder s = new StringBuilder(); + if (pet != null && pet.getName().equalsIgnoreCase(args[0])) { + StringBuilder s = new StringBuilder(); - for (int i = 1; i < args.length; i++) { - s.append(args[i]).append(" "); - } + for (int i = 1; i < args.length; i++) { + s.append(args[i]).append(" "); + } - s = new StringBuilder(s.substring(0, s.length() - 1)); + s = new StringBuilder(s.substring(0, s.length() - 1)); - for (PetCommand command : pet.getPetData().getPetCommands()) { - if (command.getKey().equalsIgnoreCase(s.toString())) { - if (pet instanceof RideablePet && ((RideablePet) pet).getRider() != null) { - if (((RideablePet) pet).getRider().getHabboInfo().getId() == gameClient.getHabbo().getHabboInfo().getId()) { - ((RideablePet) pet).getRider().getHabboInfo().dismountPet(); - } - break; + for (PetCommand command : pet.getPetData().getPetCommands()) { + if (command.getKey().equalsIgnoreCase(s.toString())) { + if (pet instanceof RideablePet rideablePet && ((RideablePet) pet).getRider() != null) { + if (rideablePet.getRider().getHabboInfo().getId() == gameClient.getHabbo().getHabboInfo().getId()) { + rideablePet.getRider().getHabboInfo().dismountPet(); } - - if (command.getLevel() <= pet.getLevel()) - pet.handleCommand(command, gameClient.getHabbo(), args); - else - pet.say(pet.getPetData().randomVocal(PetVocalsType.UNKNOWN_COMMAND)); - break; } + + if (command.getLevel() <= pet.getLevel()) + pet.handleCommand(command, gameClient.getHabbo(), args); + else + pet.say(pet.getPetData().randomVocal(PetVocalsType.UNKNOWN_COMMAND)); + + break; } } } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/CommandsCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/CommandsCommand.java index c3045199..9be6e3b1 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/CommandsCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/CommandsCommand.java @@ -12,12 +12,12 @@ public class CommandsCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) { - StringBuilder message = new StringBuilder(Emulator.getTexts().getValue("commands.generic.cmd_commands.text")); + StringBuilder message = new StringBuilder(getTextsValue("commands.generic.cmd_commands.text")); List<Command> commands = Emulator.getGameEnvironment().getCommandHandler().getCommandsForRank(gameClient.getHabbo().getHabboInfo().getRank().getId()); message.append("(").append(commands.size()).append("):\r\n"); for (Command c : commands) { - message.append(Emulator.getTexts().getValue("commands.description." + c.permission, "commands.description." + c.permission)).append("\r"); + message.append(getTextsValue("commands.description." + c.permission, "commands.description." + c.permission)).append("\r"); } gameClient.getHabbo().alert(new String[]{message.toString()}); diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/ControlCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/ControlCommand.java index a2e7bed6..4b25bf51 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/ControlCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/ControlCommand.java @@ -14,15 +14,15 @@ public class ControlCommand extends Command { public boolean handle(GameClient gameClient, String[] params) { if (gameClient.getHabbo().getHabboInfo().getCurrentRoom() != null) { if (params.length == 2) { - Habbo target = gameClient.getHabbo().getHabboInfo().getCurrentRoom().getHabbo(params[1]); + Habbo target = getHabbo(params[1]); if (target == null) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_control.not_found").replace("%user%", params[1]), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.error.cmd_control.not_found"), params[1]), RoomChatMessageBubbles.ALERT); return true; } if (target == gameClient.getHabbo()) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_control.not_self"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_control.not_self"), RoomChatMessageBubbles.ALERT); return true; } @@ -30,18 +30,18 @@ public class ControlCommand extends Command { if (oldHabbo != null) { oldHabbo.getRoomUnit().getCacheable().remove("controller"); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_control.stopped").replace("%user%", oldHabbo.getHabboInfo().getUsername()), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.succes.cmd_control.stopped"), oldHabbo.getHabboInfo().getUsername()), RoomChatMessageBubbles.ALERT); } gameClient.getHabbo().getRoomUnit().getCacheable().put("control", target); target.getRoomUnit().getCacheable().put("controller", gameClient.getHabbo()); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_control.controlling").replace("%user%", params[1]), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.succes.cmd_control.controlling"), params[1]), RoomChatMessageBubbles.ALERT); } else { Object habbo = gameClient.getHabbo().getRoomUnit().getCacheable().get("control"); if (habbo != null) { gameClient.getHabbo().getRoomUnit().getCacheable().remove("control"); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_control.stopped").replace("%user%", ((Habbo) habbo).getHabboInfo().getUsername()), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.succes.cmd_control.stopped"), ((Habbo) habbo).getHabboInfo().getUsername()), RoomChatMessageBubbles.ALERT); } } return true; diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/CoordsCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/CoordsCommand.java index d98b00de..d8011e4b 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/CoordsCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/CoordsCommand.java @@ -17,13 +17,13 @@ public class CoordsCommand extends Command { return false; if (params.length == 1) { - gameClient.getHabbo().alert(Emulator.getTexts().getValue("commands.generic.cmd_coords.title") + "\r\n" + + gameClient.getHabbo().alert(getTextsValue("commands.generic.cmd_coords.title") + "\r\n" + "x: " + gameClient.getHabbo().getRoomUnit().getX() + "\r" + "y: " + gameClient.getHabbo().getRoomUnit().getY() + "\r" + "z: " + (gameClient.getHabbo().getRoomUnit().hasStatus(RoomUnitStatus.SIT) ? gameClient.getHabbo().getRoomUnit().getStatus(RoomUnitStatus.SIT) : gameClient.getHabbo().getRoomUnit().getZ()) + "\r" + - Emulator.getTexts().getValue("generic.rotation.head") + ": " + gameClient.getHabbo().getRoomUnit().getHeadRotation() + "-" + gameClient.getHabbo().getRoomUnit().getHeadRotation().getValue() + "\r" + - Emulator.getTexts().getValue("generic.rotation.body") + ": " + gameClient.getHabbo().getRoomUnit().getBodyRotation() + "-" + gameClient.getHabbo().getRoomUnit().getBodyRotation().getValue() + "\r" + - Emulator.getTexts().getValue("generic.sitting") + ": " + (gameClient.getHabbo().getRoomUnit().hasStatus(RoomUnitStatus.SIT) ? Emulator.getTexts().getValue("generic.yes") : Emulator.getTexts().getValue("generic.no")) + "\r" + + getTextsValue("generic.rotation.head") + ": " + gameClient.getHabbo().getRoomUnit().getHeadRotation() + "-" + gameClient.getHabbo().getRoomUnit().getHeadRotation().getValue() + "\r" + + getTextsValue("generic.rotation.body") + ": " + gameClient.getHabbo().getRoomUnit().getBodyRotation() + "-" + gameClient.getHabbo().getRoomUnit().getBodyRotation().getValue() + "\r" + + getTextsValue("generic.sitting") + ": " + (gameClient.getHabbo().getRoomUnit().hasStatus(RoomUnitStatus.SIT) ? getTextsValue("generic.yes") : getTextsValue("generic.no")) + "\r" + "Tile State: " + gameClient.getHabbo().getHabboInfo().getCurrentRoom().getLayout().getTile(gameClient.getHabbo().getRoomUnit().getX(), gameClient.getHabbo().getRoomUnit().getY()).getState().name() + "\r" + "Tile Walkable: " + gameClient.getHabbo().getHabboInfo().getCurrentRoom().getLayout().getTile(gameClient.getHabbo().getRoomUnit().getX(), gameClient.getHabbo().getRoomUnit().getY()).isWalkable() + "\r" + "Tile relative height: " + gameClient.getHabbo().getHabboInfo().getCurrentRoom().getLayout().getTile(gameClient.getHabbo().getRoomUnit().getX(), gameClient.getHabbo().getRoomUnit().getY()).relativeHeight() + "\r" + @@ -33,7 +33,7 @@ public class CoordsCommand extends Command { RoomTile tile = gameClient.getHabbo().getHabboInfo().getCurrentRoom().getLayout().getTile(Short.parseShort(params[1]), Short.parseShort(params[2])); if (tile != null) { - gameClient.getHabbo().alert(Emulator.getTexts().getValue("commands.generic.cmd_coords.title") + "\r\n" + + gameClient.getHabbo().alert(getTextsValue("commands.generic.cmd_coords.title") + "\r\n" + "x: " + tile.getX() + "\r" + "y: " + tile.getY() + "\r" + "z: " + tile.getZ() + "\r" + @@ -42,7 +42,7 @@ public class CoordsCommand extends Command { "Tile Stack Height: " + tile.getStackHeight() + "\r" + "Tile Walkable: " + (tile.isWalkable() ? "Yes" : "No") + "\r"); } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("generic.tile.not.exists")); + gameClient.getHabbo().whisper(getTextsValue("generic.tile.not.exists")); } } return true; diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/CreditsCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/CreditsCommand.java deleted file mode 100644 index 032cc6e8..00000000 --- a/src/main/java/com/eu/habbo/habbohotel/commands/CreditsCommand.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.eu.habbo.habbohotel.commands; - -import com.eu.habbo.Emulator; -import com.eu.habbo.habbohotel.gameclients.GameClient; -import com.eu.habbo.habbohotel.rooms.RoomChatMessageBubbles; -import com.eu.habbo.habbohotel.users.Habbo; -import com.eu.habbo.habbohotel.users.HabboInfo; -import com.eu.habbo.habbohotel.users.HabboManager; - -public class CreditsCommand extends Command { - public CreditsCommand() { - super("cmd_credits", Emulator.getTexts().getValue("commands.keys.cmd_credits").split(";")); - } - - @Override - public boolean handle(GameClient gameClient, String[] params) { - if (params.length == 3) { - HabboInfo info = HabboManager.getOfflineHabboInfo(params[1]); - - if (info != null) { - Habbo habbo = Emulator.getGameServer().getGameClientManager().getHabbo(params[1]); - - int credits; - try { - credits = Integer.parseInt(params[2]); - } catch (NumberFormatException e) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_credits.invalid_amount"), RoomChatMessageBubbles.ALERT); - return true; - } - if (habbo != null) { - if (credits != 0) { - habbo.giveCredits(credits); - if (habbo.getHabboInfo().getCurrentRoom() != null) - habbo.whisper(Emulator.getTexts().getValue("commands.generic.cmd_credits.received").replace("%amount%", Integer.parseInt(params[2]) + ""), RoomChatMessageBubbles.ALERT); - else - habbo.alert(Emulator.getTexts().getValue("commands.generic.cmd_credits.received").replace("%amount%", Integer.parseInt(params[2]) + "")); - - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_credits.send").replace("%amount%", Integer.parseInt(params[2]) + "").replace("%user%", params[1]), RoomChatMessageBubbles.ALERT); - - } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_credits.invalid_amount"), RoomChatMessageBubbles.ALERT); - } - } else { - Emulator.getGameEnvironment().getHabboManager().giveCredits(info.getId(), credits); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_credits.send").replace("%amount%", Integer.parseInt(params[2]) + "").replace("%user%", params[1]), RoomChatMessageBubbles.ALERT); - - } - } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_credits.user_not_found").replace("%amount%", Integer.parseInt(params[2]) + "").replace("%user%", params[1]), RoomChatMessageBubbles.ALERT); - } - } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_credits.invalid_amount"), RoomChatMessageBubbles.ALERT); - } - return true; - } -} diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/DiagonalCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/DiagonalCommand.java index 03dd5fa4..cc5d9099 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/DiagonalCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/DiagonalCommand.java @@ -11,18 +11,16 @@ public class DiagonalCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) { - if (gameClient.getHabbo().getHabboInfo().getCurrentRoom() != null) { - if (gameClient.getHabbo().getHabboInfo().getCurrentRoom().hasRights(gameClient.getHabbo())) { - gameClient.getHabbo().getHabboInfo().getCurrentRoom().moveDiagonally(!gameClient.getHabbo().getHabboInfo().getCurrentRoom().moveDiagonally()); + if (gameClient.getHabbo().getHabboInfo().getCurrentRoom() != null && gameClient.getHabbo().getHabboInfo().getCurrentRoom().hasRights(gameClient.getHabbo())) { + gameClient.getHabbo().getHabboInfo().getCurrentRoom().moveDiagonally(!gameClient.getHabbo().getHabboInfo().getCurrentRoom().moveDiagonally()); - if (!gameClient.getHabbo().getHabboInfo().getCurrentRoom().moveDiagonally()) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_diagonal.disabled"), RoomChatMessageBubbles.ALERT); - } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_diagonal.enabled"), RoomChatMessageBubbles.ALERT); - } - - return true; + if (!gameClient.getHabbo().getHabboInfo().getCurrentRoom().moveDiagonally()) { + gameClient.getHabbo().whisper(getTextsValue("commands.succes.cmd_diagonal.disabled"), RoomChatMessageBubbles.ALERT); + } else { + gameClient.getHabbo().whisper(getTextsValue("commands.succes.cmd_diagonal.enabled"), RoomChatMessageBubbles.ALERT); } + + return true; } return false; diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/DisconnectCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/DisconnectCommand.java index 7e8f612b..fc642268 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/DisconnectCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/DisconnectCommand.java @@ -13,30 +13,30 @@ public class DisconnectCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) { if (params.length < 2) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_disconnect.forgot_username"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_disconnect.forgot_username"), RoomChatMessageBubbles.ALERT); return true; } if (params[1].equalsIgnoreCase(gameClient.getHabbo().getHabboInfo().getUsername())) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_disconnect.disconnect_self"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_disconnect.disconnect_self"), RoomChatMessageBubbles.ALERT); return true; } - Habbo target = Emulator.getGameEnvironment().getHabboManager().getHabbo(params[1]); + Habbo target = getHabbo(params[1]); if (target == null) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_disconnect.user_offline"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_disconnect.user_offline"), RoomChatMessageBubbles.ALERT); return true; } if (target.getHabboInfo().getRank().getId() > gameClient.getHabbo().getHabboInfo().getRank().getId()) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_disconnect.higher_rank"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_disconnect.higher_rank"), RoomChatMessageBubbles.ALERT); return true; } target.getClient().getChannel().close(); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_disconnect.disconnected").replace("%user%", params[1]), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.succes.cmd_disconnect.disconnected"), params[1]), RoomChatMessageBubbles.ALERT); return true; } } 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 a0d67148..37b674c4 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/EjectAllCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/EjectAllCommand.java @@ -14,10 +14,9 @@ public class EjectAllCommand extends Command { public boolean handle(GameClient gameClient, String[] params) { Room room = gameClient.getHabbo().getHabboInfo().getCurrentRoom(); - if (room != null) { - if (room.isOwner(gameClient.getHabbo()) || (room.hasGuild() && room.getGuildRightLevel(gameClient.getHabbo()).equals(RoomRightLevels.GUILD_ADMIN))) { - room.ejectAll(gameClient.getHabbo()); - } + if (room != null && (room.isOwner(gameClient.getHabbo()) + || (room.hasGuild() && room.getGuildRightLevel(gameClient.getHabbo()).equals(RoomRightLevels.GUILD_ADMIN)))) { + room.ejectAll(gameClient.getHabbo()); } return true; diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/EmptyBotsInventoryCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/EmptyBotsInventoryCommand.java index 7d5b8aff..5a77cfb4 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/EmptyBotsInventoryCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/EmptyBotsInventoryCommand.java @@ -17,19 +17,19 @@ public class EmptyBotsInventoryCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) { - if (params.length == 1 || (params.length >= 2 && !params[1].equals(Emulator.getTexts().getValue("generic.yes")))) { + if (params.length == 1 || (params.length >= 2 && !params[1].equals(getTextsValue("generic.yes")))) { if (gameClient.getHabbo().getHabboInfo().getCurrentRoom() != null) { if (gameClient.getHabbo().getHabboInfo().getCurrentRoom().getUserCount() > 10) { - gameClient.getHabbo().alert(Emulator.getTexts().getValue("commands.succes.cmd_empty_bots.verify").replace("%generic.yes%", Emulator.getTexts().getValue("generic.yes"))); + gameClient.getHabbo().alert(getTextsValue("commands.succes.cmd_empty_bots.verify").replace("%generic.yes%", getTextsValue("generic.yes"))); } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_empty_bots.verify").replace("%generic.yes%", Emulator.getTexts().getValue("generic.yes")), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.succes.cmd_empty_bots.verify").replace("%generic.yes%", getTextsValue("generic.yes")), RoomChatMessageBubbles.ALERT); } } return true; } - if (params.length >= 2 && params[1].equalsIgnoreCase(Emulator.getTexts().getValue("generic.yes"))) { + if (params.length >= 2 && params[1].equalsIgnoreCase(getTextsValue("generic.yes"))) { Habbo habbo = (params.length == 3 && gameClient.getHabbo().hasPermission(Permission.ACC_EMPTY_OTHERS)) ? Emulator.getGameEnvironment().getHabboManager().getHabbo(params[2]) : gameClient.getHabbo(); @@ -45,9 +45,9 @@ public class EmptyBotsInventoryCommand extends Command { habbo.getClient().sendResponse(new FurniListInvalidateComposer()); habbo.getClient().sendResponse(new BotInventoryComposer(habbo)); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_empty_bots.cleared").replace("%username%", habbo.getHabboInfo().getUsername()), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(replaceUsername(getTextsValue("commands.succes.cmd_empty_bots.cleared"), habbo.getHabboInfo().getUsername()), RoomChatMessageBubbles.ALERT); } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_empty_bots"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_empty_bots"), RoomChatMessageBubbles.ALERT); } } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/EmptyInventoryCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/EmptyInventoryCommand.java index 36cba1cb..b384fbe3 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/EmptyInventoryCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/EmptyInventoryCommand.java @@ -19,19 +19,19 @@ public class EmptyInventoryCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) { - if (params.length == 1 || (params.length == 2 && !params[1].equals(Emulator.getTexts().getValue("generic.yes")))) { + if (params.length == 1 || (params.length == 2 && !params[1].equals(getTextsValue("generic.yes")))) { if (gameClient.getHabbo().getHabboInfo().getCurrentRoom() != null) { if (gameClient.getHabbo().getHabboInfo().getCurrentRoom().getUserCount() > 10) { - gameClient.getHabbo().alert(Emulator.getTexts().getValue("commands.succes.cmd_empty.verify").replace("%generic.yes%", Emulator.getTexts().getValue("generic.yes"))); + gameClient.getHabbo().alert(getTextsValue("commands.succes.cmd_empty.verify").replace("%generic.yes%", getTextsValue("generic.yes"))); } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_empty.verify").replace("%generic.yes%", Emulator.getTexts().getValue("generic.yes")), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.succes.cmd_empty.verify").replace("%generic.yes%", getTextsValue("generic.yes")), RoomChatMessageBubbles.ALERT); } } return true; } - if (params.length >= 2 && params[1].equalsIgnoreCase(Emulator.getTexts().getValue("generic.yes"))) { + if (params.length >= 2 && params[1].equalsIgnoreCase(getTextsValue("generic.yes"))) { Habbo habbo = (params.length == 3 && gameClient.getHabbo().hasPermission(Permission.ACC_EMPTY_OTHERS)) ? Emulator.getGameEnvironment().getHabboManager().getHabbo(params[2]) : gameClient.getHabbo(); @@ -45,9 +45,9 @@ public class EmptyInventoryCommand extends Command { habbo.getClient().sendResponse(new FurniListComposer(0, 1, gameClient.getHabbo().getInventory().getItemsComponent().getItems())); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_empty.cleared").replace("%username%", habbo.getHabboInfo().getUsername()), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(replaceUsername(getTextsValue("commands.succes.cmd_empty.cleared"), habbo.getHabboInfo().getUsername()), RoomChatMessageBubbles.ALERT); } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_empty"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_empty"), RoomChatMessageBubbles.ALERT); } } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/EmptyPetsInventoryCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/EmptyPetsInventoryCommand.java index c251db55..4a2eef38 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/EmptyPetsInventoryCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/EmptyPetsInventoryCommand.java @@ -17,25 +17,24 @@ public class EmptyPetsInventoryCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) { - if (params.length == 1 || (params.length >= 2 && !params[1].equals(Emulator.getTexts().getValue("generic.yes")))) { + if (params.length == 1 || (params.length >= 2 && !params[1].equals(getTextsValue("generic.yes")))) { if (gameClient.getHabbo().getHabboInfo().getCurrentRoom() != null) { if (gameClient.getHabbo().getHabboInfo().getCurrentRoom().getUserCount() > 10) { - gameClient.getHabbo().alert(Emulator.getTexts().getValue("commands.succes.cmd_empty_pets.verify").replace("%generic.yes%", Emulator.getTexts().getValue("generic.yes"))); + gameClient.getHabbo().alert(getTextsValue("commands.succes.cmd_empty_pets.verify").replace("%generic.yes%", getTextsValue("generic.yes"))); } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_empty_pets.verify").replace("%generic.yes%", Emulator.getTexts().getValue("generic.yes")), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.succes.cmd_empty_pets.verify").replace("%generic.yes%", getTextsValue("generic.yes")), RoomChatMessageBubbles.ALERT); } } return true; } - if (params.length >= 2 && params[1].equalsIgnoreCase(Emulator.getTexts().getValue("generic.yes"))) { + if (params.length >= 2 && params[1].equalsIgnoreCase(getTextsValue("generic.yes"))) { Habbo habbo = (params.length == 3 && gameClient.getHabbo().hasPermission(Permission.ACC_EMPTY_OTHERS)) ? Emulator.getGameEnvironment().getHabboManager().getHabbo(params[2]) : gameClient.getHabbo(); if (habbo != null) { - TIntObjectHashMap<Pet> pets = new TIntObjectHashMap<>(); - pets.putAll(habbo.getInventory().getPetsComponent().getPets()); + TIntObjectHashMap<Pet> pets = new TIntObjectHashMap<>(habbo.getInventory().getPetsComponent().getPets()); habbo.getInventory().getPetsComponent().getPets().clear(); pets.forEachValue(object -> { Emulator.getGameEnvironment().getPetManager().deletePet(object); @@ -45,9 +44,9 @@ public class EmptyPetsInventoryCommand extends Command { habbo.getClient().sendResponse(new FurniListInvalidateComposer()); habbo.getClient().sendResponse(new PetInventoryComposer(habbo)); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_empty_pets.cleared").replace("%username%", habbo.getHabboInfo().getUsername()), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(replaceUsername(getTextsValue("commands.succes.cmd_empty_pets.cleared"), habbo.getHabboInfo().getUsername()), RoomChatMessageBubbles.ALERT); } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_empty_pets"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_empty_pets"), RoomChatMessageBubbles.ALERT); } } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/EnableCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/EnableCommand.java index 2dc5f5cc..92d6d6b8 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/EnableCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/EnableCommand.java @@ -24,25 +24,24 @@ public class EnableCommand extends Command { } Habbo target = gameClient.getHabbo(); if (params.length == 3) { - target = gameClient.getHabbo().getHabboInfo().getCurrentRoom().getHabbo(params[2]); + target = getHabbo(params[2]); } - if (target != null) { - if (target == gameClient.getHabbo() || gameClient.getHabbo().hasPermission(Permission.ACC_ENABLE_OTHERS)) { - try { - if (target.getHabboInfo().getCurrentRoom() != null) { - if (target.getHabboInfo().getRiding() == null) { - if (Emulator.getGameEnvironment().getPermissionsManager().isEffectBlocked(effectId, target.getHabboInfo().getRank().getId())) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_enable.not_allowed"), RoomChatMessageBubbles.ALERT); - return true; - } - - target.getHabboInfo().getCurrentRoom().giveEffect(target, effectId, -1); - } + if (target == null) { + return true; + } + if (target == gameClient.getHabbo() || gameClient.getHabbo().hasPermission(Permission.ACC_ENABLE_OTHERS)) { + try { + if (target.getHabboInfo().getCurrentRoom() != null && target.getHabboInfo().getRiding() == null) { + if (Emulator.getGameEnvironment().getPermissionsManager().isEffectBlocked(effectId, target.getHabboInfo().getRank().getId())) { + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_enable.not_allowed"), RoomChatMessageBubbles.ALERT); + return true; } - } catch (Exception e) { - log.error("Caught exception", e); + + target.getHabboInfo().getCurrentRoom().giveEffect(target, effectId, -1); } + } catch (Exception e) { + log.error("Caught exception", e); } } } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/EventCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/EventCommand.java index 1ac8424a..9abbb388 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/EventCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/EventCommand.java @@ -7,7 +7,8 @@ import com.eu.habbo.messages.ServerMessage; import com.eu.habbo.messages.outgoing.generic.alerts.NotificationDialogMessageComposer; import gnu.trove.map.hash.THashMap; -import java.util.Map; +import java.util.stream.Collectors; +import java.util.stream.IntStream; public class EventCommand extends Command { public EventCommand() { @@ -16,38 +17,30 @@ public class EventCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) { - if (gameClient.getHabbo().getHabboInfo().getCurrentRoom() != null) { - if (params.length >= 2) { - StringBuilder message = new StringBuilder(); + if (gameClient.getHabbo().getHabboInfo().getCurrentRoom() == null || params.length < 2) { + return false; + } + String message = IntStream.range(1, params.length).mapToObj(i -> params[i] + " ").collect(Collectors.joining()); - for (int i = 1; i < params.length; i++) { - message.append(params[i]); - message.append(" "); - } + THashMap<String, String> codes = new THashMap<>(); + codes.put("ROOMNAME", gameClient.getHabbo().getHabboInfo().getCurrentRoom().getName()); + codes.put("ROOMID", gameClient.getHabbo().getHabboInfo().getCurrentRoom().getId() + ""); + codes.put("USERNAME", gameClient.getHabbo().getHabboInfo().getUsername()); + codes.put("LOOK", gameClient.getHabbo().getHabboInfo().getLook()); + codes.put("TIME", Emulator.getDate().toString()); + codes.put("MESSAGE", message); - THashMap<String, String> codes = new THashMap<>(); - codes.put("ROOMNAME", gameClient.getHabbo().getHabboInfo().getCurrentRoom().getName()); - codes.put("ROOMID", gameClient.getHabbo().getHabboInfo().getCurrentRoom().getId() + ""); - codes.put("USERNAME", gameClient.getHabbo().getHabboInfo().getUsername()); - codes.put("LOOK", gameClient.getHabbo().getHabboInfo().getLook()); - codes.put("TIME", Emulator.getDate().toString()); - codes.put("MESSAGE", message.toString()); + ServerMessage msg = new NotificationDialogMessageComposer("hotel.event", codes).compose(); - ServerMessage msg = new NotificationDialogMessageComposer("hotel.event", codes).compose(); - - for (Map.Entry<Integer, Habbo> set : Emulator.getGameEnvironment().getHabboManager().getOnlineHabbos().entrySet()) { - Habbo habbo = set.getValue(); - if (habbo.getHabboStats().isBlockStaffAlerts()) { - continue; - } - - habbo.getClient().sendResponse(msg); - } - - return true; + for (Habbo habbo : Emulator.getGameEnvironment().getHabboManager().getOnlineHabbos().values()) { + if (habbo.getHabboStats().isBlockStaffAlerts()) { + continue; } + + habbo.getClient().sendResponse(msg); } - return false; + return true; + } } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/FacelessCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/FacelessCommand.java index ce3574f4..2ead7b04 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/FacelessCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/FacelessCommand.java @@ -13,32 +13,34 @@ public class FacelessCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) { - if (gameClient.getHabbo().getHabboInfo().getCurrentRoom() != null) { - try { + if (gameClient.getHabbo().getHabboInfo().getCurrentRoom() == null) { + return false; + } - String[] figureParts = gameClient.getHabbo().getHabboInfo().getLook().split("\\."); + try { - for (String part : figureParts) { - if (part.startsWith("hd")) { - String[] headParts = part.split("-"); + String[] figureParts = gameClient.getHabbo().getHabboInfo().getLook().split("\\."); - if (!headParts[1].equals("99999")) - headParts[1] = "99999"; - else - break; + for (String part : figureParts) { + if (part.startsWith("hd")) { + String[] headParts = part.split("-"); - String newHead = "hd-" + headParts[1] + "-" + headParts[2]; + if (!headParts[1].equals("99999")) + headParts[1] = "99999"; + else + break; - gameClient.getHabbo().getHabboInfo().setLook(gameClient.getHabbo().getHabboInfo().getLook().replace(part, newHead)); - gameClient.sendResponse(new FigureUpdateComposer(gameClient.getHabbo())); - gameClient.getHabbo().getHabboInfo().getCurrentRoom().sendComposer(new UserChangeMessageComposer(gameClient.getHabbo()).compose()); - return true; - } + String newHead = "hd-" + headParts[1] + "-" + headParts[2]; + + gameClient.getHabbo().getHabboInfo().setLook(gameClient.getHabbo().getHabboInfo().getLook().replace(part, newHead)); + gameClient.sendResponse(new FigureUpdateComposer(gameClient.getHabbo())); + gameClient.getHabbo().getHabboInfo().getCurrentRoom().sendComposer(new UserChangeMessageComposer(gameClient.getHabbo()).compose()); + return true; } - - } catch (Exception ignored) { - } + + } catch (Exception ignored) { + } return false; diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/FastwalkCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/FastwalkCommand.java index 24e4b006..cec64352 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/FastwalkCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/FastwalkCommand.java @@ -12,17 +12,16 @@ public class FastwalkCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) { if (gameClient.getHabbo().getHabboInfo().getCurrentRoom() != null) { - if (gameClient.getHabbo().getHabboInfo().getCurrentRoom() != null) { - if (gameClient.getHabbo().getHabboInfo().getRiding() != null) //TODO Make this an event plugin which fires that can be cancelled - return true; - } + //TODO Make this an event plugin which fires that can be cancelled + if (gameClient.getHabbo().getHabboInfo().getCurrentRoom() != null && gameClient.getHabbo().getHabboInfo().getRiding() != null) + return true; Habbo habbo = gameClient.getHabbo(); if (params.length >= 2) { String username = params[1]; - habbo = gameClient.getHabbo().getHabboInfo().getCurrentRoom().getHabbo(username); + habbo = getHabbo(username); if (habbo == null) return false; diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/FilterWordCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/FilterWordCommand.java index 4d985b10..597b32d6 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/FilterWordCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/FilterWordCommand.java @@ -20,7 +20,7 @@ public class FilterWordCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) { if (params.length < 2) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_filterword.missing_word")); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_filterword.missing_word")); return true; } @@ -39,11 +39,11 @@ public class FilterWordCommand extends Command { statement.execute(); } catch (SQLException e) { log.error("Caught SQL exception", e); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_filterword.error")); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_filterword.error")); return true; } - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_filterword.added").replace("%word%", word).replace("%replacement%", replacement)); + gameClient.getHabbo().whisper(getTextsValue("commands.succes.cmd_filterword.added").replace("%word%", word).replace("%replacement%", replacement)); Emulator.getGameEnvironment().getWordFilter().addWord(wordFilterWord); return true; diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/FreezeBotsCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/FreezeBotsCommand.java index 22d65c7d..7707c170 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/FreezeBotsCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/FreezeBotsCommand.java @@ -12,17 +12,19 @@ public class FreezeBotsCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) { - if (gameClient.getHabbo().getHabboInfo().getCurrentRoom() != null) { - if (gameClient.getHabbo().getHabboInfo().getId() == gameClient.getHabbo().getHabboInfo().getCurrentRoom().getOwnerId() || gameClient.getHabbo().hasPermission(Permission.ACC_ANYROOMOWNER)) { - gameClient.getHabbo().getHabboInfo().getCurrentRoom().setAllowBotsWalk(!gameClient.getHabbo().getHabboInfo().getCurrentRoom().isAllowBotsWalk()); - gameClient.getHabbo().whisper(gameClient.getHabbo().getHabboInfo().getCurrentRoom().isAllowBotsWalk() ? Emulator.getTexts().getValue("commands.succes.cmd_freeze_bots.unfrozen") : Emulator.getTexts().getValue("commands.succes.cmd_freeze_bots.frozen"), RoomChatMessageBubbles.ALERT); - } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("generic.cannot_do_that"), RoomChatMessageBubbles.ALERT); - } - - return true; + if (gameClient.getHabbo().getHabboInfo().getCurrentRoom() == null) { + return false; } - return false; + if (gameClient.getHabbo().getHabboInfo().getId() == gameClient.getHabbo().getHabboInfo().getCurrentRoom().getOwnerId() + || gameClient.getHabbo().hasPermission(Permission.ACC_ANYROOMOWNER)) { + gameClient.getHabbo().getHabboInfo().getCurrentRoom().setAllowBotsWalk(!gameClient.getHabbo().getHabboInfo().getCurrentRoom().isAllowBotsWalk()); + gameClient.getHabbo().whisper(gameClient.getHabbo().getHabboInfo().getCurrentRoom().isAllowBotsWalk() ? getTextsValue("commands.succes.cmd_freeze_bots.unfrozen") : getTextsValue("commands.succes.cmd_freeze_bots.frozen"), RoomChatMessageBubbles.ALERT); + } else { + gameClient.getHabbo().whisper(getTextsValue("generic.cannot_do_that"), RoomChatMessageBubbles.ALERT); + } + + return true; + } } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/FreezeCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/FreezeCommand.java index 0786dd42..8f67258f 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/FreezeCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/FreezeCommand.java @@ -13,24 +13,24 @@ public class FreezeCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) { if (params.length == 2) { - Habbo habbo = gameClient.getHabbo().getHabboInfo().getCurrentRoom().getHabbo(params[1]); + Habbo habbo = getHabbo(params[1]); if (habbo == null) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_freeze.not_found").replace("%user%", params[1]), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.error.cmd_freeze.not_found"), params[1]), RoomChatMessageBubbles.ALERT); } else { if (habbo.getRoomUnit().canWalk()) { habbo.getRoomUnit().setCanWalk(false); - habbo.whisper(Emulator.getTexts().getValue("commands.succes.cmd_freeze.frozen"), RoomChatMessageBubbles.ALERT); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_freeze.user_frozen").replace("%user%", params[1]), RoomChatMessageBubbles.ALERT); + habbo.whisper(getTextsValue("commands.succes.cmd_freeze.frozen"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.succes.cmd_freeze.user_frozen"), params[1]), RoomChatMessageBubbles.ALERT); } else { habbo.getRoomUnit().setCanWalk(true); - habbo.whisper(Emulator.getTexts().getValue("commands.succes.cmd_freeze.unfrozen"), RoomChatMessageBubbles.ALERT); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_freeze.user_unfrozen").replace("%user%", params[1]), RoomChatMessageBubbles.ALERT); + habbo.whisper(getTextsValue("commands.succes.cmd_freeze.unfrozen"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.succes.cmd_freeze.user_unfrozen"), params[1]), RoomChatMessageBubbles.ALERT); } } return true; } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_freeze.not_found").replace("%user%", ""), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.error.cmd_freeze.not_found"), ""), RoomChatMessageBubbles.ALERT); return true; } } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/GiveRankCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/GiveRankCommand.java index 1ea3275f..90ddfb27 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/GiveRankCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/GiveRankCommand.java @@ -16,50 +16,49 @@ public class GiveRankCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) throws Exception { Rank rank = null; - if (params.length == 1) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_give_rank.missing_username") + Emulator.getTexts().getValue("commands.description.cmd_give_rank"), RoomChatMessageBubbles.ALERT); - return true; - } - - if (params.length == 2) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_give_rank.missing_rank") + Emulator.getTexts().getValue("commands.description.cmd_give_rank"), RoomChatMessageBubbles.ALERT); - return true; - } - - if (params.length == 3) { - if (StringUtils.isNumeric(params[2])) { - int rankId = Integer.parseInt(params[2]); - if (Emulator.getGameEnvironment().getPermissionsManager().rankExists(rankId)) - rank = Emulator.getGameEnvironment().getPermissionsManager().getRank(rankId); - } else { - rank = Emulator.getGameEnvironment().getPermissionsManager().getRankByName(params[2]); + switch (params.length) { + case 1 -> { + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_give_rank.missing_username") + getTextsValue("commands.description.cmd_give_rank"), RoomChatMessageBubbles.ALERT); + return true; } - - if (rank != null) { - if (rank.getId() > gameClient.getHabbo().getHabboInfo().getRank().getId()) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_give_rank.higher").replace("%username%", params[1]).replace("%id%", rank.getName()), RoomChatMessageBubbles.ALERT); - return true; + case 2 -> { + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_give_rank.missing_rank") + getTextsValue("commands.description.cmd_give_rank"), RoomChatMessageBubbles.ALERT); + return true; + } + case 3 -> { + if (StringUtils.isNumeric(params[2])) { + int rankId = Integer.parseInt(params[2]); + if (Emulator.getGameEnvironment().getPermissionsManager().rankExists(rankId)) + rank = Emulator.getGameEnvironment().getPermissionsManager().getRank(rankId); + } else { + rank = Emulator.getGameEnvironment().getPermissionsManager().getRankByName(params[2]); } - - HabboInfo habbo = HabboManager.getOfflineHabboInfo(params[1]); - - if (habbo != null) { - if (habbo.getRank().getId() > gameClient.getHabbo().getHabboInfo().getRank().getId()) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_give_rank.higher.other").replace("%username%", params[1]).replace("%id%", rank.getName()), RoomChatMessageBubbles.ALERT); + if (rank != null) { + if (rank.getId() > gameClient.getHabbo().getHabboInfo().getRank().getId()) { + gameClient.getHabbo().whisper(replaceUsername(getTextsValue("commands.error.cmd_give_rank.higher"), params[1]).replace("%id%", rank.getName()), RoomChatMessageBubbles.ALERT); return true; } - Emulator.getGameEnvironment().getHabboManager().setRank(habbo.getId(), rank.getId()); + HabboInfo habbo = HabboManager.getOfflineHabboInfo(params[1]); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_give_rank.updated").replace("%id%", rank.getName()).replace("%username%", params[1]), RoomChatMessageBubbles.ALERT); - } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_give_rank.user_offline").replace("%id%", rank.getName()).replace("%username%", params[1]), RoomChatMessageBubbles.ALERT); + if (habbo != null) { + if (habbo.getRank().getId() > gameClient.getHabbo().getHabboInfo().getRank().getId()) { + gameClient.getHabbo().whisper(replaceUsername(getTextsValue("commands.error.cmd_give_rank.higher.other"), params[1]).replace("%id%", rank.getName()), RoomChatMessageBubbles.ALERT); + return true; + } + + Emulator.getGameEnvironment().getHabboManager().setRank(habbo.getId(), rank.getId()); + + gameClient.getHabbo().whisper(replaceUsername(getTextsValue("commands.succes.cmd_give_rank.updated"), params[1]).replace("%id%", rank.getName()), RoomChatMessageBubbles.ALERT); + } else { + gameClient.getHabbo().whisper(replaceUsername(getTextsValue("commands.error.cmd_give_rank.user_offline"), params[1]).replace("%id%", rank.getName()), RoomChatMessageBubbles.ALERT); + } + return true; } - return true; } } - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.errors.cmd_give_rank.not_found").replace("%id%", params[2]).replace("%username%", params[1]), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(replaceUsername(getTextsValue("commands.errors.cmd_give_rank.not_found"), params[1]).replace("%id%", params[2]), RoomChatMessageBubbles.ALERT); return true; } } \ No newline at end of file diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/HabnamCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/HabnamCommand.java index fe2b9499..83d9586c 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/HabnamCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/HabnamCommand.java @@ -9,11 +9,9 @@ public class HabnamCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) { - if (gameClient.getHabbo().getHabboStats().hasActiveClub()) { - if (gameClient.getHabbo().getHabboInfo().getCurrentRoom() != null) { - gameClient.getHabbo().getHabboInfo().getCurrentRoom().giveEffect(gameClient.getHabbo(), 140, 30); - return true; - } + if (gameClient.getHabbo().getHabboStats().hasActiveClub() && gameClient.getHabbo().getHabboInfo().getCurrentRoom() != null) { + gameClient.getHabbo().getHabboInfo().getCurrentRoom().giveEffect(gameClient.getHabbo(), 140, 30); + return true; } return false; diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/HappyHourCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/HappyHourCommand.java index 4c7397ab..7f5c3e5c 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/HappyHourCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/HappyHourCommand.java @@ -17,9 +17,8 @@ public class HappyHourCommand extends Command { public boolean handle(GameClient gameClient, String[] params) { Emulator.getGameServer().getGameClientManager().sendBroadcastResponse(new HabboBroadcastMessageComposer("Happy Hour!")); - for (Map.Entry<Integer, Habbo> set : Emulator.getGameEnvironment().getHabboManager().getOnlineHabbos().entrySet()) { - AchievementManager.progressAchievement(set.getValue(), Emulator.getGameEnvironment().getAchievementManager().getAchievement("HappyHour")); - } + Emulator.getGameEnvironment().getHabboManager().getOnlineHabbos().values() + .forEach(habbo -> AchievementManager.progressAchievement(habbo, Emulator.getGameEnvironment().getAchievementManager().getAchievement("HappyHour"))); return true; } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/HideWiredCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/HideWiredCommand.java index a86778bf..1b9fa239 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/HideWiredCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/HideWiredCommand.java @@ -12,14 +12,15 @@ public class HideWiredCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) { Room room = gameClient.getHabbo().getHabboInfo().getCurrentRoom(); + if (room == null) { + return true; + } - if (room != null) { - if (room.isOwner(gameClient.getHabbo())) { - room.setHideWired(!room.isHideWired()); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_hidewired." + (room.isHideWired() ? "hidden" : "shown"))); - } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.errors.cmd_hidewired.permission")); - } + if (room.isOwner(gameClient.getHabbo())) { + room.setHideWired(!room.isHideWired()); + gameClient.getHabbo().whisper(getTextsValue("commands.succes.cmd_hidewired." + (room.isHideWired() ? "hidden" : "shown"))); + } else { + gameClient.getHabbo().whisper(getTextsValue("commands.errors.cmd_hidewired.permission")); } return true; diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/HotelAlertCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/HotelAlertCommand.java index 2f8ce1b8..e3a7c946 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/HotelAlertCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/HotelAlertCommand.java @@ -8,6 +8,8 @@ import com.eu.habbo.messages.ServerMessage; import com.eu.habbo.messages.outgoing.generic.alerts.ModeratorMessageComposer; import java.util.Map; +import java.util.stream.Collectors; +import java.util.stream.IntStream; public class HotelAlertCommand extends Command { @@ -18,22 +20,15 @@ public class HotelAlertCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) { if (params.length > 1) { - StringBuilder message = new StringBuilder(); - for (int i = 1; i < params.length; i++) { - message.append(params[i]).append(" "); - } + String message = IntStream.range(1, params.length).mapToObj(i -> params[i] + " ").collect(Collectors.joining()); ServerMessage msg = new ModeratorMessageComposer(message + "\r\n-" + gameClient.getHabbo().getHabboInfo().getUsername(), "").compose(); - for (Map.Entry<Integer, Habbo> set : Emulator.getGameEnvironment().getHabboManager().getOnlineHabbos().entrySet()) { - Habbo habbo = set.getValue(); - if (habbo.getHabboStats().isBlockStaffAlerts()) - continue; - - habbo.getClient().sendResponse(msg); - } + Emulator.getGameEnvironment().getHabboManager().getOnlineHabbos().values().stream() + .filter(habbo -> !habbo.getHabboStats().isBlockStaffAlerts()) + .forEach(habbo -> habbo.getClient().sendResponse(msg)); } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_ha.forgot_message"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_ha.forgot_message"), RoomChatMessageBubbles.ALERT); } return true; } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/IPBanCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/IPBanCommand.java deleted file mode 100644 index 0568d975..00000000 --- a/src/main/java/com/eu/habbo/habbohotel/commands/IPBanCommand.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.eu.habbo.habbohotel.commands; - -import com.eu.habbo.Emulator; -import com.eu.habbo.habbohotel.gameclients.GameClient; -import com.eu.habbo.habbohotel.modtool.ModToolBanType; -import com.eu.habbo.habbohotel.rooms.RoomChatMessageBubbles; -import com.eu.habbo.habbohotel.users.Habbo; -import com.eu.habbo.habbohotel.users.HabboInfo; -import com.eu.habbo.habbohotel.users.HabboManager; - -public class IPBanCommand extends Command { - public final static int TEN_YEARS = 315569260; - - public IPBanCommand() { - super("cmd_ip_ban", Emulator.getTexts().getValue("commands.keys.cmd_ip_ban").split(";")); - } - - @Override - public boolean handle(GameClient gameClient, String[] params) { - HabboInfo habbo; - StringBuilder reason = new StringBuilder(); - if (params.length >= 2) { - Habbo h = Emulator.getGameEnvironment().getHabboManager().getHabbo(params[1]); - - if (h != null) { - habbo = h.getHabboInfo(); - } else { - habbo = HabboManager.getOfflineHabboInfo(params[1]); - } - } else { - return true; - } - - if (params.length > 2) { - for (int i = 2; i < params.length; i++) { - reason.append(params[i]); - reason.append(" "); - } - } - - int count = 0; - if (habbo != null) { - if (habbo == gameClient.getHabbo().getHabboInfo()) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_ip_ban.ban_self"), RoomChatMessageBubbles.ALERT); - return true; - } - - if (habbo.getRank().getId() >= gameClient.getHabbo().getHabboInfo().getRank().getId()) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_ban.target_rank_higher"), RoomChatMessageBubbles.ALERT); - return true; - } - - Emulator.getGameEnvironment().getModToolManager().ban(habbo.getId(), gameClient.getHabbo(), reason.toString(), TEN_YEARS, ModToolBanType.IP, -1); - count++; - for (Habbo h : Emulator.getGameServer().getGameClientManager().getHabbosWithIP(habbo.getIpLogin())) { - if (h != null) { - count++; - Emulator.getGameEnvironment().getModToolManager().ban(h.getHabboInfo().getId(), gameClient.getHabbo(), reason.toString(), TEN_YEARS, ModToolBanType.IP, -1); - } - } - } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_ban.user_offline"), RoomChatMessageBubbles.ALERT); - return true; - } - - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_ip_ban").replace("%count%", count + ""), RoomChatMessageBubbles.ALERT); - - return true; - } -} diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/InvisibleCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/InvisibleCommand.java index 19d52924..40316af2 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/InvisibleCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/InvisibleCommand.java @@ -25,8 +25,8 @@ public class InvisibleCommand extends Command { new RoomUnitTeleport(roomUnit, roomUnit.getRoom(), roomLayout.getDoorTile().getX(), roomLayout.getDoorTile().getY(), roomLayout.getDoorTile().getZ(), 0).run(); - roomUnit.setInvisible(false); - roomUnit.setInRoom(true); + roomUnit.setInvisible(false) + .setInRoom(true); roomUnit.getRoom().sendComposer(new RoomUsersComposer(gameClient.getHabbo()).compose()); roomUnit.getRoom().sendComposer(new UserUpdateComposer(roomUnit).compose()); @@ -34,13 +34,13 @@ public class InvisibleCommand extends Command { WiredHandler.handle(WiredTriggerType.ENTER_ROOM, roomUnit, roomUnit.getRoom(), null); roomUnit.getRoom().habboEntered(gameClient.getHabbo()); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_invisible.updated.back")); + gameClient.getHabbo().whisper(getTextsValue("commands.succes.cmd_invisible.updated.back")); return true; } roomUnit.setInvisible(true); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_invisible.updated")); + gameClient.getHabbo().whisper(getTextsValue("commands.succes.cmd_invisible.updated")); gameClient.getHabbo().getHabboInfo().getCurrentRoom().sendComposer(new UserRemoveMessageComposer(roomUnit).compose()); return true; diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/LayCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/LayCommand.java index 96c58da6..d1cb0d87 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/LayCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/LayCommand.java @@ -7,6 +7,8 @@ import com.eu.habbo.habbohotel.rooms.RoomUnitStatus; import com.eu.habbo.habbohotel.rooms.RoomUserRotation; import com.eu.habbo.messages.outgoing.rooms.users.UserUpdateComposer; +import java.util.stream.IntStream; + public class LayCommand extends Command { public LayCommand() { super(null, Emulator.getTexts().getValue("commands.keys.cmd_lay").split(";")); @@ -27,11 +29,10 @@ public class LayCommand extends Command { return false; } - for (int i = 0; i < 3; i++) { - RoomTile t = gameClient.getHabbo().getHabboInfo().getCurrentRoom().getLayout().getTileInFront(tile, gameClient.getHabbo().getRoomUnit().getBodyRotation().getValue(), i); - if (t == null || !t.isWalkable()) { - return false; - } + if (IntStream.range(0, 3) + .mapToObj(i -> gameClient.getHabbo().getHabboInfo().getCurrentRoom().getLayout().getTileInFront(tile, gameClient.getHabbo().getRoomUnit().getBodyRotation().getValue(), i)) + .anyMatch(t -> t == null || !t.isWalkable())) { + return false; } gameClient.getHabbo().getRoomUnit().setStatus(RoomUnitStatus.LAY, 0.5 + ""); diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/MimicCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/MimicCommand.java index 958bbd38..4b984686 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/MimicCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/MimicCommand.java @@ -22,30 +22,34 @@ public class MimicCommand extends Command { Habbo habbo = gameClient.getHabbo().getHabboInfo().getCurrentRoom().getHabbo(params[1]); if (habbo == null) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_mimic.not_found").replace("%user%", ""), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.error.cmd_mimic.not_found"), ""), RoomChatMessageBubbles.ALERT); return true; } if (habbo == gameClient.getHabbo()) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_mimic.not_self"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_mimic.not_self"), RoomChatMessageBubbles.ALERT); return true; } else if (habbo.hasPermission(Permission.ACC_NOT_MIMICED) && !gameClient.getHabbo().hasPermission(Permission.ACC_NOT_MIMICED)) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_mimic.blocked").replace("%user%", params[1]).replace("%gender_name%", (habbo.getHabboInfo().getGender().equals(HabboGender.M) ? Emulator.getTexts().getValue("gender.him") : Emulator.getTexts().getValue("gender.her"))), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.error.cmd_mimic.blocked"), params[1]).replace("%gender_name%", getGenderName(habbo)), RoomChatMessageBubbles.ALERT); return true; } else if (!habbo.hasPermission("acc_mimic_unredeemed") && FigureUtil.hasBlacklistedClothing(habbo.getHabboInfo().getLook(), gameClient.getHabbo().getForbiddenClothing())) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_mimic.forbidden_clothing"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_mimic.forbidden_clothing"), RoomChatMessageBubbles.ALERT); return true; } else { gameClient.getHabbo().getHabboInfo().setLook(ClothingValidationManager.VALIDATE_ON_MIMIC ? ClothingValidationManager.validateLook(gameClient.getHabbo(), habbo.getHabboInfo().getLook(), habbo.getHabboInfo().getGender().name()) : habbo.getHabboInfo().getLook()); gameClient.getHabbo().getHabboInfo().setGender(habbo.getHabboInfo().getGender()); gameClient.sendResponse(new UserObjectComposer(gameClient.getHabbo())); gameClient.getHabbo().getHabboInfo().getCurrentRoom().sendComposer(new UserChangeMessageComposer(gameClient.getHabbo()).compose()); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_mimic.copied").replace("%user%", params[1]).replace("%gender_name%", (habbo.getHabboInfo().getGender().equals(HabboGender.M) ? Emulator.getTexts().getValue("gender.him") : Emulator.getTexts().getValue("gender.her"))), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.succes.cmd_mimic.copied"), params[1]).replace("%gender_name%", getGenderName(habbo)), RoomChatMessageBubbles.ALERT); return true; } } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_mimic.not_found").replace("%user%", ""), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.error.cmd_mimic.not_found"), ""), RoomChatMessageBubbles.ALERT); return true; } } + + private String getGenderName(Habbo habbo) { + return habbo.getHabboInfo().getGender().equals(HabboGender.M) ? getTextsValue("gender.him") : getTextsValue("gender.her"); + } } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/MuteBotsCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/MuteBotsCommand.java index 1958c3ea..4f7a1e3c 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/MuteBotsCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/MuteBotsCommand.java @@ -12,7 +12,7 @@ public class MuteBotsCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) { gameClient.getHabbo().getHabboStats().setIgnoreBots(!gameClient.getHabbo().getHabboStats().isIgnoreBots()); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_mute_bots." + (gameClient.getHabbo().getHabboStats().isIgnoreBots() ? "ignored" : "unignored")), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.succes.cmd_mute_bots." + (gameClient.getHabbo().getHabboStats().isIgnoreBots() ? "ignored" : "unignored")), RoomChatMessageBubbles.ALERT); return true; } } \ No newline at end of file diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/MuteCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/MuteCommand.java index 9fc016de..a4e39464 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/MuteCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/MuteCommand.java @@ -14,18 +14,18 @@ public class MuteCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) { if (params.length == 1) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_mute.not_specified"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_mute.not_specified"), RoomChatMessageBubbles.ALERT); return true; } Habbo habbo = Emulator.getGameEnvironment().getHabboManager().getHabbo(params[1]); if (habbo == null) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_mute.not_found").replace("%user%", params[1]), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.error.cmd_mute.not_found"), params[1]), RoomChatMessageBubbles.ALERT); return true; } else { if (habbo == gameClient.getHabbo()) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_mute.self"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_mute.self"), RoomChatMessageBubbles.ALERT); return true; } @@ -38,7 +38,7 @@ public class MuteCommand extends Command { if (duration <= 0) throw new Exception(""); } catch (Exception e) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_mute.time"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_mute.time"), RoomChatMessageBubbles.ALERT); return true; } } @@ -49,7 +49,7 @@ public class MuteCommand extends Command { habbo.getHabboInfo().getCurrentRoom().sendComposer(new IgnoreResultMessageComposer(habbo, IgnoreResultMessageComposer.MUTED).compose()); //: RoomUserIgnoredComposer.UNIGNORED } - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_mute.muted").replace("%user%", params[1]), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.succes.cmd_mute.muted"), params[1]), RoomChatMessageBubbles.ALERT); } return true; diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/MutePetsCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/MutePetsCommand.java index f9f0f2ba..6e59c0d9 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/MutePetsCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/MutePetsCommand.java @@ -12,7 +12,7 @@ public class MutePetsCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) { gameClient.getHabbo().getHabboStats().setIgnorePets(!gameClient.getHabbo().getHabboStats().isIgnorePets()); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_mute_pets." + (gameClient.getHabbo().getHabboStats().isIgnorePets() ? "ignored" : "unignored")), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.succes.cmd_mute_pets." + (gameClient.getHabbo().getHabboStats().isIgnorePets() ? "ignored" : "unignored")), RoomChatMessageBubbles.ALERT); return true; } } \ No newline at end of file diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/PetInfoCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/PetInfoCommand.java index 1c74d9f5..a588964d 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/PetInfoCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/PetInfoCommand.java @@ -12,37 +12,37 @@ public class PetInfoCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) { - if (params.length > 1) { - if (gameClient.getHabbo().getHabboInfo().getCurrentRoom() == null) - return false; - - String name = params[1]; - - gameClient.getHabbo().getHabboInfo().getCurrentRoom().getCurrentPets().forEachEntry((a, pet) -> { - if (pet.getName().equalsIgnoreCase(name)) { - gameClient.getHabbo().alert("" + - Emulator.getTexts().getValue("commands.generic.cmd_pet_info.title") + ": " + pet.getName() + "\r\n" + - Emulator.getTexts().getValue("generic.pet.id") + ": " + pet.getId() + "\r" + - Emulator.getTexts().getValue("generic.pet.name") + ": " + pet.getName() + "\r" + - Emulator.getTexts().getValue("generic.pet.age") + ": " + pet.daysAlive() + " " + Emulator.getTexts().getValue("generic.pet.days.alive") + "\r" + - Emulator.getTexts().getValue("generic.pet.level") + ": " + pet.getLevel() + "\r" + - "\r" + - Emulator.getTexts().getValue("commands.generic.cmd_pet_info.stats") + "\r\n" + - Emulator.getTexts().getValue("generic.pet.scratches") + ": " + pet.getRespect() + "\r" + - Emulator.getTexts().getValue("generic.pet.energy") + ": " + pet.getEnergy() + "/" + PetManager.maxEnergy(pet.getLevel()) + "\r" + - Emulator.getTexts().getValue("generic.pet.happiness") + ": " + pet.getHappiness() + "\r" + - Emulator.getTexts().getValue("generic.pet.level.thirst") + ": " + pet.levelThirst + "\r" + - Emulator.getTexts().getValue("generic.pet.level.hunger") + ": " + pet.levelHunger + "\r" + - Emulator.getTexts().getValue("generic.pet.current_action") + ": " + (pet.getTask() == null ? Emulator.getTexts().getValue("generic.nothing") : pet.getTask().name()) + "\r" + - Emulator.getTexts().getValue("generic.can.walk") + ": " + (pet.getRoomUnit().canWalk() ? Emulator.getTexts().getValue("generic.yes") : Emulator.getTexts().getValue("generic.no")) + "" - ); - } - - return true; - }); - } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_pet_info.pet_not_found"), RoomChatMessageBubbles.ALERT); + if (params.length <= 1) { + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_pet_info.pet_not_found"), RoomChatMessageBubbles.ALERT); + return true; } + if (gameClient.getHabbo().getHabboInfo().getCurrentRoom() == null) + return false; + + String name = params[1]; + + gameClient.getHabbo().getHabboInfo().getCurrentRoom().getCurrentPets().forEachEntry((a, pet) -> { + if (pet.getName().equalsIgnoreCase(name)) { + gameClient.getHabbo().alert("" + + getTextsValue("commands.generic.cmd_pet_info.title") + ": " + pet.getName() + "\r\n" + + getTextsValue("generic.pet.id") + ": " + pet.getId() + "\r" + + getTextsValue("generic.pet.name") + ": " + pet.getName() + "\r" + + getTextsValue("generic.pet.age") + ": " + pet.daysAlive() + " " + getTextsValue("generic.pet.days.alive") + "\r" + + getTextsValue("generic.pet.level") + ": " + pet.getLevel() + "\r" + + "\r" + + getTextsValue("commands.generic.cmd_pet_info.stats") + "\r\n" + + getTextsValue("generic.pet.scratches") + ": " + pet.getRespect() + "\r" + + getTextsValue("generic.pet.energy") + ": " + pet.getEnergy() + "/" + PetManager.maxEnergy(pet.getLevel()) + "\r" + + getTextsValue("generic.pet.happiness") + ": " + pet.getHappiness() + "\r" + + getTextsValue("generic.pet.level.thirst") + ": " + pet.levelThirst + "\r" + + getTextsValue("generic.pet.level.hunger") + ": " + pet.levelHunger + "\r" + + getTextsValue("generic.pet.current_action") + ": " + (pet.getTask() == null ? getTextsValue("generic.nothing") : pet.getTask().name()) + "\r" + + getTextsValue("generic.can.walk") + ": " + (pet.getRoomUnit().canWalk() ? getTextsValue("generic.yes") : getTextsValue("generic.no")) + "" + ); + } + + return true; + }); return true; } } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/PickallCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/PickallCommand.java index 58cb4aa4..30138ac8 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/PickallCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/PickallCommand.java @@ -13,15 +13,17 @@ public class PickallCommand extends Command { public boolean handle(GameClient gameClient, String[] params) { Room room = gameClient.getHabbo().getHabboInfo().getCurrentRoom(); - if (room != null) { - if (room.isOwner(gameClient.getHabbo())) { - room.ejectAll(); - return true; - } - - room.ejectUserFurni(gameClient.getHabbo().getHabboInfo().getId()); + if (room == null) { + return true; } + if (room.isOwner(gameClient.getHabbo())) { + room.ejectAll(); + return true; + } + + room.ejectUserFurni(gameClient.getHabbo().getHabboInfo().getId()); + return true; } } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/PixelCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/PixelCommand.java deleted file mode 100644 index 0b25107d..00000000 --- a/src/main/java/com/eu/habbo/habbohotel/commands/PixelCommand.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.eu.habbo.habbohotel.commands; - -import com.eu.habbo.Emulator; -import com.eu.habbo.habbohotel.gameclients.GameClient; -import com.eu.habbo.habbohotel.rooms.RoomChatMessageBubbles; -import com.eu.habbo.habbohotel.users.Habbo; - -public class PixelCommand extends Command { - public PixelCommand() { - super("cmd_duckets", Emulator.getTexts().getValue("commands.keys.cmd_duckets").split(";")); - } - - @Override - public boolean handle(GameClient gameClient, String[] params) { - if (params.length == 3) { - Habbo habbo = Emulator.getGameServer().getGameClientManager().getHabbo(params[1]); - - if (habbo != null) { - try { - if (Integer.parseInt(params[2]) != 0) { - habbo.givePixels(Integer.parseInt(params[2])); - if (habbo.getHabboInfo().getCurrentRoom() != null) - habbo.whisper(Emulator.getTexts().getValue("commands.generic.cmd_duckets.received").replace("%amount%", Integer.parseInt(params[2]) + ""), RoomChatMessageBubbles.ALERT); - else - habbo.alert(Emulator.getTexts().getValue("commands.generic.cmd_duckets.received").replace("%amount%", Integer.parseInt(params[2]) + "")); - - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_duckets.send").replace("%amount%", Integer.parseInt(params[2]) + "").replace("%user%", params[1]), RoomChatMessageBubbles.ALERT); - - } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_duckets.invalid_amount"), RoomChatMessageBubbles.ALERT); - } - } catch (NumberFormatException e) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_duckets.invalid_amount"), RoomChatMessageBubbles.ALERT); - } - } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_duckets.user_offline").replace("%user%", params[1]), RoomChatMessageBubbles.ALERT); - } - } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_duckets.invalid_amount"), RoomChatMessageBubbles.ALERT); - } - return true; - } -} diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/PromoteTargetOfferCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/PromoteTargetOfferCommand.java index 35622227..c5f649fd 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/PromoteTargetOfferCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/PromoteTargetOfferCommand.java @@ -20,17 +20,17 @@ public class PromoteTargetOfferCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) { if (params.length <= 1) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_promote_offer.not_found")); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_promote_offer.not_found")); return true; } String offerKey = params[1]; - if (offerKey.equalsIgnoreCase(Emulator.getTexts().getValue("commands.cmd_promote_offer.info"))) { + if (offerKey.equalsIgnoreCase(getTextsValue("commands.cmd_promote_offer.info"))) { THashMap<Integer, TargetOffer> targetOffers = Emulator.getGameEnvironment().getCatalogManager().targetOffers; - String[] textConfig = Emulator.getTexts().getValue("commands.cmd_promote_offer.list").replace("%amount%", targetOffers.size() + "").split("<br>"); + String[] textConfig = getTextsValue("commands.cmd_promote_offer.list").replace("%amount%", targetOffers.size() + "").split("<br>"); - String entryConfig = Emulator.getTexts().getValue("commands.cmd_promote_offer.list.entry"); + String entryConfig = getTextsValue("commands.cmd_promote_offer.list.entry"); List<String> message = new ArrayList<>(); for (String pair : textConfig) { @@ -56,14 +56,13 @@ public class PromoteTargetOfferCommand extends Command { if (offer != null) { TargetOffer.ACTIVE_TARGET_OFFER_ID = offer.getId(); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_promote_offer").replace("%id%", offerKey).replace("%title%", offer.getTitle())); + gameClient.getHabbo().whisper(getTextsValue("commands.succes.cmd_promote_offer").replace("%id%", offerKey).replace("%title%", offer.getTitle())); - for (Habbo habbo : Emulator.getGameEnvironment().getHabboManager().getOnlineHabbos().values()) { - habbo.getClient().sendResponse(new TargetedOfferComposer(habbo, offer)); - } + Emulator.getGameEnvironment().getHabboManager().getOnlineHabbos().values() + .forEach(habbo -> habbo.getClient().sendResponse(new TargetedOfferComposer(habbo, offer))); } } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_promote_offer.not_found")); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_promote_offer.not_found")); return true; } } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/PullCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/PullCommand.java index 51e25aa8..90929c83 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/PullCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/PullCommand.java @@ -20,29 +20,29 @@ public class PullCommand extends Command { Habbo habbo = gameClient.getHabbo().getHabboInfo().getCurrentRoom().getHabbo(params[1]); if (habbo == null) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_pull.not_found").replace("%user%", params[1]), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.error.cmd_pull.not_found"), params[1]), RoomChatMessageBubbles.ALERT); return true; } if (habbo == gameClient.getHabbo()) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_pull.pull_self"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_pull.pull_self"), RoomChatMessageBubbles.ALERT); return true; } int distanceX = habbo.getRoomUnit().getX() - gameClient.getHabbo().getRoomUnit().getX(); int distanceY = habbo.getRoomUnit().getY() - gameClient.getHabbo().getRoomUnit().getY(); if (distanceX < -2 || distanceX > 2 || distanceY < -2 || distanceY > 2) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_pull.cant_reach").replace("%user%", params[1]), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.error.cmd_pull.cant_reach"), params[1]), RoomChatMessageBubbles.ALERT); return true; } RoomTile tile = gameClient.getHabbo().getHabboInfo().getCurrentRoom().getLayout().getTileInFront(gameClient.getHabbo().getRoomUnit().getCurrentLocation(), gameClient.getHabbo().getRoomUnit().getBodyRotation().getValue()); if (tile != null && tile.isWalkable()) { if (gameClient.getHabbo().getHabboInfo().getCurrentRoom().getLayout().getDoorTile() == tile) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_pull.invalid").replace("%username%", params[1])); + gameClient.getHabbo().whisper(replaceUsername(getTextsValue("commands.error.cmd_pull.invalid"), params[1])); return true; } habbo.getRoomUnit().setGoalLocation(tile); - gameClient.getHabbo().getHabboInfo().getCurrentRoom().sendComposer(new ChatMessageComposer(new RoomChatMessage(Emulator.getTexts().getValue("commands.succes.cmd_pull.pull").replace("%user%", params[1]).replace("%gender_name%", (gameClient.getHabbo().getHabboInfo().getGender().equals(HabboGender.M) ? Emulator.getTexts().getValue("gender.him") : Emulator.getTexts().getValue("gender.her"))), gameClient.getHabbo(), gameClient.getHabbo(), RoomChatMessageBubbles.NORMAL)).compose()); + gameClient.getHabbo().getHabboInfo().getCurrentRoom().sendComposer(new ChatMessageComposer(new RoomChatMessage(replaceUser(getTextsValue("commands.succes.cmd_pull.pull"), params[1]).replace("%gender_name%", (gameClient.getHabbo().getHabboInfo().getGender().equals(HabboGender.M) ? getTextsValue("gender.him") : getTextsValue("gender.her"))), gameClient.getHabbo(), gameClient.getHabbo(), RoomChatMessageBubbles.NORMAL)).compose()); } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/PushCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/PushCommand.java index 6944fab7..3d49edd4 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/PushCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/PushCommand.java @@ -21,12 +21,12 @@ public class PushCommand extends Command { Habbo habbo = gameClient.getHabbo().getHabboInfo().getCurrentRoom().getHabbo(params[1]); if (habbo == null) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_push.not_found").replace("%user%", params[1]), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.error.cmd_push.not_found"), params[1]), RoomChatMessageBubbles.ALERT); return true; } if (habbo == gameClient.getHabbo()) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_push.push_self"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_push.push_self"), RoomChatMessageBubbles.ALERT); return true; } RoomTile tFront = gameClient.getHabbo().getHabboInfo().getCurrentRoom().getLayout().getTileInFront(gameClient.getHabbo().getRoomUnit().getCurrentLocation(), gameClient.getHabbo().getRoomUnit().getBodyRotation().getValue()); @@ -37,14 +37,19 @@ public class PushCommand extends Command { if (tFrontTarget != null && tFrontTarget.isWalkable()) { if (gameClient.getHabbo().getHabboInfo().getCurrentRoom().getLayout().getDoorTile() == tFrontTarget) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_push.invalid").replace("%username%", params[1])); + gameClient.getHabbo().whisper(replaceUsername(getTextsValue("commands.error.cmd_push.invalid"), params[1])); return true; } habbo.getRoomUnit().setGoalLocation(tFrontTarget); - gameClient.getHabbo().getHabboInfo().getCurrentRoom().sendComposer(new ChatMessageComposer(new RoomChatMessage(Emulator.getTexts().getValue("commands.succes.cmd_push.push").replace("%user%", params[1]).replace("%gender_name%", (gameClient.getHabbo().getHabboInfo().getGender().equals(HabboGender.M) ? Emulator.getTexts().getValue("gender.him") : Emulator.getTexts().getValue("gender.her"))), gameClient.getHabbo(), gameClient.getHabbo(), RoomChatMessageBubbles.NORMAL)).compose()); + gameClient.getHabbo().getHabboInfo().getCurrentRoom().sendComposer( + new ChatMessageComposer( + new RoomChatMessage( + replaceUser(getTextsValue("commands.succes.cmd_push.push"), params[1]) + .replace("%gender_name%", (gameClient.getHabbo().getHabboInfo().getGender().equals(HabboGender.M) ? getTextsValue("gender.him") : getTextsValue("gender.her"))), gameClient.getHabbo(), gameClient.getHabbo(), RoomChatMessageBubbles.NORMAL)).compose() + ); } } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_push.cant_reach").replace("%user%", params[1]), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.error.cmd_push.cant_reach"), params[1]), RoomChatMessageBubbles.ALERT); return true; } } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/RedeemCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/RedeemCommand.java index 41d6fd0a..34ae90b5 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/RedeemCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/RedeemCommand.java @@ -29,47 +29,44 @@ public class RedeemCommand extends Command { TIntIntMap points = new TIntIntHashMap(); for (HabboItem item : gameClient.getHabbo().getInventory().getItemsComponent().getItemsAsValueCollection()) { - if (item.getBaseItem().getName().startsWith("CF_") || item.getBaseItem().getName().startsWith("CFC_") || item.getBaseItem().getName().startsWith("DF_") || item.getBaseItem().getName().startsWith("PF_")) { - if (item.getUserId() == gameClient.getHabbo().getHabboInfo().getId()) { - items.add(item); - if ((item.getBaseItem().getName().startsWith("CF_") || item.getBaseItem().getName().startsWith("CFC_")) && !item.getBaseItem().getName().contains("_diamond_")) { - try { - credits += Integer.parseInt(item.getBaseItem().getName().split("_")[1]); - } catch (Exception ignored) { - } - - } else if (item.getBaseItem().getName().startsWith("PF_")) { - try { - pixels += Integer.parseInt(item.getBaseItem().getName().split("_")[1]); - } catch (Exception ignored) { - } - } else if (item.getBaseItem().getName().startsWith("DF_")) { - int pointsType; - int pointsAmount; - - pointsType = Integer.parseInt(item.getBaseItem().getName().split("_")[1]); - pointsAmount = Integer.parseInt(item.getBaseItem().getName().split("_")[2]); - - points.adjustOrPutValue(pointsType, pointsAmount, pointsAmount); + if ((item.getBaseItem().getName().startsWith("CF_") || item.getBaseItem().getName().startsWith("CFC_") || item.getBaseItem().getName().startsWith("DF_") || item.getBaseItem().getName().startsWith("PF_")) && item.getUserId() == gameClient.getHabbo().getHabboInfo().getId()) { + items.add(item); + if ((item.getBaseItem().getName().startsWith("CF_") || item.getBaseItem().getName().startsWith("CFC_")) && !item.getBaseItem().getName().contains("_diamond_")) { + try { + credits += Integer.parseInt(item.getBaseItem().getName().split("_")[1]); + } catch (Exception ignored) { } - else if (item.getBaseItem().getName().startsWith("CF_diamond_")) { - int pointsType; - int pointsAmount; - pointsType = 5; - pointsAmount = Integer.parseInt(item.getBaseItem().getName().split("_")[2]); - - points.adjustOrPutValue(pointsType, pointsAmount, pointsAmount); + } else if (item.getBaseItem().getName().startsWith("PF_")) { + try { + pixels += Integer.parseInt(item.getBaseItem().getName().split("_")[1]); + } catch (Exception ignored) { } + } else if (item.getBaseItem().getName().startsWith("DF_")) { + int pointsType; + int pointsAmount; + + pointsType = Integer.parseInt(item.getBaseItem().getName().split("_")[1]); + pointsAmount = Integer.parseInt(item.getBaseItem().getName().split("_")[2]); + + points.adjustOrPutValue(pointsType, pointsAmount, pointsAmount); + } else if (item.getBaseItem().getName().startsWith("CF_diamond_")) { + int pointsType; + int pointsAmount; + + pointsType = 5; + pointsAmount = Integer.parseInt(item.getBaseItem().getName().split("_")[2]); + + points.adjustOrPutValue(pointsType, pointsAmount, pointsAmount); } } } TIntObjectHashMap<HabboItem> deleted = new TIntObjectHashMap<>(); - for (HabboItem item : items) { + items.forEach(item -> { gameClient.getHabbo().getInventory().getItemsComponent().removeHabboItem(item); deleted.put(item.getId(), item); - } + }); Emulator.getThreading().run(new QueryDeleteHabboItems(deleted)); @@ -77,20 +74,20 @@ public class RedeemCommand extends Command { gameClient.getHabbo().giveCredits(credits); gameClient.getHabbo().givePixels(pixels); - final String[] message = {Emulator.getTexts().getValue("generic.redeemed")}; + final String[] message = {getTextsValue("generic.redeemed")}; - message[0] += Emulator.getTexts().getValue("generic.credits"); + message[0] += getTextsValue("generic.credits"); message[0] += ": " + credits; if (pixels > 0) { - message[0] += ", " + Emulator.getTexts().getValue("generic.pixels"); - message[0] += ": " + pixels + ""; + message[0] += ", " + getTextsValue("generic.pixels"); + message[0] += ": " + pixels; } if (!points.isEmpty()) { points.forEachEntry((a, b) -> { gameClient.getHabbo().givePoints(a, b); - message[0] += " ," + Emulator.getTexts().getValue("seasonal.name." + a) + ": " + b; + message[0] += " ," + getTextsValue("seasonal.name." + a) + ": " + b; return true; }); } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/ReloadRoomCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/ReloadRoomCommand.java index 83dc8e0d..141f5bd2 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/ReloadRoomCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/ReloadRoomCommand.java @@ -24,9 +24,7 @@ public class ReloadRoomCommand extends Command { Emulator.getGameEnvironment().getRoomManager().unloadRoom(room); room = Emulator.getGameEnvironment().getRoomManager().loadRoom(room.getId()); ServerMessage message = new RoomForwardMessageComposer(room.getId()).compose(); - for (Habbo habbo : habbos) { - habbo.getClient().sendResponse(message); - } + habbos.forEach(habbo -> habbo.getClient().sendResponse(message)); } }, 100); diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/RoomAlertCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/RoomAlertCommand.java index 0c3c8f64..c54aad3d 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/RoomAlertCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/RoomAlertCommand.java @@ -6,6 +6,9 @@ import com.eu.habbo.habbohotel.rooms.Room; import com.eu.habbo.habbohotel.rooms.RoomChatMessageBubbles; import com.eu.habbo.messages.outgoing.modtool.IssueCloseNotificationMessageComposer; +import java.util.stream.Collectors; +import java.util.stream.IntStream; + public class RoomAlertCommand extends Command { public RoomAlertCommand() { super("cmd_roomalert", Emulator.getTexts().getValue("commands.keys.cmd_roomalert").split(";")); @@ -13,24 +16,22 @@ public class RoomAlertCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) { - StringBuilder message = new StringBuilder(); + String message; - if (params.length >= 2) { - for (int i = 1; i < params.length; i++) { - message.append(params[i]).append(" "); - } + if (params.length < 2) { + return false; + } + message = IntStream.range(1, params.length).mapToObj(i -> params[i] + " ").collect(Collectors.joining()); - if (message.length() == 0) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_roomalert.empty"), RoomChatMessageBubbles.ALERT); - return true; - } + if (message.length() == 0) { + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_roomalert.empty"), RoomChatMessageBubbles.ALERT); + return true; + } - Room room = gameClient.getHabbo().getHabboInfo().getCurrentRoom(); - - if (room != null) { - room.sendComposer(new IssueCloseNotificationMessageComposer(message.toString()).compose()); - return true; - } + Room room = gameClient.getHabbo().getHabboInfo().getCurrentRoom(); + if (room != null) { + room.sendComposer(new IssueCloseNotificationMessageComposer(message).compose()); + return true; } return false; diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/RoomBundleCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/RoomBundleCommand.java index 289b00af..71753696 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/RoomBundleCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/RoomBundleCommand.java @@ -26,12 +26,12 @@ public class RoomBundleCommand extends Command { int pointsType; if (params.length < 5) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_bundle.missing_params"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_bundle.missing_params"), RoomChatMessageBubbles.ALERT); return true; } if (Emulator.getGameEnvironment().getCatalogManager().getCatalogPage("room_bundle_" + gameClient.getHabbo().getHabboInfo().getCurrentRoom().getId()) != null) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_bundle.duplicate"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_bundle.duplicate"), RoomChatMessageBubbles.ALERT); return true; } @@ -42,9 +42,9 @@ public class RoomBundleCommand extends Command { CatalogPage page = Emulator.getGameEnvironment().getCatalogManager().createCatalogPage("Room Bundle: " + gameClient.getHabbo().getHabboInfo().getCurrentRoom().getName(), "room_bundle_" + gameClient.getHabbo().getHabboInfo().getCurrentRoom().getId(), gameClient.getHabbo().getHabboInfo().getCurrentRoom().getId(), 0, CatalogPageLayouts.room_bundle, gameClient.getHabbo().getHabboInfo().getRank().getId(), parentId); - if (page instanceof RoomBundleLayout) { + if (page instanceof RoomBundleLayout roomBundleLayout) { try (Connection connection = Emulator.getDatabase().getDataSource().getConnection(); PreparedStatement statement = connection.prepareStatement("INSERT INTO catalog_items (page_id, item_ids, catalog_name, cost_credits, cost_points, points_type ) VALUES (?, ?, ?, ?, ?, ?)", Statement.RETURN_GENERATED_KEYS)) { - statement.setInt(1, page.getId()); + statement.setInt(1, roomBundleLayout.getId()); statement.setString(2, ""); statement.setString(3, "room_bundle"); statement.setInt(4, credits); @@ -67,9 +67,9 @@ public class RoomBundleCommand extends Command { } catch (SQLException e) { log.error("Caught SQL exception", e); } - ((RoomBundleLayout) page).loadItems(gameClient.getHabbo().getHabboInfo().getCurrentRoom()); + roomBundleLayout.loadItems(gameClient.getHabbo().getHabboInfo().getCurrentRoom()); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_bundle").replace("%id%", page.getId() + ""), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.succes.cmd_bundle").replace("%id%", roomBundleLayout.getId() + ""), RoomChatMessageBubbles.ALERT); } return true; diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/RoomDanceCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/RoomDanceCommand.java index 1c1310cf..ad890783 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/RoomDanceCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/RoomDanceCommand.java @@ -20,21 +20,21 @@ public class RoomDanceCommand extends Command { try { danceId = Integer.parseInt(params[1]); } catch (Exception e) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_danceall.invalid_dance"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_danceall.invalid_dance"), RoomChatMessageBubbles.ALERT); return true; } if (danceId < 0 || danceId > 4) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_danceall.outside_bounds"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_danceall.outside_bounds"), RoomChatMessageBubbles.ALERT); return true; } - for (Habbo habbo : gameClient.getHabbo().getHabboInfo().getCurrentRoom().getHabbos()) { + gameClient.getHabbo().getHabboInfo().getCurrentRoom().getHabbos().forEach(habbo -> { habbo.getRoomUnit().setDanceType(DanceType.values()[danceId]); habbo.getHabboInfo().getCurrentRoom().sendComposer(new DanceMessageComposer(habbo.getRoomUnit()).compose()); - } + }); } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_danceall.no_dance"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_danceall.no_dance"), RoomChatMessageBubbles.ALERT); } return true; diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/RoomEffectCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/RoomEffectCommand.java index 535ee273..336610ef 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/RoomEffectCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/RoomEffectCommand.java @@ -14,7 +14,7 @@ public class RoomEffectCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) { if (params.length < 2) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_roomeffect.no_effect"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_roomeffect.no_effect"), RoomChatMessageBubbles.ALERT); return true; } @@ -23,16 +23,14 @@ public class RoomEffectCommand extends Command { if (effectId >= 0) { Room room = gameClient.getHabbo().getHabboInfo().getCurrentRoom(); - for (Habbo habbo : room.getHabbos()) { - room.giveEffect(habbo, effectId, -1); - } + room.getHabbos().forEach(habbo -> room.giveEffect(habbo, effectId, -1)); } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_roomeffect.positive"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_roomeffect.positive"), RoomChatMessageBubbles.ALERT); } return true; } catch (Exception e) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_roomeffect.numbers_only"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_roomeffect.numbers_only"), RoomChatMessageBubbles.ALERT); return true; } } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/RoomItemCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/RoomItemCommand.java index 8853a52d..da108f84 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/RoomItemCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/RoomItemCommand.java @@ -20,11 +20,11 @@ public class RoomItemCommand extends Command { itemId = Integer.parseInt(params[1]); if (itemId < 0) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_roomitem.positive"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_roomitem.positive"), RoomChatMessageBubbles.ALERT); return true; } } catch (Exception e) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_roomitem.no_item"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_roomitem.no_item"), RoomChatMessageBubbles.ALERT); return true; } } @@ -35,9 +35,9 @@ public class RoomItemCommand extends Command { } if (itemId > 0) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_roomitem.given").replace("%item%", itemId + ""), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.succes.cmd_roomitem.given").replace("%item%", itemId + ""), RoomChatMessageBubbles.ALERT); } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_roomitem.removed"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.succes.cmd_roomitem.removed"), RoomChatMessageBubbles.ALERT); } return true; } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/RoomKickCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/RoomKickCommand.java index 4190581c..5c525a0e 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/RoomKickCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/RoomKickCommand.java @@ -7,6 +7,9 @@ import com.eu.habbo.habbohotel.rooms.Room; import com.eu.habbo.habbohotel.users.Habbo; import com.eu.habbo.messages.outgoing.generic.alerts.HabboBroadcastMessageComposer; +import java.util.stream.Collectors; +import java.util.stream.IntStream; + public class RoomKickCommand extends Command { public RoomKickCommand() { super("cmd_kickall", Emulator.getTexts().getValue("commands.keys.cmd_kickall").split(";")); @@ -17,10 +20,7 @@ public class RoomKickCommand extends Command { final Room room = gameClient.getHabbo().getHabboInfo().getCurrentRoom(); if (room != null) { if (params.length > 1) { - StringBuilder message = new StringBuilder(); - for (int i = 1; i < params.length; i++) { - message.append(params[i]).append(" "); - } + String message = IntStream.range(1, params.length).mapToObj(i -> params[i] + " ").collect(Collectors.joining()); room.sendComposer(new HabboBroadcastMessageComposer(message + "\r\n-" + gameClient.getHabbo().getHabboInfo().getUsername()).compose()); } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/SayAllCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/SayAllCommand.java index 26ac9292..d2eeced7 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/SayAllCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/SayAllCommand.java @@ -5,6 +5,9 @@ import com.eu.habbo.habbohotel.gameclients.GameClient; import com.eu.habbo.habbohotel.rooms.RoomChatMessageBubbles; import com.eu.habbo.habbohotel.users.Habbo; +import java.util.stream.Collectors; +import java.util.stream.IntStream; + public class SayAllCommand extends Command { public SayAllCommand() { super("cmd_say_all", Emulator.getTexts().getValue("commands.keys.cmd_say_all").split(";")); @@ -13,18 +16,13 @@ public class SayAllCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) { if (params.length < 2) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_say_all.forgot_message"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_say_all.forgot_message"), RoomChatMessageBubbles.ALERT); return true; } - StringBuilder message = new StringBuilder(); - for (int i = 1; i < params.length; i++) { - message.append(params[i]).append(" "); - } + String message = IntStream.range(1, params.length).mapToObj(i -> params[i] + " ").collect(Collectors.joining()); - for (Habbo habbo : gameClient.getHabbo().getHabboInfo().getCurrentRoom().getHabbos()) { - habbo.talk(message.toString()); - } + gameClient.getHabbo().getHabboInfo().getCurrentRoom().getHabbos().forEach(habbo -> habbo.talk(message)); return true; } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/SayCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/SayCommand.java index 3fe9367c..2d1b4279 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/SayCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/SayCommand.java @@ -7,6 +7,9 @@ import com.eu.habbo.habbohotel.rooms.RoomChatMessageBubbles; import com.eu.habbo.habbohotel.users.Habbo; import com.eu.habbo.messages.outgoing.rooms.users.ChatMessageComposer; +import java.util.stream.Collectors; +import java.util.stream.IntStream; + public class SayCommand extends Command { public SayCommand() { super("cmd_say", Emulator.getTexts().getValue("commands.keys.cmd_say").split(";")); @@ -15,31 +18,29 @@ public class SayCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) { if (params.length < 2) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_say.forgot_username"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_say.forgot_username"), RoomChatMessageBubbles.ALERT); return true; } - Habbo target = Emulator.getGameEnvironment().getHabboManager().getHabbo(params[1]); + Habbo target = getHabbo(params[1]); if (target == null) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_say.user_not_found"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_say.user_not_found"), RoomChatMessageBubbles.ALERT); return true; } else { if (target.getHabboInfo().getCurrentRoom() == null) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_say.hotel_view").replace("%user%", params[1]), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.error.cmd_say.hotel_view"), params[1]), RoomChatMessageBubbles.ALERT); return true; } } - StringBuilder message = new StringBuilder(); + String message = ""; if (params.length > 2) { - for (int i = 2; i < params.length; i++) { - message.append(params[i]).append(" "); - } + message = IntStream.range(2, params.length).mapToObj(i -> params[i] + " ").collect(Collectors.joining()); } - target.getHabboInfo().getCurrentRoom().sendComposer(new ChatMessageComposer(new RoomChatMessage(message.toString(), target, RoomChatMessageBubbles.NORMAL)).compose()); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_say").replace("%user%", params[1]).replace("%message%", message.toString()), RoomChatMessageBubbles.ALERT); + target.getHabboInfo().getCurrentRoom().sendComposer(new ChatMessageComposer(new RoomChatMessage(message, target, RoomChatMessageBubbles.NORMAL)).compose()); + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.succes.cmd_say"), params[1]).replace("%message%", message), RoomChatMessageBubbles.ALERT); return true; } } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/SetMaxCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/SetMaxCommand.java index 688ae9c1..a0b40549 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/SetMaxCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/SetMaxCommand.java @@ -21,12 +21,12 @@ public class SetMaxCommand extends Command { if (max > 0 && max < 9999) { gameClient.getHabbo().getHabboInfo().getCurrentRoom().setUsersMax(max); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.success.cmd_setmax").replace("%value%", max + ""), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.success.cmd_setmax").replace("%value%", max + ""), RoomChatMessageBubbles.ALERT); } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_setmax.invalid_number"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_setmax.invalid_number"), RoomChatMessageBubbles.ALERT); } } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_setmax.forgot_number"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_setmax.forgot_number"), RoomChatMessageBubbles.ALERT); } return true; } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/SetPollCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/SetPollCommand.java index e3064cc9..3ee22856 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/SetPollCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/SetPollCommand.java @@ -11,28 +11,27 @@ public class SetPollCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) { - if (params.length >= 2) { - if (gameClient.getHabbo().getHabboInfo().getCurrentRoom() != null) { - int pollId = -1; - try { - pollId = Integer.parseInt(params[1]); - } catch (Exception ignored) { + if (params.length < 2) { + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_set_poll.missing_arg"), RoomChatMessageBubbles.ALERT); + return true; + } - } + if (gameClient.getHabbo().getHabboInfo().getCurrentRoom() != null) { + int pollId = -1; + try { + pollId = Integer.parseInt(params[1]); + } catch (Exception ignored) {} - if (pollId >= 0) { - if (Emulator.getGameEnvironment().getPollManager().getPoll(pollId) != null) { - gameClient.getHabbo().getHabboInfo().getCurrentRoom().setPollId(pollId); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_set_poll"), RoomChatMessageBubbles.ALERT); - } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_set_poll.not_found"), RoomChatMessageBubbles.ALERT); - } + if (pollId >= 0) { + if (Emulator.getGameEnvironment().getPollManager().getPoll(pollId) != null) { + gameClient.getHabbo().getHabboInfo().getCurrentRoom().setPollId(pollId); + gameClient.getHabbo().whisper(getTextsValue("commands.succes.cmd_set_poll"), RoomChatMessageBubbles.ALERT); } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_set_poll.invalid_number"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_set_poll.not_found"), RoomChatMessageBubbles.ALERT); } + } else { + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_set_poll.invalid_number"), RoomChatMessageBubbles.ALERT); } - } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_set_poll.missing_arg"), RoomChatMessageBubbles.ALERT); } return true; diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/SetSpeedCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/SetSpeedCommand.java index ed67a1e8..08e26036 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/SetSpeedCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/SetSpeedCommand.java @@ -12,30 +12,28 @@ public class SetSpeedCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) { - if (gameClient.getHabbo().getHabboInfo().getCurrentRoom() != null) { - if (gameClient.getHabbo().getHabboInfo().getCurrentRoom().hasRights(gameClient.getHabbo())) { - Room room = gameClient.getHabbo().getHabboInfo().getCurrentRoom(); + if (gameClient.getHabbo().getHabboInfo().getCurrentRoom() != null && gameClient.getHabbo().getHabboInfo().getCurrentRoom().hasRights(gameClient.getHabbo())) { + Room room = gameClient.getHabbo().getHabboInfo().getCurrentRoom(); - int oldSpeed = room.getRollerSpeed(); - int newSpeed; + int oldSpeed = room.getRollerSpeed(); + int newSpeed; - try { - newSpeed = Integer.parseInt(params[1]); - } catch (Exception e) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_setspeed.invalid_amount"), RoomChatMessageBubbles.ALERT); - return true; - } - - if (newSpeed < -1 || newSpeed > Emulator.getConfig().getInt("hotel.rollers.speed.maximum")) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_setspeed.bounds"), RoomChatMessageBubbles.ALERT); - return true; - } - - room.setRollerSpeed(newSpeed); - - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_setspeed").replace("%oldspeed%", oldSpeed + "").replace("%newspeed%", newSpeed + ""), RoomChatMessageBubbles.ALERT); + try { + newSpeed = Integer.parseInt(params[1]); + } catch (Exception e) { + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_setspeed.invalid_amount"), RoomChatMessageBubbles.ALERT); return true; } + + if (newSpeed < -1 || newSpeed > Emulator.getConfig().getInt("hotel.rollers.speed.maximum")) { + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_setspeed.bounds"), RoomChatMessageBubbles.ALERT); + return true; + } + + room.setRollerSpeed(newSpeed); + + gameClient.getHabbo().whisper(getTextsValue("commands.succes.cmd_setspeed").replace("%oldspeed%", oldSpeed + "").replace("%newspeed%", newSpeed + ""), RoomChatMessageBubbles.ALERT); + return true; } return false; } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/ShoutAllCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/ShoutAllCommand.java index 249c4d8e..aebda31e 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/ShoutAllCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/ShoutAllCommand.java @@ -5,6 +5,9 @@ import com.eu.habbo.habbohotel.gameclients.GameClient; import com.eu.habbo.habbohotel.rooms.RoomChatMessageBubbles; import com.eu.habbo.habbohotel.users.Habbo; +import java.util.stream.Collectors; +import java.util.stream.IntStream; + public class ShoutAllCommand extends Command { public ShoutAllCommand() { super("cmd_shout_all", Emulator.getTexts().getValue("commands.keys.cmd_shout_all").split(";")); @@ -13,17 +16,14 @@ public class ShoutAllCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) { if (params.length < 2) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_shout_all.forgot_message"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_shout_all.forgot_message"), RoomChatMessageBubbles.ALERT); return true; } - StringBuilder message = new StringBuilder(); - for (int i = 1; i < params.length; i++) { - message.append(params[i]).append(" "); - } + String message = IntStream.range(1, params.length).mapToObj(i -> params[i] + " ").collect(Collectors.joining()); for (Habbo habbo : gameClient.getHabbo().getHabboInfo().getCurrentRoom().getHabbos()) { - habbo.shout(message.toString()); + habbo.shout(message); } return true; diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/ShoutCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/ShoutCommand.java index 880a056a..d6e9733b 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/ShoutCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/ShoutCommand.java @@ -7,6 +7,9 @@ import com.eu.habbo.habbohotel.rooms.RoomChatMessageBubbles; import com.eu.habbo.habbohotel.users.Habbo; import com.eu.habbo.messages.outgoing.rooms.users.ShoutMessageComposer; +import java.util.stream.Collectors; +import java.util.stream.IntStream; + public class ShoutCommand extends Command { public ShoutCommand() { @@ -16,31 +19,29 @@ public class ShoutCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) { if (params.length < 2) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_shout.forgot_username"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_shout.forgot_username"), RoomChatMessageBubbles.ALERT); return true; } Habbo target = Emulator.getGameEnvironment().getHabboManager().getHabbo(params[1]); if (target == null) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_shout.user_not_found"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_shout.user_not_found"), RoomChatMessageBubbles.ALERT); return true; } else { if (target.getHabboInfo().getCurrentRoom() == null) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_shout.hotel_view").replace("%user%", params[1]), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.error.cmd_shout.hotel_view"), params[1]), RoomChatMessageBubbles.ALERT); return true; } } - StringBuilder message = new StringBuilder(); + String message = ""; if (params.length > 2) { - for (int i = 2; i < params.length; i++) { - message.append(params[i]).append(" "); - } + message = IntStream.range(2, params.length).mapToObj(i -> params[i] + " ").collect(Collectors.joining()); } - target.getHabboInfo().getCurrentRoom().sendComposer(new ShoutMessageComposer(new RoomChatMessage(message.toString(), target, RoomChatMessageBubbles.NORMAL)).compose()); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_shout").replace("%user%", params[1]).replace("%message%", message.toString()), RoomChatMessageBubbles.ALERT); + target.getHabboInfo().getCurrentRoom().sendComposer(new ShoutMessageComposer(new RoomChatMessage(message, target, RoomChatMessageBubbles.NORMAL)).compose()); + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.succes.cmd_shout"), params[1]).replace("%message%", message), RoomChatMessageBubbles.ALERT); return true; } } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/ShutdownCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/ShutdownCommand.java index 5dfe34ac..fbce855d 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/ShutdownCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/ShutdownCommand.java @@ -34,9 +34,9 @@ public class ShutdownCommand extends Command { ServerMessage message; if (!reason.toString().equals("-")) { - message = new HabboBroadcastMessageComposer("<b>" + Emulator.getTexts().getValue("generic.warning") + "</b> \r\n" + - Emulator.getTexts().getValue("generic.shutdown").replace("%minutes%", minutes + "") + "\r\n" + - Emulator.getTexts().getValue("generic.reason.specified") + ": <b>" + reason + "</b>\r" + + message = new HabboBroadcastMessageComposer("<b>" + getTextsValue("generic.warning") + "</b> \r\n" + + getTextsValue("generic.shutdown").replace("%minutes%", minutes + "") + "\r\n" + + getTextsValue("generic.reason.specified") + ": <b>" + reason + "</b>\r" + "\r" + "- " + gameClient.getHabbo().getHabboInfo().getUsername()).compose(); } else { diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/SitDownCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/SitDownCommand.java index 37c4bac0..c539d0b6 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/SitDownCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/SitDownCommand.java @@ -12,15 +12,14 @@ public class SitDownCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) { - for (Habbo habbo : gameClient.getHabbo().getHabboInfo().getCurrentRoom().getHabbos()) { + gameClient.getHabbo().getHabboInfo().getCurrentRoom().getHabbos().forEach(habbo -> { if (habbo.getRoomUnit().isWalking()) { habbo.getRoomUnit().stopWalking(); } else if (habbo.getRoomUnit().hasStatus(RoomUnitStatus.SIT)) { - continue; + return; } - gameClient.getHabbo().getHabboInfo().getCurrentRoom().makeSit(habbo); - } + }); return true; } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/SoftKickCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/SoftKickCommand.java index 69bc0345..005e9f6e 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/SoftKickCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/SoftKickCommand.java @@ -15,23 +15,23 @@ public class SoftKickCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) { if (params.length != 2) return true; - final Habbo habbo = gameClient.getHabbo().getHabboInfo().getCurrentRoom().getHabbo(params[1]); + final Habbo habbo = gameClient.getHabbo().getHabboInfo().getCurrentRoom().getHabbo(params[1]); - if (habbo == null) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.keys.cmd_softkick_error").replace("%user%", params[1]), RoomChatMessageBubbles.ALERT); - return true; - } + if (habbo == null) { + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.keys.cmd_softkick_error"), params[1]), RoomChatMessageBubbles.ALERT); + return true; + } - if (habbo == gameClient.getHabbo()) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.keys.cmd_softkick_error_self"), RoomChatMessageBubbles.ALERT); - return true; - } + if (habbo == gameClient.getHabbo()) { + gameClient.getHabbo().whisper(getTextsValue("commands.keys.cmd_softkick_error_self"), RoomChatMessageBubbles.ALERT); + return true; + } - final Room room = gameClient.getHabbo().getHabboInfo().getCurrentRoom(); + final Room room = gameClient.getHabbo().getHabboInfo().getCurrentRoom(); - if (room != null && (!(habbo.hasPermission(Permission.ACC_UNKICKABLE) || habbo.hasPermission(Permission.ACC_SUPPORTTOOL) || room.isOwner(habbo)))) { - room.kickHabbo(habbo, false); - } - return true; + if (room != null && (!(habbo.hasPermission(Permission.ACC_UNKICKABLE) || habbo.hasPermission(Permission.ACC_SUPPORTTOOL) || room.isOwner(habbo)))) { + room.kickHabbo(habbo, false); + } + return true; } } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/StaffAlertCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/StaffAlertCommand.java index 2ba1ed45..2169a2d1 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/StaffAlertCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/StaffAlertCommand.java @@ -6,6 +6,9 @@ import com.eu.habbo.habbohotel.messenger.Message; import com.eu.habbo.habbohotel.rooms.RoomChatMessageBubbles; import com.eu.habbo.messages.outgoing.friends.NewConsoleMessageComposer; +import java.util.stream.Collectors; +import java.util.stream.IntStream; + public class StaffAlertCommand extends Command { public StaffAlertCommand() { super("cmd_staffalert", Emulator.getTexts().getValue("commands.keys.cmd_staffalert").split(";")); @@ -14,15 +17,12 @@ public class StaffAlertCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) { if (params.length > 1) { - StringBuilder message = new StringBuilder(); - for (int i = 1; i < params.length; i++) { - message.append(params[i]).append(" "); - } + String message = IntStream.range(1, params.length).mapToObj(i -> params[i] + " ").collect(Collectors.joining()); Emulator.getGameEnvironment().getHabboManager().staffAlert(message + "\r\n-" + gameClient.getHabbo().getHabboInfo().getUsername()); - Emulator.getGameServer().getGameClientManager().sendBroadcastResponse(new NewConsoleMessageComposer(new Message(gameClient.getHabbo().getHabboInfo().getId(), -1, message.toString())).compose(), "acc_staff_chat", gameClient); + Emulator.getGameServer().getGameClientManager().sendBroadcastResponse(new NewConsoleMessageComposer(new Message(gameClient.getHabbo().getHabboInfo().getId(), -1, message)).compose(), "acc_staff_chat", gameClient); } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_staffalert.forgot_message"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_staffalert.forgot_message"), RoomChatMessageBubbles.ALERT); } return true; diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/StaffOnlineCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/StaffOnlineCommand.java index eb1a5bcf..5be956af 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/StaffOnlineCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/StaffOnlineCommand.java @@ -7,7 +7,9 @@ import com.eu.habbo.habbohotel.users.Habbo; import java.util.ArrayList; import java.util.Comparator; +import java.util.List; import java.util.Map; +import java.util.stream.Collectors; public class StaffOnlineCommand extends Command { public StaffOnlineCommand() { @@ -23,39 +25,29 @@ public class StaffOnlineCommand extends Command { int i = Integer.parseInt(params[1]); if (i < 1) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_staffonline.positive_only"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_staffonline.positive_only"), RoomChatMessageBubbles.ALERT); return true; } else { minRank = i; } } catch (Exception e) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_staffonline.numbers_only"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_staffonline.numbers_only"), RoomChatMessageBubbles.ALERT); return true; } } synchronized (Emulator.getGameEnvironment().getHabboManager().getOnlineHabbos()) { - ArrayList<Habbo> staffs = new ArrayList<>(); + int finalMinRank = minRank; + List<Habbo> staffs = Emulator.getGameEnvironment().getHabboManager().getOnlineHabbos().values().stream() + .filter(habbo -> habbo.getHabboInfo().getRank().getId() >= finalMinRank) + .sorted(Comparator.comparingInt(o->o.getHabboInfo().getId())) + .toList(); - for (Map.Entry<Integer, Habbo> set : Emulator.getGameEnvironment().getHabboManager().getOnlineHabbos().entrySet()) { - if (set.getValue().getHabboInfo().getRank().getId() >= minRank) { - staffs.add(set.getValue()); - } - } + String message = staffs.stream() + .map(habbo -> habbo.getHabboInfo().getUsername() + ": " + habbo.getHabboInfo().getRank().getName() + "\r") + .collect(Collectors.joining("", getTextsValue("commands.generic.cmd_staffonline.staffs") + "\r\n", "")); - staffs.sort(Comparator.comparingInt(o -> o.getHabboInfo().getId())); - - StringBuilder message = new StringBuilder(Emulator.getTexts().getValue("commands.generic.cmd_staffonline.staffs")); - message.append("\r\n"); - - for (Habbo habbo : staffs) { - message.append(habbo.getHabboInfo().getUsername()); - message.append(": "); - message.append(habbo.getHabboInfo().getRank().getName()); - message.append("\r"); - } - - gameClient.getHabbo().alert(message.toString()); + gameClient.getHabbo().alert(message); } return true; diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/StalkCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/StalkCommand.java index 11fed574..f7f3fb44 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/StalkCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/StalkCommand.java @@ -17,32 +17,31 @@ public class StalkCommand extends Command { return true; if (params.length >= 2) { - Habbo habbo = Emulator.getGameEnvironment().getHabboManager().getHabbo(params[1]); + Habbo habbo = getHabbo(params[1]); if (habbo == null) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_stalk.not_found").replace("%user%", params[1]), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.error.cmd_stalk.not_found"), params[1]), RoomChatMessageBubbles.ALERT); return true; } if (habbo.getHabboInfo().getCurrentRoom() == null) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_stalk.not_room").replace("%user%", params[1]), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.error.cmd_stalk.not_room"), params[1]), RoomChatMessageBubbles.ALERT); return true; } if (gameClient.getHabbo().getHabboInfo().getUsername().equals(habbo.getHabboInfo().getUsername())) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.generic.cmd_stalk.self").replace("%user%", params[1]), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.generic.cmd_stalk.self"), params[1]), RoomChatMessageBubbles.ALERT); return true; } if (gameClient.getHabbo().getHabboInfo().getCurrentRoom() == habbo.getHabboInfo().getCurrentRoom()) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.generic.cmd_stalk.same_room").replace("%user%", params[1]), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.generic.cmd_stalk.same_room"), params[1]), RoomChatMessageBubbles.ALERT); return true; } gameClient.sendResponse(new GetGuestRoomResultComposer(habbo.getHabboInfo().getCurrentRoom(), gameClient.getHabbo(), true, false)); - //gameClient.sendResponse(new ForwardToRoomComposer(habbo.getHabboInfo().getCurrentRoom().getId())); } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_stalk.forgot_username"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_stalk.forgot_username"), RoomChatMessageBubbles.ALERT); } return true; } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/SubscriptionCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/SubscriptionCommand.java index 1a18b404..089a3415 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/SubscriptionCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/SubscriptionCommand.java @@ -8,6 +8,9 @@ import com.eu.habbo.habbohotel.users.HabboManager; import com.eu.habbo.habbohotel.users.HabboStats; import com.eu.habbo.habbohotel.users.subscriptions.Subscription; +import java.util.stream.Collectors; +import java.util.stream.IntStream; + /** * @author Beny */ @@ -18,13 +21,13 @@ public class SubscriptionCommand extends Command { /** * Allows you to give/extend/remove subscription on a given user. - * + * <p> * Parameters: * [username] = Username of user to execute command on * [type] = Subscription type (e.g. HABBO_CLUB) * [add|remove] = Use add or remove to increase/decrease sub duration * [time] = Time string e.g. "1 week", "18 days", "4 minutes". Can be complex e.g. "1 month 5 days 2 minutes" - * + * <p> * Examples: * :sub Beny habbo_club add 1 month - adds 1 month of HABBO_CLUB subscription duration on the user Beny * :sub Beny builders_club add 1 month - adds 1 month of BUILDERS_CLUB subscription duration on the user Beny @@ -32,76 +35,72 @@ public class SubscriptionCommand extends Command { * :sub Beny habbo_club remove - removes all remaining time from the HABBO_CLUB subscription (expires it) on the user Beny * * @param gameClient Client that executed the command - * @param params Command parameters + * @param params Command parameters * @return Boolean indicating success */ @Override public boolean handle(GameClient gameClient, String[] params) { - if (params.length >= 4) { - HabboInfo info = HabboManager.getOfflineHabboInfo(params[1]); + if (params.length < 4) { + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_subscription.invalid_params", "Invalid command format"), RoomChatMessageBubbles.ALERT); + return true; + } + HabboInfo info = HabboManager.getOfflineHabboInfo(params[1]); - if (info != null) { - HabboStats stats = info.getHabboStats(); - String subscription = params[2].toUpperCase(); - String action = params[3]; + if (info == null) { + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.error.cmd_subscription.user_not_found", "%user% was not found"), params[1]), RoomChatMessageBubbles.ALERT); + return true; + } - StringBuilder message = new StringBuilder(); - if (params.length > 4) { - for (int i = 4; i < params.length; i++) { - message.append(params[i]).append(" "); - } - } - - if(!Emulator.getGameEnvironment().getSubscriptionManager().getTypes().containsKey(subscription)) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_subscription.type_not_found", "%subscription% is not a valid subscription type").replace("%subscription%", subscription), RoomChatMessageBubbles.ALERT); + HabboStats stats = info.getHabboStats(); + String subscription = params[2].toUpperCase(); + String action = params[3]; + + String message = ""; + if (params.length > 4) { + message = IntStream.range(4, params.length).mapToObj(i -> params[i] + " ").collect(Collectors.joining()); + } + + if (!Emulator.getGameEnvironment().getSubscriptionManager().getTypes().containsKey(subscription)) { + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_subscription.type_not_found", "%subscription% is not a valid subscription type").replace("%subscription%", subscription), RoomChatMessageBubbles.ALERT); + return true; + } + + if (action.equalsIgnoreCase("add") || action.equalsIgnoreCase("+") || action.equalsIgnoreCase("a")) { + int timeToAdd = Emulator.timeStringToSeconds(message); + + if (timeToAdd < 1) { + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_subscription.invalid_params_time", "Invalid time span, try: x minutes/days/weeks/months"), RoomChatMessageBubbles.ALERT); + return true; + } + + stats.createSubscription(subscription, timeToAdd); + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.error.cmd_subscription.success_add_time", "Successfully added %time% seconds to %subscription% on %user%"), params[1]).replace("%time%", timeToAdd + "").replace("%subscription%", subscription), RoomChatMessageBubbles.ALERT); + } else if (action.equalsIgnoreCase("remove") || action.equalsIgnoreCase("-") || action.equalsIgnoreCase("r")) { + Subscription s = stats.getSubscription(subscription); + + if (s == null) { + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.error.cmd_subscription.user_not_have", "%user% does not have the %subscription% subscription"), params[1]).replace("%subscription%", subscription), RoomChatMessageBubbles.ALERT); + return true; + } + + if (message.length() != 0) { + int timeToRemove = Emulator.timeStringToSeconds(message); + + if (timeToRemove < 1) { + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_subscription.invalid_params_time", "Invalid time span, try: x minutes/days/weeks/months"), RoomChatMessageBubbles.ALERT); return true; } - if(action.equalsIgnoreCase("add") || action.equalsIgnoreCase("+") || action.equalsIgnoreCase("a")) { - int timeToAdd = Emulator.timeStringToSeconds(message.toString()); - - if(timeToAdd < 1) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_subscription.invalid_params_time", "Invalid time span, try: x minutes/days/weeks/months"), RoomChatMessageBubbles.ALERT); - return true; - } - - stats.createSubscription(subscription, timeToAdd); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_subscription.success_add_time", "Successfully added %time% seconds to %subscription% on %user%").replace("%time%", timeToAdd + "").replace("%user%", params[1]).replace("%subscription%", subscription), RoomChatMessageBubbles.ALERT); - } - else if(action.equalsIgnoreCase("remove") || action.equalsIgnoreCase("-") || action.equalsIgnoreCase("r")) { - Subscription s = stats.getSubscription(subscription); - - if (s == null) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_subscription.user_not_have", "%user% does not have the %subscription% subscription").replace("%user%", params[1]).replace("%subscription%", subscription), RoomChatMessageBubbles.ALERT); - return true; - } - - if(message.length() != 0) { - int timeToRemove = Emulator.timeStringToSeconds(message.toString()); - - if (timeToRemove < 1) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_subscription.invalid_params_time", "Invalid time span, try: x minutes/days/weeks/months"), RoomChatMessageBubbles.ALERT); - return true; - } - - s.addDuration(-timeToRemove); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_subscription.success_remove_time", "Successfully removed %time% seconds from %subscription% on %user%").replace("%time%", timeToRemove + "").replace("%user%", params[1]).replace("%subscription%", subscription), RoomChatMessageBubbles.ALERT); - } - else { - s.addDuration(-s.getRemaining()); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_subscription.success_remove_sub", "Successfully removed %subscription% sub from %user%").replace("%user%", params[1]).replace("%subscription%", subscription), RoomChatMessageBubbles.ALERT); - } - } - else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_subscription.invalid_action", "Invalid action specified. Must be add, +, remove or -"), RoomChatMessageBubbles.ALERT); - } - + s.addDuration(-timeToRemove); + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.error.cmd_subscription.success_remove_time", "Successfully removed %time% seconds from %subscription% on %user%"), params[1]).replace("%time%", timeToRemove + "").replace("%subscription%", subscription), RoomChatMessageBubbles.ALERT); } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_subscription.user_not_found", "%user% was not found").replace("%user%", params[1]), RoomChatMessageBubbles.ALERT); + s.addDuration(-s.getRemaining()); + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.error.cmd_subscription.success_remove_sub", "Successfully removed %subscription% sub from %user%"), params[1]).replace("%subscription%", subscription), RoomChatMessageBubbles.ALERT); } } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_subscription.invalid_params", "Invalid command format"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_subscription.invalid_action", "Invalid action specified. Must be add, +, remove or -"), RoomChatMessageBubbles.ALERT); } + return true; } } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/SummonCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/SummonCommand.java index 4699866e..0bd17d72 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/SummonCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/SummonCommand.java @@ -17,44 +17,45 @@ public class SummonCommand extends Command { if (gameClient.getHabbo().getHabboInfo().getCurrentRoom() == null) return true; - if (params.length >= 2) { - Habbo habbo = Emulator.getGameEnvironment().getHabboManager().getHabbo(params[1]); - - if (habbo == null) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_summon.not_found").replace("%user%", params[1]), RoomChatMessageBubbles.ALERT); - return true; - } - - if (gameClient.getHabbo().getHabboInfo().getUsername().equals(habbo.getHabboInfo().getUsername())) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.generic.cmd_summon.self").replace("%user%", params[1]), RoomChatMessageBubbles.ALERT); - return true; - } - - if (gameClient.getHabbo().getHabboInfo().getCurrentRoom() == habbo.getHabboInfo().getCurrentRoom()) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.generic.cmd_summon.same_room").replace("%user%", params[1]), RoomChatMessageBubbles.ALERT); - return true; - } - - Room room = habbo.getHabboInfo().getCurrentRoom(); - if (room != null) { - Emulator.getGameEnvironment().getRoomManager().logExit(habbo); - - room.removeHabbo(habbo, true); - - habbo.getHabboInfo().setCurrentRoom(null); - } - - Emulator.getGameEnvironment().getRoomManager().enterRoom(habbo, gameClient.getHabbo().getHabboInfo().getCurrentRoom().getId(), "", true); - - habbo.getClient().sendResponse(new RoomForwardMessageComposer(gameClient.getHabbo().getHabboInfo().getCurrentRoom().getId())); - - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_summon.summoned").replace("%user%", params[1]), RoomChatMessageBubbles.ALERT); - - habbo.alert(Emulator.getTexts().getValue("commands.generic.cmd_summon.been_summoned").replace("%user%", gameClient.getHabbo().getHabboInfo().getUsername())); - - } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_summon.forgot_username"), RoomChatMessageBubbles.ALERT); + if (params.length < 2) { + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_summon.forgot_username"), RoomChatMessageBubbles.ALERT); + return true; } + + Habbo habbo = getHabbo(params[1]); + + if (habbo == null) { + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.error.cmd_summon.not_found"), params[1]), RoomChatMessageBubbles.ALERT); + return true; + } + + if (gameClient.getHabbo().getHabboInfo().getUsername().equals(habbo.getHabboInfo().getUsername())) { + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.generic.cmd_summon.self"), params[1]), RoomChatMessageBubbles.ALERT); + return true; + } + + if (gameClient.getHabbo().getHabboInfo().getCurrentRoom() == habbo.getHabboInfo().getCurrentRoom()) { + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.generic.cmd_summon.same_room"), params[1]), RoomChatMessageBubbles.ALERT); + return true; + } + + Room room = habbo.getHabboInfo().getCurrentRoom(); + if (room != null) { + Emulator.getGameEnvironment().getRoomManager().logExit(habbo); + + room.removeHabbo(habbo, true); + + habbo.getHabboInfo().setCurrentRoom(null); + } + + Emulator.getGameEnvironment().getRoomManager().enterRoom(habbo, gameClient.getHabbo().getHabboInfo().getCurrentRoom().getId(), "", true); + + habbo.getClient().sendResponse(new RoomForwardMessageComposer(gameClient.getHabbo().getHabboInfo().getCurrentRoom().getId())); + + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.succes.cmd_summon.summoned"), params[1]), RoomChatMessageBubbles.ALERT); + + habbo.alert(replaceUser(getTextsValue("commands.generic.cmd_summon.been_summoned"), gameClient.getHabbo().getHabboInfo().getUsername())); + return true; } } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/SummonRankCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/SummonRankCommand.java index ace86821..62757e39 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/SummonRankCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/SummonRankCommand.java @@ -22,30 +22,30 @@ public class SummonRankCommand extends Command { try { minRank = Integer.parseInt(params[1]); } catch (Exception e) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.generic.cmd_summonrank.error"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.generic.cmd_summonrank.error"), RoomChatMessageBubbles.ALERT); return true; } - for (Map.Entry<Integer, Habbo> set : Emulator.getGameEnvironment().getHabboManager().getOnlineHabbos().entrySet()) { - if (set.getValue().getHabboInfo().getRank().getId() >= minRank) { - if (set.getValue() == gameClient.getHabbo()) + for (Habbo habbo : Emulator.getGameEnvironment().getHabboManager().getOnlineHabbos().values()) { + if (habbo.getHabboInfo().getRank().getId() >= minRank) { + if (habbo == gameClient.getHabbo()) continue; - if (set.getValue().getHabboInfo().getCurrentRoom() == gameClient.getHabbo().getHabboInfo().getCurrentRoom()) + if (habbo.getHabboInfo().getCurrentRoom() == gameClient.getHabbo().getHabboInfo().getCurrentRoom()) continue; - Room room = set.getValue().getHabboInfo().getCurrentRoom(); + Room room = habbo.getHabboInfo().getCurrentRoom(); if (room != null) { - Emulator.getGameEnvironment().getRoomManager().logExit(set.getValue()); + Emulator.getGameEnvironment().getRoomManager().logExit(habbo); - room.removeHabbo(set.getValue(), true); + room.removeHabbo(habbo, true); - set.getValue().getHabboInfo().setCurrentRoom(null); + habbo.getHabboInfo().setCurrentRoom(null); } - Emulator.getGameEnvironment().getRoomManager().enterRoom(set.getValue(), gameClient.getHabbo().getHabboInfo().getCurrentRoom().getId(), "", true); + Emulator.getGameEnvironment().getRoomManager().enterRoom(habbo, gameClient.getHabbo().getHabboInfo().getCurrentRoom().getId(), "", true); - set.getValue().getClient().sendResponse(new RoomForwardMessageComposer(gameClient.getHabbo().getHabboInfo().getCurrentRoom().getId())); + habbo.getClient().sendResponse(new RoomForwardMessageComposer(gameClient.getHabbo().getHabboInfo().getCurrentRoom().getId())); } } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/SuperPullCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/SuperPullCommand.java index 0ece8ed7..39106cf0 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/SuperPullCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/SuperPullCommand.java @@ -16,30 +16,31 @@ public class SuperPullCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) { - if (params.length == 2) { - Habbo habbo = gameClient.getHabbo().getHabboInfo().getCurrentRoom().getHabbo(params[1]); - - if (habbo == null) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_pull.not_found").replace("%user%", params[1]), RoomChatMessageBubbles.ALERT); - return true; - } else if (habbo == gameClient.getHabbo()) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_pull.pull_self"), RoomChatMessageBubbles.ALERT); - return true; - } else { - RoomTile tile = gameClient.getHabbo().getHabboInfo().getCurrentRoom().getLayout().getTileInFront(gameClient.getHabbo().getRoomUnit().getCurrentLocation(), gameClient.getHabbo().getRoomUnit().getBodyRotation().getValue()); - - if (tile != null && tile.isWalkable()) { - if (tile == gameClient.getHabbo().getHabboInfo().getCurrentRoom().getLayout().getDoorTile()) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_pull.invalid").replace("%username%", params[1]), RoomChatMessageBubbles.ALERT); - return true; - } - habbo.getRoomUnit().setGoalLocation(tile); - gameClient.getHabbo().getHabboInfo().getCurrentRoom().sendComposer(new ChatMessageComposer(new RoomChatMessage(Emulator.getTexts().getValue("commands.succes.cmd_pull.pull").replace("%user%", params[1]).replace("%gender_name%", (gameClient.getHabbo().getHabboInfo().getGender().equals(HabboGender.M) ? Emulator.getTexts().getValue("gender.him") : Emulator.getTexts().getValue("gender.her"))), gameClient.getHabbo(), gameClient.getHabbo(), RoomChatMessageBubbles.NORMAL)).compose()); - } - } + if (params.length != 2) { return true; } + Habbo habbo = gameClient.getHabbo().getHabboInfo().getCurrentRoom().getHabbo(params[1]); + + if (habbo == null) { + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.error.cmd_pull.not_found"), params[1]), RoomChatMessageBubbles.ALERT); + return true; + } else if (habbo == gameClient.getHabbo()) { + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_pull.pull_self"), RoomChatMessageBubbles.ALERT); + return true; + } else { + RoomTile tile = gameClient.getHabbo().getHabboInfo().getCurrentRoom().getLayout().getTileInFront(gameClient.getHabbo().getRoomUnit().getCurrentLocation(), gameClient.getHabbo().getRoomUnit().getBodyRotation().getValue()); + + if (tile != null && tile.isWalkable()) { + if (tile == gameClient.getHabbo().getHabboInfo().getCurrentRoom().getLayout().getDoorTile()) { + gameClient.getHabbo().whisper(replaceUsername(getTextsValue("commands.error.cmd_pull.invalid"), params[1]), RoomChatMessageBubbles.ALERT); + return true; + } + habbo.getRoomUnit().setGoalLocation(tile); + gameClient.getHabbo().getHabboInfo().getCurrentRoom().sendComposer(new ChatMessageComposer(new RoomChatMessage(replaceUser(getTextsValue("commands.succes.cmd_pull.pull"), params[1]).replace("%gender_name%", (gameClient.getHabbo().getHabboInfo().getGender().equals(HabboGender.M) ? getTextsValue("gender.him") : getTextsValue("gender.her"))), gameClient.getHabbo(), gameClient.getHabbo(), RoomChatMessageBubbles.NORMAL)).compose()); + } + } return true; + } } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/TeleportCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/TeleportCommand.java index 994e610a..c6a29ed8 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/TeleportCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/TeleportCommand.java @@ -11,16 +11,18 @@ public class TeleportCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) { - if (gameClient.getHabbo().getHabboInfo().getRiding() == null) //TODO Make this an event plugin which fires that can be cancelled - if (gameClient.getHabbo().getRoomUnit().isCmdTeleport()) { - gameClient.getHabbo().getRoomUnit().setCmdTeleport(false); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_teleport.disabled"), RoomChatMessageBubbles.ALERT); - return true; - } else { - gameClient.getHabbo().getRoomUnit().setCmdTeleport(true); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_teleport.enabled"), RoomChatMessageBubbles.ALERT); - return true; - } - return true; + if (gameClient.getHabbo().getHabboInfo().getRiding() != null){ //TODO Make this an event plugin which fires that can be cancelled + return true; + } + + if (gameClient.getHabbo().getRoomUnit().isCmdTeleport()) { + gameClient.getHabbo().getRoomUnit().setCmdTeleport(false); + gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_teleport.disabled"), RoomChatMessageBubbles.ALERT); + return true; + } else { + gameClient.getHabbo().getRoomUnit().setCmdTeleport(true); + gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_teleport.enabled"), RoomChatMessageBubbles.ALERT); + return true; + } } } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/TransformCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/TransformCommand.java index 606ad427..fe3513e7 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/TransformCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/TransformCommand.java @@ -21,11 +21,11 @@ public class TransformCommand extends Command { public boolean handle(GameClient gameClient, String[] params) { if (params.length == 1) { StringBuilder petNames = new StringBuilder(); - petNames.append(Emulator.getTexts().getValue("commands.generic.cmd_transform.title")); + petNames.append(getTextsValue("commands.generic.cmd_transform.title")); petNames.append("\r------------------------------------------------------------------------------\r"); ArrayList<PetData> petData = new ArrayList<>(Emulator.getGameEnvironment().getPetManager().getPetData()); Collections.sort(petData); - String line = Emulator.getTexts().getValue("commands.generic.cmd_transform.line"); + String line = getTextsValue("commands.generic.cmd_transform.line"); for (PetData p : petData) { petNames.append(line.replace("%id%", p.getType() + "").replace("%name%", p.getName())).append("\r"); } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/UnbanCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/UnbanCommand.java index cdcb6903..c509789e 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/UnbanCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/UnbanCommand.java @@ -12,12 +12,12 @@ public class UnbanCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) { if (params.length == 1) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_unban.not_specified"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_unban.not_specified"), RoomChatMessageBubbles.ALERT); } else { if (Emulator.getGameEnvironment().getModToolManager().unban(params[1])) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_unban.success").replace("%user%", params[1]), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.error.cmd_unban.success"), params[1]), RoomChatMessageBubbles.ALERT); } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_unban.not_found").replace("%user%", params[1]), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.error.cmd_unban.not_found"), params[1]), RoomChatMessageBubbles.ALERT); } } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/UnmuteCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/UnmuteCommand.java index e2cb4703..d54fdf1a 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/UnmuteCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/UnmuteCommand.java @@ -13,30 +13,30 @@ public class UnmuteCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) { if (params.length == 1) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_unmute.not_specified"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_unmute.not_specified"), RoomChatMessageBubbles.ALERT); return true; } Habbo habbo = Emulator.getGameEnvironment().getHabboManager().getHabbo(params[1]); if (habbo == null) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_unmute.not_found").replace("%user%", params[1]), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.error.cmd_unmute.not_found"), params[1]), RoomChatMessageBubbles.ALERT); return true; - } else { - if (!habbo.getHabboStats().allowTalk() || (habbo.getHabboInfo().getCurrentRoom() != null && habbo.getHabboInfo().getCurrentRoom().isMuted(habbo))) { - if (!habbo.getHabboStats().allowTalk()) { - habbo.unMute(); - } + } - if (habbo.getHabboInfo().getCurrentRoom() != null && habbo.getHabboInfo().getCurrentRoom().isMuted(habbo)) { - habbo.getHabboInfo().getCurrentRoom().muteHabbo(habbo, 1); - } - - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_unmute").replace("%user%", params[1]), RoomChatMessageBubbles.ALERT); - } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_unmute.not_muted").replace("%user%", params[1]), RoomChatMessageBubbles.ALERT); - return true; + if (!habbo.getHabboStats().allowTalk() || (habbo.getHabboInfo().getCurrentRoom() != null && habbo.getHabboInfo().getCurrentRoom().isMuted(habbo))) { + if (!habbo.getHabboStats().allowTalk()) { + habbo.unMute(); } + + if (habbo.getHabboInfo().getCurrentRoom() != null && habbo.getHabboInfo().getCurrentRoom().isMuted(habbo)) { + habbo.getHabboInfo().getCurrentRoom().muteHabbo(habbo, 1); + } + + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.succes.cmd_unmute"), params[1]), RoomChatMessageBubbles.ALERT); + } else { + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.error.cmd_unmute.not_muted"), params[1]), RoomChatMessageBubbles.ALERT); + return true; } return true; diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/UpdateAchievements.java b/src/main/java/com/eu/habbo/habbohotel/commands/UpdateAchievements.java index 5631aa7f..88cf2fbf 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/UpdateAchievements.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/UpdateAchievements.java @@ -12,7 +12,7 @@ public class UpdateAchievements extends Command { @Override public boolean handle(GameClient gameClient, String[] params) { Emulator.getGameEnvironment().getAchievementManager().reload(); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_update_achievements.updated"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.succes.cmd_update_achievements.updated"), RoomChatMessageBubbles.ALERT); return true; } } \ No newline at end of file diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/UpdateCalendarCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/UpdateCalendarCommand.java index 777234c2..d7d28215 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/UpdateCalendarCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/UpdateCalendarCommand.java @@ -13,7 +13,7 @@ public class UpdateCalendarCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) { Emulator.getGameEnvironment().getCalendarManager().reload(); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.success.cmd_update_calendar"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.success.cmd_update_calendar"), RoomChatMessageBubbles.ALERT); return true; } } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/UpdateCatalogCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/UpdateCatalogCommand.java index 4088a16e..11ab8c8e 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/UpdateCatalogCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/UpdateCatalogCommand.java @@ -22,7 +22,7 @@ public class UpdateCatalogCommand extends Command { Emulator.getGameServer().getGameClientManager().sendBroadcastResponse(new GiftWrappingConfigurationComposer()); Emulator.getGameServer().getGameClientManager().sendBroadcastResponse(new RecyclerPrizesComposer()); Emulator.getGameEnvironment().getCraftingManager().reload(); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_update_catalog"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.succes.cmd_update_catalog"), RoomChatMessageBubbles.ALERT); return true; } } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/UpdateConfigCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/UpdateConfigCommand.java index c1de3bce..f8502bf9 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/UpdateConfigCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/UpdateConfigCommand.java @@ -13,7 +13,7 @@ public class UpdateConfigCommand extends Command { public boolean handle(GameClient gameClient, String[] params) { Emulator.getConfig().reload(); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_update_config"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.succes.cmd_update_config"), RoomChatMessageBubbles.ALERT); return true; } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/UpdateHotelViewCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/UpdateHotelViewCommand.java index 72eab994..78edfe38 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/UpdateHotelViewCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/UpdateHotelViewCommand.java @@ -13,7 +13,7 @@ public class UpdateHotelViewCommand extends Command { Emulator.getGameEnvironment().getHotelViewManager().getNewsList().reload(); Emulator.getGameEnvironment().getHotelViewManager().getHallOfFame().reload(); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_update_hotel_view")); + gameClient.getHabbo().whisper(getTextsValue("commands.succes.cmd_update_hotel_view")); return true; } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/UpdateItemsCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/UpdateItemsCommand.java index 1e7c6f0c..8eb69620 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/UpdateItemsCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/UpdateItemsCommand.java @@ -18,14 +18,12 @@ public class UpdateItemsCommand extends Command { Emulator.getGameEnvironment().getItemManager().loadSoundTracks(); synchronized (Emulator.getGameEnvironment().getRoomManager().getActiveRooms()) { - for (Room room : Emulator.getGameEnvironment().getRoomManager().getActiveRooms()) { - if (room.isLoaded() && room.getUserCount() > 0 && room.getLayout() != null) { - room.sendComposer(new HeightMapComposer(room).compose()); - } - } + Emulator.getGameEnvironment().getRoomManager().getActiveRooms().stream() + .filter(room -> room.isLoaded() && room.getUserCount() > 0 && room.getLayout() != null) + .forEach(room -> room.sendComposer(new HeightMapComposer(room).compose())); } - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_update_items"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.succes.cmd_update_items"), RoomChatMessageBubbles.ALERT); return true; } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/UpdateNavigatorCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/UpdateNavigatorCommand.java index b6f99dd7..991210e9 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/UpdateNavigatorCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/UpdateNavigatorCommand.java @@ -14,7 +14,7 @@ public class UpdateNavigatorCommand extends Command { Emulator.getGameEnvironment().getNavigatorManager().loadNavigator(); Emulator.getGameEnvironment().getRoomManager().loadRoomModels(); Emulator.getGameEnvironment().getRoomManager().loadPublicRooms(); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_update_navigator"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.succes.cmd_update_navigator"), RoomChatMessageBubbles.ALERT); return true; } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/UpdatePermissionsCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/UpdatePermissionsCommand.java index afc0f02c..5ec84097 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/UpdatePermissionsCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/UpdatePermissionsCommand.java @@ -13,7 +13,7 @@ public class UpdatePermissionsCommand extends Command { public boolean handle(GameClient gameClient, String[] params) { Emulator.getGameEnvironment().getPermissionsManager().reload(); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_update_permissions"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.succes.cmd_update_permissions"), RoomChatMessageBubbles.ALERT); return true; } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/UpdatePetDataCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/UpdatePetDataCommand.java index a972a3f5..7ace3c20 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/UpdatePetDataCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/UpdatePetDataCommand.java @@ -13,7 +13,7 @@ public class UpdatePetDataCommand extends Command { public boolean handle(GameClient gameClient, String[] params) { Emulator.getGameEnvironment().getPetManager().reloadPetData(); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_update_pet_data"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.succes.cmd_update_pet_data"), RoomChatMessageBubbles.ALERT); return true; } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/UpdatePluginsCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/UpdatePluginsCommand.java index 0e893bdb..a5bb09e3 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/UpdatePluginsCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/UpdatePluginsCommand.java @@ -14,7 +14,7 @@ public class UpdatePluginsCommand extends Command { Emulator.getPluginManager().reload(); gameClient.getHabbo().whisper("This is an unsafe command and could possibly lead to memory leaks.\rIt is recommended to restart the emulator in order to reload plugins."); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_update_plugins").replace("%count%", Emulator.getPluginManager().getPlugins().size() + ""), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.succes.cmd_update_plugins").replace("%count%", Emulator.getPluginManager().getPlugins().size() + ""), RoomChatMessageBubbles.ALERT); return true; } } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/UpdatePollsCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/UpdatePollsCommand.java index 4d8dca2e..949d0779 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/UpdatePollsCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/UpdatePollsCommand.java @@ -12,7 +12,7 @@ public class UpdatePollsCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) { Emulator.getGameEnvironment().getPollManager().loadPolls(); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_update_polls"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.succes.cmd_update_polls"), RoomChatMessageBubbles.ALERT); return true; } } \ No newline at end of file diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/UpdateTextsCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/UpdateTextsCommand.java index 98d1eec6..510bca33 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/UpdateTextsCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/UpdateTextsCommand.java @@ -14,9 +14,9 @@ public class UpdateTextsCommand extends Command { try { Emulator.getTexts().reload(); Emulator.getGameEnvironment().getCommandHandler().reloadCommands(); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_update_texts"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.succes.cmd_update_texts"), RoomChatMessageBubbles.ALERT); } catch (Exception e) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_update_texts.failed"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_update_texts.failed"), RoomChatMessageBubbles.ALERT); } return true; diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/UpdateWordFilterCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/UpdateWordFilterCommand.java index 6e21abef..9cd66cd7 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/UpdateWordFilterCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/UpdateWordFilterCommand.java @@ -13,7 +13,7 @@ public class UpdateWordFilterCommand extends Command { public boolean handle(GameClient gameClient, String[] params) { Emulator.getGameEnvironment().getWordFilter().reload(); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_update_wordfilter"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.succes.cmd_update_wordfilter"), RoomChatMessageBubbles.ALERT); return true; } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/UpdateYoutubePlaylistsCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/UpdateYoutubePlaylistsCommand.java index 9a48570a..aae0d920 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/UpdateYoutubePlaylistsCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/UpdateYoutubePlaylistsCommand.java @@ -13,7 +13,7 @@ public class UpdateYoutubePlaylistsCommand extends Command { public boolean handle(GameClient gameClient, String[] params) { Emulator.getGameEnvironment().getItemManager().getYoutubeManager().load(); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_update_youtube_playlists"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.succes.cmd_update_youtube_playlists"), RoomChatMessageBubbles.ALERT); return true; } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/UserInfoCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/UserInfoCommand.java index 92f14e57..643361ba 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/UserInfoCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/UserInfoCommand.java @@ -21,7 +21,7 @@ public class UserInfoCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) { if (params.length < 2) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_userinfo.forgot_username"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_userinfo.forgot_username"), RoomChatMessageBubbles.ALERT); return true; } @@ -33,32 +33,32 @@ public class UserInfoCommand extends Command { } if (habbo == null) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_userinfo.not_found").replace("%user%", params[1]), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.error.cmd_userinfo.not_found"), params[1]), RoomChatMessageBubbles.ALERT); return true; } - StringBuilder message = new StringBuilder(Emulator.getTexts().getValue("command.cmd_userinfo.userinfo") + ": " + " <b>" + habbo.getUsername() + "</b> (<b>" + habbo.getId() + "</b>)\r" + - Emulator.getTexts().getValue("command.cmd_userinfo.user_id") + ": " + habbo.getId() + "\r" + - Emulator.getTexts().getValue("command.cmd_userinfo.user_name") + ": " + habbo.getUsername() + "\r" + - Emulator.getTexts().getValue("command.cmd_userinfo.motto") + ": " + habbo.getMotto().replace("<", "[").replace(">", "]") + "\r" + - Emulator.getTexts().getValue("command.cmd_userinfo.rank") + ": " + habbo.getRank().getName() + " (" + habbo.getRank().getId() + ") \r" + - Emulator.getTexts().getValue("command.cmd_userinfo.online") + ": " + (onlineHabbo == null ? Emulator.getTexts().getValue("generic.no") : Emulator.getTexts().getValue("generic.yes")) + "\r" + - ((habbo.getRank().hasPermission(Permission.ACC_HIDE_MAIL, true)) ? "" : Emulator.getTexts().getValue("command.cmd_userinfo.email") + ": " + habbo.getMail() + "\r") + - ((habbo.getRank().hasPermission(Permission.ACC_HIDE_IP, true)) ? "" : Emulator.getTexts().getValue("command.cmd_userinfo.ip_register") + ": " + habbo.getIpRegister() + "\r") + - ((habbo.getRank().hasPermission(Permission.ACC_HIDE_IP, true)) || onlineHabbo == null ? "" : Emulator.getTexts().getValue("command.cmd_userinfo.ip_current") + ": " + onlineHabbo.getHabboInfo().getIpLogin() + "\r") + - (onlineHabbo != null ? Emulator.getTexts().getValue("command.cmd_userinfo.achievement_score") + ": " + onlineHabbo.getHabboStats().getAchievementScore() + "\r" : "")); + StringBuilder message = new StringBuilder(getTextsValue("command.cmd_userinfo.userinfo") + ": " + " <b>" + habbo.getUsername() + "</b> (<b>" + habbo.getId() + "</b>)\r" + + getTextsValue("command.cmd_userinfo.user_id") + ": " + habbo.getId() + "\r" + + getTextsValue("command.cmd_userinfo.user_name") + ": " + habbo.getUsername() + "\r" + + getTextsValue("command.cmd_userinfo.motto") + ": " + habbo.getMotto().replace("<", "[").replace(">", "]") + "\r" + + getTextsValue("command.cmd_userinfo.rank") + ": " + habbo.getRank().getName() + " (" + habbo.getRank().getId() + ") \r" + + getTextsValue("command.cmd_userinfo.online") + ": " + (onlineHabbo == null ? getTextsValue("generic.no") : getTextsValue("generic.yes")) + "\r" + + ((habbo.getRank().hasPermission(Permission.ACC_HIDE_MAIL, true)) ? "" : getTextsValue("command.cmd_userinfo.email") + ": " + habbo.getMail() + "\r") + + ((habbo.getRank().hasPermission(Permission.ACC_HIDE_IP, true)) ? "" : getTextsValue("command.cmd_userinfo.ip_register") + ": " + habbo.getIpRegister() + "\r") + + ((habbo.getRank().hasPermission(Permission.ACC_HIDE_IP, true)) || onlineHabbo == null ? "" : getTextsValue("command.cmd_userinfo.ip_current") + ": " + onlineHabbo.getHabboInfo().getIpLogin() + "\r") + + (onlineHabbo != null ? getTextsValue("command.cmd_userinfo.achievement_score") + ": " + onlineHabbo.getHabboStats().getAchievementScore() + "\r" : "")); ModToolBan ban = Emulator.getGameEnvironment().getModToolManager().checkForBan(habbo.getId()); - message.append(Emulator.getTexts().getValue("command.cmd_userinfo.total_bans")).append(": ").append(Emulator.getGameEnvironment().getModToolManager().totalBans(habbo.getId())).append("\r"); - message.append(Emulator.getTexts().getValue("command.cmd_userinfo.banned")).append(": ").append(Emulator.getTexts().getValue(ban != null ? "generic.yes" : "generic.no")).append("\r\r"); + message.append(getTextsValue("command.cmd_userinfo.total_bans")).append(": ").append(Emulator.getGameEnvironment().getModToolManager().totalBans(habbo.getId())).append("\r"); + message.append(getTextsValue("command.cmd_userinfo.banned")).append(": ").append(getTextsValue(ban != null ? "generic.yes" : "generic.no")).append("\r\r"); if (ban != null) { - message.append("<b>").append(Emulator.getTexts().getValue("command.cmd_userinfo.ban_info")).append("</b>\r"); + message.append("<b>").append(getTextsValue("command.cmd_userinfo.ban_info")).append("</b>\r"); message.append(ban.listInfo()).append("\r"); } - message.append("<b>").append(Emulator.getTexts().getValue("command.cmd_userinfo.currencies")).append("</b>\r"); - message.append(Emulator.getTexts().getValue("command.cmd_userinfo.credits")).append(": ").append(habbo.getCredits()).append("\r"); + message.append("<b>").append(getTextsValue("command.cmd_userinfo.currencies")).append("</b>\r"); + message.append(getTextsValue("command.cmd_userinfo.credits")).append(": ").append(habbo.getCredits()).append("\r"); TIntIntIterator iterator = habbo.getCurrencies().iterator(); for (int i = habbo.getCurrencies().size(); i-- > 0; ) { @@ -68,9 +68,9 @@ public class UserInfoCommand extends Command { break; } - message.append(Emulator.getTexts().getValue("seasonal.name." + iterator.key())).append(": ").append(iterator.value()).append("\r"); + message.append(getTextsValue("seasonal.name." + iterator.key())).append(": ").append(iterator.value()).append("\r"); } - message.append("\r").append(onlineHabbo != null ? "<b>" + Emulator.getTexts().getValue("command.cmd_userinfo.current_activity") + "</b>\r" : "").append(onlineHabbo != null ? Emulator.getTexts().getValue("command.cmd_userinfo.room") + ": " + (onlineHabbo.getHabboInfo().getCurrentRoom() != null ? onlineHabbo.getHabboInfo().getCurrentRoom().getName() + "(" + onlineHabbo.getHabboInfo().getCurrentRoom().getId() + ")\r" : "-") : "").append(onlineHabbo != null ? Emulator.getTexts().getValue("command.cmd_userinfo.respect_left") + ": " + onlineHabbo.getHabboStats().getRespectPointsToGive() + "\r" : "").append(onlineHabbo != null ? Emulator.getTexts().getValue("command.cmd_userinfo.pet_respect_left") + ": " + onlineHabbo.getHabboStats().getPetRespectPointsToGive() + "\r" : "").append(onlineHabbo != null ? Emulator.getTexts().getValue("command.cmd_userinfo.allow_trade") + ": " + ((onlineHabbo.getHabboStats().allowTrade()) ? Emulator.getTexts().getValue("generic.yes") : Emulator.getTexts().getValue("generic.no")) + "\r" : "").append(onlineHabbo != null ? Emulator.getTexts().getValue("command.cmd_userinfo.allow_follow") + ": " + ((onlineHabbo.getHabboStats().isBlockFollowing()) ? Emulator.getTexts().getValue("generic.no") : Emulator.getTexts().getValue("generic.yes")) + "\r" : "").append(onlineHabbo != null ? Emulator.getTexts().getValue("command.cmd_userinfo.allow_friend_request") + ": " + ((onlineHabbo.getHabboStats().isBlockFriendRequests()) ? Emulator.getTexts().getValue("generic.no") : Emulator.getTexts().getValue("generic.yes")) + "\r" : ""); + message.append("\r").append(onlineHabbo != null ? "<b>" + getTextsValue("command.cmd_userinfo.current_activity") + "</b>\r" : "").append(onlineHabbo != null ? getTextsValue("command.cmd_userinfo.room") + ": " + (onlineHabbo.getHabboInfo().getCurrentRoom() != null ? onlineHabbo.getHabboInfo().getCurrentRoom().getName() + "(" + onlineHabbo.getHabboInfo().getCurrentRoom().getId() + ")\r" : "-") : "").append(onlineHabbo != null ? getTextsValue("command.cmd_userinfo.respect_left") + ": " + onlineHabbo.getHabboStats().getRespectPointsToGive() + "\r" : "").append(onlineHabbo != null ? getTextsValue("command.cmd_userinfo.pet_respect_left") + ": " + onlineHabbo.getHabboStats().getPetRespectPointsToGive() + "\r" : "").append(onlineHabbo != null ? getTextsValue("command.cmd_userinfo.allow_trade") + ": " + ((onlineHabbo.getHabboStats().allowTrade()) ? getTextsValue("generic.yes") : getTextsValue("generic.no")) + "\r" : "").append(onlineHabbo != null ? getTextsValue("command.cmd_userinfo.allow_follow") + ": " + ((onlineHabbo.getHabboStats().isBlockFollowing()) ? getTextsValue("generic.no") : getTextsValue("generic.yes")) + "\r" : "").append(onlineHabbo != null ? getTextsValue("command.cmd_userinfo.allow_friend_request") + ": " + ((onlineHabbo.getHabboStats().isBlockFriendRequests()) ? getTextsValue("generic.no") : getTextsValue("generic.yes")) + "\r" : ""); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); List<Map.Entry<Integer, String>> nameChanges = Emulator.getGameEnvironment().getHabboManager().getNameChanges(habbo.getId(), 3); @@ -93,7 +93,7 @@ public class UserInfoCommand extends Command { message.append("<b>Username,\tID,\tDate register,\tDate last online</b>\r"); for (HabboInfo info : users) { - message.append(info.getUsername()).append(",\t").append(info.getId()).append(",\t").append(format.format(new Date((long) info.getAccountCreated() * 1000L))).append(",\t").append(format.format(new Date((long) info.getLastOnline() * 1000L))).append("\r"); + message.append(info.getUsername()).append(",\t").append(info.getId()).append(",\t").append(format.format(new Date(info.getAccountCreated() * 1000L))).append(",\t").append(format.format(new Date((long) info.getLastOnline() * 1000L))).append("\r"); } } gameClient.getHabbo().alert(message.toString()); diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/WordQuizCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/WordQuizCommand.java index b116a49f..87afee6c 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/WordQuizCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/WordQuizCommand.java @@ -15,7 +15,7 @@ public class WordQuizCommand extends Command { public boolean handle(GameClient gameClient, String[] params) { if (!gameClient.getHabbo().getHabboInfo().getCurrentRoom().hasActiveWordQuiz()) { if(params.length == 1) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.description.cmd_word_quiz"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.description.cmd_word_quiz"), RoomChatMessageBubbles.ALERT); return true; } StringBuilder question = new StringBuilder(); diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/badge/BadgeCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/badge/BadgeCommand.java index ea1bfdec..82325e6f 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/badge/BadgeCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/badge/BadgeCommand.java @@ -24,22 +24,22 @@ public class BadgeCommand extends BaseBadgeCommand { @Override public boolean handle(GameClient gameClient, String[] params) { if (params.length == 1) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_badge.forgot_username"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_badge.forgot_username"), RoomChatMessageBubbles.ALERT); return true; } if (params.length == 2) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_badge.forgot_badge").replace("%user%", params[1]), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(replaceUserAndBadge(getTextsValue("commands.error.cmd_badge.forgot_badge"), params[1], ""), RoomChatMessageBubbles.ALERT); return true; } if (params.length == 3) { - Habbo habbo = Emulator.getGameEnvironment().getHabboManager().getHabbo(params[1]); + Habbo habbo = getHabbo(params[1]); if (habbo != null) { if (habbo.addBadge(params[2])) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_badge.given").replace("%user%", params[1]).replace("%badge%", params[2]), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(replaceUserAndBadge(getTextsValue("commands.succes.cmd_badge.given"), params[1], params[2]), RoomChatMessageBubbles.ALERT); } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_badge.already_owned").replace("%user%", params[1]).replace("%badge%", params[2]), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(replaceUserAndBadge(getTextsValue("commands.error.cmd_badge.already_owned"), params[1], params[2]), RoomChatMessageBubbles.ALERT); } return true; @@ -47,7 +47,7 @@ public class BadgeCommand extends BaseBadgeCommand { HabboInfo habboInfo = HabboManager.getOfflineHabboInfo(params[1]); if (habboInfo == null) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_badge.unknown_user"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_badge.unknown_user"), RoomChatMessageBubbles.ALERT); return true; } @@ -63,7 +63,7 @@ public class BadgeCommand extends BaseBadgeCommand { } if (found) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_badge.already_owns").replace("%user%", params[1]).replace("%badge%", params[2]), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(replaceUserAndBadge(getTextsValue("commands.error.cmd_badge.already_owns"), params[1], params[2]), RoomChatMessageBubbles.ALERT); } else { try (PreparedStatement statement = connection.prepareStatement("INSERT INTO users_badges (`id`, `user_id`, `slot_id`, `badge_code`) VALUES (null, ?, 0, ?)")) { statement.setInt(1, habboInfo.getId()); @@ -71,7 +71,7 @@ public class BadgeCommand extends BaseBadgeCommand { statement.execute(); } - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_badge.given").replace("%user%", params[1]).replace("%badge%", params[2]), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(replaceUserAndBadge(getTextsValue("commands.succes.cmd_badge.given"), params[1], params[2]), RoomChatMessageBubbles.ALERT); } return true; } catch (SQLException e) { diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/badge/BaseBadgeCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/badge/BaseBadgeCommand.java index d1269729..e930ff4a 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/badge/BaseBadgeCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/badge/BaseBadgeCommand.java @@ -20,18 +20,20 @@ public abstract class BaseBadgeCommand extends Command { THashMap<String, String> keys = new THashMap<>(); keys.put("display", "BUBBLE"); keys.put("image", "${image.library.url}album1584/" + badge + ".gif"); - keys.put("message", Emulator.getTexts().getValue("commands.generic.cmd_badge.received")); + keys.put("message", getTextsValue("commands.generic.cmd_badge.received")); return new NotificationDialogMessageComposer(BubbleAlertKeys.RECEIVED_BADGE.getKey(), keys).compose(); } protected void sendBadgeToClient(String badge, ServerMessage message, Habbo habbo) { - if (habbo.isOnline()) { - if (habbo.getInventory() != null && habbo.getInventory().getBadgesComponent() != null && !habbo.getInventory().getBadgesComponent().hasBadge(badge)) { - HabboBadge b = BadgesComponent.createBadge(badge, habbo); + if (habbo.isOnline() && habbo.getInventory() != null && habbo.getInventory().getBadgesComponent() != null && !habbo.getInventory().getBadgesComponent().hasBadge(badge)) { + HabboBadge b = BadgesComponent.createBadge(badge, habbo); - habbo.getClient().sendResponse(new BadgeReceivedComposer(b)); - habbo.getClient().sendResponse(message); - } + habbo.getClient().sendResponse(new BadgeReceivedComposer(b)); + habbo.getClient().sendResponse(message); } } + + protected String replaceUserAndBadge(String input, String name, String badge) { + return replaceUser(input, name).replace("%badge%", badge); + } } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/badge/MassBadgeCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/badge/MassBadgeCommand.java index ff93d9d8..05ae78ba 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/badge/MassBadgeCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/badge/MassBadgeCommand.java @@ -38,7 +38,7 @@ public class MassBadgeCommand extends BaseBadgeCommand { return true; } } - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_massbadge.no_badge"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_massbadge.no_badge"), RoomChatMessageBubbles.ALERT); return true; diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/badge/RoomBadgeCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/badge/RoomBadgeCommand.java index d5b8e3c1..8156ca72 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/badge/RoomBadgeCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/badge/RoomBadgeCommand.java @@ -1,17 +1,9 @@ package com.eu.habbo.habbohotel.commands.badge; import com.eu.habbo.Emulator; -import com.eu.habbo.habbohotel.commands.Command; import com.eu.habbo.habbohotel.gameclients.GameClient; import com.eu.habbo.habbohotel.rooms.RoomChatMessageBubbles; -import com.eu.habbo.habbohotel.users.Habbo; -import com.eu.habbo.habbohotel.users.HabboBadge; -import com.eu.habbo.habbohotel.users.inventory.BadgesComponent; import com.eu.habbo.messages.ServerMessage; -import com.eu.habbo.messages.outgoing.generic.alerts.BubbleAlertKeys; -import com.eu.habbo.messages.outgoing.generic.alerts.NotificationDialogMessageComposer; -import com.eu.habbo.messages.outgoing.users.BadgeReceivedComposer; -import gnu.trove.map.hash.THashMap; public class RoomBadgeCommand extends BaseBadgeCommand { public RoomBadgeCommand() { @@ -24,21 +16,18 @@ public class RoomBadgeCommand extends BaseBadgeCommand { return true; if (params.length == 2) { - String badge; - - badge = params[1]; + String badge = params[1]; if (!badge.isEmpty()) { ServerMessage message = createServerMessage(badge); - for (Habbo habbo : gameClient.getHabbo().getRoomUnit().getRoom().getHabbos()) { - sendBadgeToClient(badge, message, habbo); - } + gameClient.getHabbo().getRoomUnit().getRoom().getHabbos() + .forEach(habbo -> sendBadgeToClient(badge, message, habbo)); } return true; } - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_roombadge.no_badge"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_roombadge.no_badge"), RoomChatMessageBubbles.ALERT); return true; } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/TakeBadgeCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/badge/TakeBadgeCommand.java similarity index 74% rename from src/main/java/com/eu/habbo/habbohotel/commands/TakeBadgeCommand.java rename to src/main/java/com/eu/habbo/habbohotel/commands/badge/TakeBadgeCommand.java index 9a0a1845..a31802d8 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/TakeBadgeCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/badge/TakeBadgeCommand.java @@ -1,6 +1,7 @@ -package com.eu.habbo.habbohotel.commands; +package com.eu.habbo.habbohotel.commands.badge; import com.eu.habbo.Emulator; +import com.eu.habbo.habbohotel.commands.Command; import com.eu.habbo.habbohotel.gameclients.GameClient; import com.eu.habbo.habbohotel.rooms.RoomChatMessageBubbles; import com.eu.habbo.habbohotel.users.Habbo; @@ -11,7 +12,7 @@ import com.eu.habbo.habbohotel.users.inventory.BadgesComponent; import com.eu.habbo.messages.outgoing.inventory.BadgesComposer; import com.eu.habbo.messages.outgoing.users.UserBadgesComposer; -public class TakeBadgeCommand extends Command { +public class TakeBadgeCommand extends BaseBadgeCommand { public TakeBadgeCommand() { super("cmd_take_badge", Emulator.getTexts().getValue("commands.keys.cmd_take_badge").split(";")); } @@ -19,10 +20,10 @@ public class TakeBadgeCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) { if (params.length == 2) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_take_badge.forgot_badge"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_take_badge.forgot_badge"), RoomChatMessageBubbles.ALERT); return true; } else if (params.length == 1) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_take_badge.forgot_username"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_take_badge.forgot_username"), RoomChatMessageBubbles.ALERT); return true; } @@ -36,7 +37,7 @@ public class TakeBadgeCommand extends Command { HabboBadge b = habbo.getInventory().getBadgesComponent().removeBadge(badge); if (b == null) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_take_badge.no_badge").replace("%username%", username).replace("%badge%", badge), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(replaceUsername(getTextsValue("commands.error.cmd_take_badge.no_badge"), username).replace("%badge%", badge), RoomChatMessageBubbles.ALERT); return true; } @@ -57,7 +58,7 @@ public class TakeBadgeCommand extends Command { } if (userId > 0) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_take_badge"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.succes.cmd_take_badge"), RoomChatMessageBubbles.ALERT); BadgesComponent.deleteBadge(userId, badge); } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/bans/BanCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/bans/BanCommand.java index 97570ce1..c24ed0f0 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/bans/BanCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/bans/BanCommand.java @@ -10,6 +10,9 @@ import com.eu.habbo.habbohotel.users.Habbo; import com.eu.habbo.habbohotel.users.HabboInfo; import com.eu.habbo.habbohotel.users.HabboManager; +import java.util.stream.Collectors; +import java.util.stream.IntStream; + public class BanCommand extends Command { public BanCommand() { super("cmd_ban", Emulator.getTexts().getValue("commands.keys.cmd_ban").split(";")); @@ -18,12 +21,12 @@ public class BanCommand extends Command { @Override public boolean handle(GameClient gameClient, String[] params) { if (params.length < 2) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_ban.forgot_user"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_ban.forgot_user"), RoomChatMessageBubbles.ALERT); return true; } if (params.length < 3) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_ban.forgot_time"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_ban.forgot_time"), RoomChatMessageBubbles.ALERT); return true; } @@ -31,21 +34,21 @@ public class BanCommand extends Command { try { banTime = Integer.parseInt(params[2]); } catch (Exception e) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_ban.invalid_time"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_ban.invalid_time"), RoomChatMessageBubbles.ALERT); return true; } if (banTime < 600) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_ban.time_to_short"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_ban.time_to_short"), RoomChatMessageBubbles.ALERT); return true; } if (params[1].equalsIgnoreCase(gameClient.getHabbo().getHabboInfo().getUsername())) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_ban.ban_self"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_ban.ban_self"), RoomChatMessageBubbles.ALERT); return true; } - Habbo t = Emulator.getGameEnvironment().getHabboManager().getHabbo(params[1]); + Habbo t = getHabbo(params[1]); HabboInfo target; if (t != null) { @@ -55,26 +58,24 @@ public class BanCommand extends Command { } if (target == null) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_ban.user_offline"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_ban.user_offline"), RoomChatMessageBubbles.ALERT); return true; } if (target.getRank().getId() >= gameClient.getHabbo().getHabboInfo().getRank().getId()) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_ban.target_rank_higher"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_ban.target_rank_higher"), RoomChatMessageBubbles.ALERT); return true; } - StringBuilder reason = new StringBuilder(); + String reason = ""; if (params.length > 3) { - for (int i = 3; i < params.length; i++) { - reason.append(params[i]).append(" "); - } + reason = IntStream.range(3, params.length).mapToObj(i -> params[i] + " ").collect(Collectors.joining()); } - ModToolBan ban = Emulator.getGameEnvironment().getModToolManager().ban(target.getId(), gameClient.getHabbo(), reason.toString(), banTime, ModToolBanType.ACCOUNT, -1).get(0); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_ban.ban_issued").replace("%user%", target.getUsername()).replace("%time%", ban.getExpireDate() - Emulator.getIntUnixTimestamp() + "").replace("%reason%", ban.getReason()), RoomChatMessageBubbles.ALERT); + ModToolBan ban = Emulator.getGameEnvironment().getModToolManager().ban(target.getId(), gameClient.getHabbo(), reason, banTime, ModToolBanType.ACCOUNT, -1).get(0); + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.succes.cmd_ban.ban_issued"), target.getUsername()).replace("%time%", ban.getExpireDate() - Emulator.getIntUnixTimestamp() + "").replace("%reason%", ban.getReason()), RoomChatMessageBubbles.ALERT); return true; } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/bans/BaseBanCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/bans/BaseBanCommand.java index 710f3650..749a8430 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/bans/BaseBanCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/bans/BaseBanCommand.java @@ -7,8 +7,12 @@ import com.eu.habbo.habbohotel.users.Habbo; import com.eu.habbo.habbohotel.users.HabboInfo; import com.eu.habbo.habbohotel.users.HabboManager; +import java.util.stream.Collectors; +import java.util.stream.IntStream; + public abstract class BaseBanCommand extends Command { + protected static final int TEN_YEARS = 315569260; protected HabboInfo habboInfo; protected String reason; protected int count; @@ -25,22 +29,17 @@ public abstract class BaseBanCommand extends Command { return false; } - private String getReason(String[] params) { - StringBuilder reason = new StringBuilder(); - + protected String getReason(String[] params) { if (params.length > 2) { - for (int i = 2; i < params.length; i++) { - reason.append(params[i]); - reason.append(" "); - } + return IntStream.range(2, params.length).mapToObj(i -> params[i] + " ").collect(Collectors.joining()); } - return reason.toString(); + return ""; } protected HabboInfo getHabboInfo(String[] params) { if (params.length >= 2) { - Habbo h = Emulator.getGameEnvironment().getHabboManager().getHabbo(params[1]); + Habbo h = getHabbo(params[1]); if (h != null) { return h.getHabboInfo(); diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/bans/IPBanCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/bans/IPBanCommand.java new file mode 100644 index 00000000..c0e212f2 --- /dev/null +++ b/src/main/java/com/eu/habbo/habbohotel/commands/bans/IPBanCommand.java @@ -0,0 +1,53 @@ +package com.eu.habbo.habbohotel.commands.bans; + +import com.eu.habbo.Emulator; +import com.eu.habbo.habbohotel.commands.Command; +import com.eu.habbo.habbohotel.gameclients.GameClient; +import com.eu.habbo.habbohotel.modtool.ModToolBanType; +import com.eu.habbo.habbohotel.rooms.RoomChatMessageBubbles; +import com.eu.habbo.habbohotel.users.Habbo; +import com.eu.habbo.habbohotel.users.HabboInfo; +import com.eu.habbo.habbohotel.users.HabboManager; + +import java.util.stream.Collectors; +import java.util.stream.IntStream; + +public class IPBanCommand extends BaseBanCommand { + + + public IPBanCommand() { + super("cmd_ip_ban", Emulator.getTexts().getValue("commands.keys.cmd_ip_ban").split(";")); + } + + @Override + public boolean handle(GameClient gameClient, String[] params) { + int count = 0; + if (habboInfo != null) { + if (habboInfo == gameClient.getHabbo().getHabboInfo()) { + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_ip_ban.ban_self"), RoomChatMessageBubbles.ALERT); + return true; + } + + if (habboInfo.getRank().getId() >= gameClient.getHabbo().getHabboInfo().getRank().getId()) { + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_ban.target_rank_higher"), RoomChatMessageBubbles.ALERT); + return true; + } + + Emulator.getGameEnvironment().getModToolManager().ban(habboInfo.getId(), gameClient.getHabbo(), reason, TEN_YEARS, ModToolBanType.IP, -1); + count++; + for (Habbo h : Emulator.getGameServer().getGameClientManager().getHabbosWithIP(habboInfo.getIpLogin())) { + if (h != null) { + count++; + Emulator.getGameEnvironment().getModToolManager().ban(h.getHabboInfo().getId(), gameClient.getHabbo(), reason, TEN_YEARS, ModToolBanType.IP, -1); + } + } + } else { + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_ban.user_offline"), RoomChatMessageBubbles.ALERT); + return true; + } + + gameClient.getHabbo().whisper(getTextsValue("commands.succes.cmd_ip_ban").replace("%count%", count + ""), RoomChatMessageBubbles.ALERT); + + return true; + } +} diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/bans/MachineBanCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/bans/MachineBanCommand.java index c67d5a59..a99ea7d7 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/bans/MachineBanCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/bans/MachineBanCommand.java @@ -1,7 +1,6 @@ package com.eu.habbo.habbohotel.commands.bans; import com.eu.habbo.Emulator; -import com.eu.habbo.habbohotel.commands.IPBanCommand; import com.eu.habbo.habbohotel.gameclients.GameClient; import com.eu.habbo.habbohotel.modtool.ModToolBanType; import com.eu.habbo.habbohotel.rooms.RoomChatMessageBubbles; @@ -17,22 +16,22 @@ public class MachineBanCommand extends BaseBanCommand { if (habboInfo != null) { if (habboInfo == gameClient.getHabbo().getHabboInfo()) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_machine_ban.ban_self"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_machine_ban.ban_self"), RoomChatMessageBubbles.ALERT); return true; } if (habboInfo.getRank().getId() >= gameClient.getHabbo().getHabboInfo().getRank().getId()) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_ban.target_rank_higher"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_ban.target_rank_higher"), RoomChatMessageBubbles.ALERT); return true; } - count = Emulator.getGameEnvironment().getModToolManager().ban(habboInfo.getId(), gameClient.getHabbo(), reason, IPBanCommand.TEN_YEARS, ModToolBanType.MACHINE, -1).size(); + count = Emulator.getGameEnvironment().getModToolManager().ban(habboInfo.getId(), gameClient.getHabbo(), reason, TEN_YEARS, ModToolBanType.MACHINE, -1).size(); } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_ban.user_offline"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_ban.user_offline"), RoomChatMessageBubbles.ALERT); return true; } - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_machine_ban").replace("%count%", count + ""), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.succes.cmd_machine_ban").replace("%count%", count + ""), RoomChatMessageBubbles.ALERT); return true; } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/bans/SuperbanCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/bans/SuperbanCommand.java index b75f363c..1497d42a 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/bans/SuperbanCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/bans/SuperbanCommand.java @@ -1,7 +1,6 @@ package com.eu.habbo.habbohotel.commands.bans; import com.eu.habbo.Emulator; -import com.eu.habbo.habbohotel.commands.IPBanCommand; import com.eu.habbo.habbohotel.gameclients.GameClient; import com.eu.habbo.habbohotel.modtool.ModToolBanType; import com.eu.habbo.habbohotel.rooms.RoomChatMessageBubbles; @@ -17,22 +16,22 @@ public class SuperbanCommand extends BaseBanCommand { if (habboInfo != null) { if (habboInfo == gameClient.getHabbo().getHabboInfo()) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_super_ban.ban_self"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_super_ban.ban_self"), RoomChatMessageBubbles.ALERT); return true; } if (habboInfo.getRank().getId() >= gameClient.getHabbo().getHabboInfo().getRank().getId()) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_ban.target_rank_higher"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_ban.target_rank_higher"), RoomChatMessageBubbles.ALERT); return true; } - count = Emulator.getGameEnvironment().getModToolManager().ban(habboInfo.getId(), gameClient.getHabbo(), reason, IPBanCommand.TEN_YEARS, ModToolBanType.SUPER, -1).size(); + count = Emulator.getGameEnvironment().getModToolManager().ban(habboInfo.getId(), gameClient.getHabbo(), reason, TEN_YEARS, ModToolBanType.SUPER, -1).size(); } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_ban.user_offline"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_ban.user_offline"), RoomChatMessageBubbles.ALERT); return true; } - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_super_ban").replace("%count%", count + ""), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.succes.cmd_super_ban").replace("%count%", count + ""), RoomChatMessageBubbles.ALERT); return true; } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/credits/CreditsCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/credits/CreditsCommand.java new file mode 100644 index 00000000..7da60d12 --- /dev/null +++ b/src/main/java/com/eu/habbo/habbohotel/commands/credits/CreditsCommand.java @@ -0,0 +1,59 @@ +package com.eu.habbo.habbohotel.commands.credits; + +import com.eu.habbo.Emulator; +import com.eu.habbo.habbohotel.gameclients.GameClient; +import com.eu.habbo.habbohotel.rooms.RoomChatMessageBubbles; +import com.eu.habbo.habbohotel.users.Habbo; +import com.eu.habbo.habbohotel.users.HabboInfo; +import com.eu.habbo.habbohotel.users.HabboManager; + +public class CreditsCommand extends BaseCreditsCommand { + + private static final String INVALID_AMOUNT = "commands.error.cmd_credits.invalid_amount"; + + public CreditsCommand() { + super("cmd_credits", Emulator.getTexts().getValue("commands.keys.cmd_credits").split(";")); + } + + @Override + public boolean handle(GameClient gameClient, String[] params) { + if (params.length == 3) { + HabboInfo info = HabboManager.getOfflineHabboInfo(params[1]); + + if (info != null) { + Habbo habbo = getHabbo(params[1]); + + int credits; + try { + credits = Integer.parseInt(params[2]); + } catch (NumberFormatException e) { + gameClient.getHabbo().whisper(getTextsValue(INVALID_AMOUNT), RoomChatMessageBubbles.ALERT); + return true; + } + if (habbo != null) { + if (credits != 0) { + habbo.giveCredits(credits); + if (habbo.getHabboInfo().getCurrentRoom() != null) + habbo.whisper(replaceAmount(getTextsValue("commands.generic.cmd_credits.received"), params[2]), RoomChatMessageBubbles.ALERT); + else + habbo.alert(replaceAmount(getTextsValue("commands.generic.cmd_credits.received"), params[2])); + + gameClient.getHabbo().whisper(replaceUserAndAmount(getTextsValue("commands.succes.cmd_credits.send"), params[1], params[2]), RoomChatMessageBubbles.ALERT); + + } else { + gameClient.getHabbo().whisper(getTextsValue(INVALID_AMOUNT), RoomChatMessageBubbles.ALERT); + } + } else { + Emulator.getGameEnvironment().getHabboManager().giveCredits(info.getId(), credits); + gameClient.getHabbo().whisper(replaceUserAndAmount(getTextsValue("commands.succes.cmd_credits.send"), params[1], params[2]), RoomChatMessageBubbles.ALERT); + + } + } else { + gameClient.getHabbo().whisper(replaceUserAndAmount(getTextsValue("commands.error.cmd_credits.user_not_found"), params[1], params[2]), RoomChatMessageBubbles.ALERT); + } + } else { + gameClient.getHabbo().whisper(getTextsValue(INVALID_AMOUNT), RoomChatMessageBubbles.ALERT); + } + return true; + } +} diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/MassCreditsCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/credits/MassCreditsCommand.java similarity index 67% rename from src/main/java/com/eu/habbo/habbohotel/commands/MassCreditsCommand.java rename to src/main/java/com/eu/habbo/habbohotel/commands/credits/MassCreditsCommand.java index 5cb7f887..330952a9 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/MassCreditsCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/credits/MassCreditsCommand.java @@ -1,6 +1,7 @@ -package com.eu.habbo.habbohotel.commands; +package com.eu.habbo.habbohotel.commands.credits; import com.eu.habbo.Emulator; +import com.eu.habbo.habbohotel.commands.Command; import com.eu.habbo.habbohotel.gameclients.GameClient; import com.eu.habbo.habbohotel.rooms.RoomChatMessageBubbles; import com.eu.habbo.habbohotel.users.Habbo; @@ -8,7 +9,7 @@ import com.eu.habbo.messages.outgoing.users.CreditBalanceComposer; import java.util.Map; -public class MassCreditsCommand extends Command { +public class MassCreditsCommand extends BaseCreditsCommand { public MassCreditsCommand() { super("cmd_masscredits", Emulator.getTexts().getValue("commands.keys.cmd_masscredits").split(";")); } @@ -21,7 +22,7 @@ public class MassCreditsCommand extends Command { try { amount = Integer.parseInt(params[1]); } catch (Exception e) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_masscredits.invalid_amount"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_masscredits.invalid_amount"), RoomChatMessageBubbles.ALERT); return true; } @@ -33,12 +34,12 @@ public class MassCreditsCommand extends Command { habbo.getClient().sendResponse(new CreditBalanceComposer(habbo)); if (habbo.getHabboInfo().getCurrentRoom() != null) - habbo.whisper(Emulator.getTexts().getValue("commands.generic.cmd_credits.received").replace("%amount%", amount + ""), RoomChatMessageBubbles.ALERT); + habbo.whisper(replaceAmount(getTextsValue("commands.generic.cmd_credits.received"), amount + ""), RoomChatMessageBubbles.ALERT); } } return true; } - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_masscredits.invalid_amount"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_masscredits.invalid_amount"), RoomChatMessageBubbles.ALERT); return true; } } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/RoomCreditsCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/credits/RoomCreditsCommand.java similarity index 56% rename from src/main/java/com/eu/habbo/habbohotel/commands/RoomCreditsCommand.java rename to src/main/java/com/eu/habbo/habbohotel/commands/credits/RoomCreditsCommand.java index 3b599c94..972a6d36 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/RoomCreditsCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/credits/RoomCreditsCommand.java @@ -1,11 +1,12 @@ -package com.eu.habbo.habbohotel.commands; +package com.eu.habbo.habbohotel.commands.credits; import com.eu.habbo.Emulator; +import com.eu.habbo.habbohotel.commands.Command; import com.eu.habbo.habbohotel.gameclients.GameClient; import com.eu.habbo.habbohotel.rooms.RoomChatMessageBubbles; import com.eu.habbo.habbohotel.users.Habbo; -public class RoomCreditsCommand extends Command { +public class RoomCreditsCommand extends BaseCreditsCommand { public RoomCreditsCommand() { super("cmd_roomcredits", Emulator.getTexts().getValue("commands.keys.cmd_roomcredits").split(";")); } @@ -18,20 +19,20 @@ public class RoomCreditsCommand extends Command { try { amount = Integer.parseInt(params[1]); } catch (Exception e) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_masscredits.invalid_amount"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_masscredits.invalid_amount"), RoomChatMessageBubbles.ALERT); return true; } if (amount != 0) { - final String message = Emulator.getTexts().getValue("commands.generic.cmd_credits.received").replace("%amount%", amount + ""); - for (Habbo habbo : gameClient.getHabbo().getHabboInfo().getCurrentRoom().getHabbos()) { + final String message = replaceAmount(getTextsValue("commands.generic.cmd_credits.received"), amount + ""); + gameClient.getHabbo().getHabboInfo().getCurrentRoom().getHabbos().forEach(habbo -> { habbo.giveCredits(amount); habbo.whisper(message, RoomChatMessageBubbles.ALERT); - } + }); } return true; } - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_masscredits.invalid_amount"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_masscredits.invalid_amount"), RoomChatMessageBubbles.ALERT); return true; } } \ No newline at end of file diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/gift/BaseGiftCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/gift/BaseGiftCommand.java index 8447807b..604af266 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/gift/BaseGiftCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/gift/BaseGiftCommand.java @@ -20,19 +20,19 @@ public abstract class BaseGiftCommand extends Command { protected boolean validateGiftCommand(GameClient gameClient, String[] params) { Integer itemId = getItemId(params); if (itemId == null) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_gift.not_a_number"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_gift.not_a_number"), RoomChatMessageBubbles.ALERT); return false; } if (itemId <= 0) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_gift.not_a_number"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_gift.not_a_number"), RoomChatMessageBubbles.ALERT); return false; } final Item baseItem = getBaseItem(itemId); if (baseItem == null) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_gift.not_found").replace("%itemid%", itemId + ""), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_gift.not_found").replace("%itemid%", itemId + ""), RoomChatMessageBubbles.ALERT); return false; } @@ -40,13 +40,11 @@ public abstract class BaseGiftCommand extends Command { } protected String getFinalMessage(String[] params) { - String message = ""; - if (params.length > 2) { - message = IntStream.range(2, params.length).mapToObj(i -> params[i] + " ").collect(Collectors.joining()); + return IntStream.range(2, params.length).mapToObj(i -> params[i] + " ").collect(Collectors.joining()); } - return message; + return ""; } protected void createGift(String finalMessage, Habbo habbo, String[] params) { @@ -54,8 +52,7 @@ public abstract class BaseGiftCommand extends Command { Item giftItem = Emulator.getGameEnvironment().getItemManager().getItem((Integer) Emulator.getGameEnvironment().getCatalogManager().giftFurnis.values().toArray()[Emulator.getRandom().nextInt(Emulator.getGameEnvironment().getCatalogManager().giftFurnis.size())]); - String extraData = "1\t" + item.getId(); - extraData += "\t0\t0\t0\t" + finalMessage + "\t0\t0"; + String extraData = "1\t" + item.getId() + "\t0\t0\t0\t" + finalMessage + "\t0\t0"; Emulator.getGameEnvironment().getItemManager().createGift(habbo.getHabboInfo().getUsername(), giftItem, extraData, 0, 0); diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/gift/GiftCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/gift/GiftCommand.java index 2c44f9ee..a2408e6b 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/gift/GiftCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/gift/GiftCommand.java @@ -14,6 +14,9 @@ import com.eu.habbo.messages.outgoing.generic.alerts.NotificationDialogMessageCo import com.eu.habbo.messages.outgoing.inventory.FurniListInvalidateComposer; import gnu.trove.map.hash.THashMap; +import java.util.stream.Collectors; +import java.util.stream.IntStream; + public class GiftCommand extends BaseGiftCommand { public GiftCommand() { super("cmd_gift", Emulator.getTexts().getValue("commands.keys.cmd_gift").split(";")); @@ -28,49 +31,39 @@ public class GiftCommand extends BaseGiftCommand { try { itemId = Integer.parseInt(params[2]); } catch (Exception e) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_gift.not_a_number"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_gift.not_a_number"), RoomChatMessageBubbles.ALERT); return true; } if (itemId <= 0) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_gift.not_a_number"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_gift.not_a_number"), RoomChatMessageBubbles.ALERT); return true; } Item baseItem = Emulator.getGameEnvironment().getItemManager().getItem(itemId); if (baseItem == null) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_gift.not_found").replace("%itemid%", itemId + ""), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_gift.not_found").replace("%itemid%", itemId + ""), RoomChatMessageBubbles.ALERT); return true; } HabboInfo habboInfo = HabboManager.getOfflineHabboInfo(username); if (habboInfo == null) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_gift.user_not_found").replace("%username%", username), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.error.cmd_gift.user_not_found"), username), RoomChatMessageBubbles.ALERT); return true; } - StringBuilder message = new StringBuilder(); - - if (params.length > 3) { - for (int i = 3; i < params.length; i++) { - message.append(params[i]).append(" "); - } - } - - final String finalMessage = message.toString(); + String message = params.length > 3 ? IntStream.range(3, params.length).mapToObj(i -> params[i] + " ").collect(Collectors.joining()) : ""; HabboItem item = Emulator.getGameEnvironment().getItemManager().createItem(0, baseItem, 0, 0, ""); - Item giftItem = Emulator.getGameEnvironment().getItemManager().getItem((Integer) Emulator.getGameEnvironment().getCatalogManager().giftFurnis.values().toArray()[Emulator.getRandom().nextInt(Emulator.getGameEnvironment().getCatalogManager().giftFurnis.size())]); - String extraData = "1\t" + item.getId(); - extraData += "\t0\t0\t0\t" + finalMessage + "\t0\t0"; + String extraData = "1\t" + item.getId() + "\t0\t0\t0\t" + message + "\t0\t0"; Emulator.getGameEnvironment().getItemManager().createGift(username, giftItem, extraData, 0, 0); - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_gift").replace("%username%", username).replace("%itemname%", item.getBaseItem().getName()), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.succes.cmd_gift"), username).replace("%itemname%", item.getBaseItem().getName()), RoomChatMessageBubbles.ALERT); Habbo habbo = Emulator.getGameEnvironment().getHabboManager().getHabbo(habboInfo.getId()); @@ -80,7 +73,7 @@ public class GiftCommand extends BaseGiftCommand { THashMap<String, String> keys = new THashMap<>(); keys.put("display", "BUBBLE"); keys.put("image", "${image.library.url}notifications/gift.gif"); - keys.put("message", Emulator.getTexts().getValue("generic.gift.received.anonymous")); + keys.put("message", getTextsValue("generic.gift.received.anonymous")); habbo.getClient().sendResponse(new NotificationDialogMessageComposer(BubbleAlertKeys.RECEIVED_BADGE.getKey(), keys)); } return true; diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/gift/MassGiftCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/gift/MassGiftCommand.java index 703c911d..e8341a76 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/gift/MassGiftCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/gift/MassGiftCommand.java @@ -23,7 +23,7 @@ public class MassGiftCommand extends BaseGiftCommand { @Override public boolean handle(final GameClient gameClient, String[] params) { if (params.length >= 2) { - if(!validateGiftCommand(gameClient, params)){ + if (!validateGiftCommand(gameClient, params)) { return true; } @@ -32,17 +32,14 @@ public class MassGiftCommand extends BaseGiftCommand { THashMap<String, String> keys = new THashMap<>(); keys.put("display", "BUBBLE"); keys.put("image", "${image.library.url}notifications/gift.gif"); - keys.put("message", Emulator.getTexts().getValue("generic.gift.received.anonymous")); + keys.put("message", getTextsValue("generic.gift.received.anonymous")); ServerMessage giftNotificationMessage = new NotificationDialogMessageComposer(BubbleAlertKeys.RECEIVED_BADGE.getKey(), keys).compose(); - Emulator.getThreading().run(() -> { - for (Map.Entry<Integer, Habbo> set : Emulator.getGameEnvironment().getHabboManager().getOnlineHabbos().entrySet()) { - Habbo habbo = set.getValue(); - - createGift(finalMessage, habbo, params); - habbo.getClient().sendResponse(giftNotificationMessage); - } - }); + Emulator.getThreading().run(() -> Emulator.getGameEnvironment().getHabboManager().getOnlineHabbos().values().forEach(habbo -> { + createGift(finalMessage, habbo, params); + habbo.getClient().sendResponse(giftNotificationMessage); + }) + ); return true; diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/gift/RoomGiftCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/gift/RoomGiftCommand.java index a234d20f..f9df93e1 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/gift/RoomGiftCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/gift/RoomGiftCommand.java @@ -24,11 +24,11 @@ public class RoomGiftCommand extends BaseGiftCommand { final String finalMessage = getFinalMessage(params); - for (Habbo habbo : gameClient.getHabbo().getHabboInfo().getCurrentRoom().getHabbos()) { - createGift(finalMessage, habbo, params); - - habbo.getClient().sendResponse(new WiredRewardResultMessageComposer(WiredRewardResultMessageComposer.REWARD_RECEIVED_ITEM)); - } + gameClient.getHabbo().getHabboInfo().getCurrentRoom().getHabbos().forEach(habbo -> { + createGift(finalMessage, habbo, params); + habbo.getClient().sendResponse(new WiredRewardResultMessageComposer(WiredRewardResultMessageComposer.REWARD_RECEIVED_ITEM)); + } + ); return true; } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/MassPixelsCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/pixels/MassPixelsCommand.java similarity index 65% rename from src/main/java/com/eu/habbo/habbohotel/commands/MassPixelsCommand.java rename to src/main/java/com/eu/habbo/habbohotel/commands/pixels/MassPixelsCommand.java index 4c7c6a53..9011a3ca 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/MassPixelsCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/pixels/MassPixelsCommand.java @@ -1,13 +1,14 @@ -package com.eu.habbo.habbohotel.commands; +package com.eu.habbo.habbohotel.commands.pixels; import com.eu.habbo.Emulator; +import com.eu.habbo.habbohotel.commands.Command; import com.eu.habbo.habbohotel.gameclients.GameClient; import com.eu.habbo.habbohotel.rooms.RoomChatMessageBubbles; import com.eu.habbo.habbohotel.users.Habbo; import java.util.Map; -public class MassPixelsCommand extends Command { +public class MassPixelsCommand extends BasePixelsCommand { public MassPixelsCommand() { super("cmd_massduckets", Emulator.getTexts().getValue("commands.keys.cmd_massduckets").split(";")); } @@ -20,7 +21,7 @@ public class MassPixelsCommand extends Command { try { amount = Integer.parseInt(params[1]); } catch (Exception e) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_massduckets.invalid_amount"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_massduckets.invalid_amount"), RoomChatMessageBubbles.ALERT); return true; } @@ -31,12 +32,12 @@ public class MassPixelsCommand extends Command { habbo.givePixels(amount); if (habbo.getHabboInfo().getCurrentRoom() != null) - habbo.whisper(Emulator.getTexts().getValue("commands.generic.cmd_duckets.received").replace("%amount%", amount + ""), RoomChatMessageBubbles.ALERT); + habbo.whisper(replaceAmount(getTextsValue("commands.generic.cmd_duckets.received"), amount + ""), RoomChatMessageBubbles.ALERT); } } return true; } - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_massduckets.invalid_amount"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_massduckets.invalid_amount"), RoomChatMessageBubbles.ALERT); return true; } } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/pixels/PixelCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/pixels/PixelCommand.java new file mode 100644 index 00000000..de50f2c3 --- /dev/null +++ b/src/main/java/com/eu/habbo/habbohotel/commands/pixels/PixelCommand.java @@ -0,0 +1,45 @@ +package com.eu.habbo.habbohotel.commands.pixels; + +import com.eu.habbo.Emulator; +import com.eu.habbo.habbohotel.commands.Command; +import com.eu.habbo.habbohotel.gameclients.GameClient; +import com.eu.habbo.habbohotel.rooms.RoomChatMessageBubbles; +import com.eu.habbo.habbohotel.users.Habbo; + +public class PixelCommand extends BasePixelsCommand { + public PixelCommand() { + super("cmd_duckets", Emulator.getTexts().getValue("commands.keys.cmd_duckets").split(";")); + } + + @Override + public boolean handle(GameClient gameClient, String[] params) { + if (params.length != 3) { + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_duckets.invalid_amount"), RoomChatMessageBubbles.ALERT); + return true; + } + Habbo habbo = getHabbo(params[1]); + + if (habbo != null) { + try { + if (Integer.parseInt(params[2]) != 0) { + habbo.givePixels(Integer.parseInt(params[2])); + if (habbo.getHabboInfo().getCurrentRoom() != null) + habbo.whisper(replaceAmount(getTextsValue("commands.generic.cmd_duckets.received"), params[2]), RoomChatMessageBubbles.ALERT); + else + habbo.alert(replaceAmount(getTextsValue("commands.generic.cmd_duckets.received"), params[2])); + + gameClient.getHabbo().whisper(replaceUserAndAmount(getTextsValue("commands.succes.cmd_duckets.send"), params[1], params[2]), RoomChatMessageBubbles.ALERT); + + } else { + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_duckets.invalid_amount"), RoomChatMessageBubbles.ALERT); + } + } catch (NumberFormatException e) { + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_duckets.invalid_amount"), RoomChatMessageBubbles.ALERT); + } + } else { + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.error.cmd_duckets.user_offline"), params[1]), RoomChatMessageBubbles.ALERT); + } + + return true; + } +} \ No newline at end of file diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/RoomPixelsCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/pixels/RoomPixelsCommand.java similarity index 55% rename from src/main/java/com/eu/habbo/habbohotel/commands/RoomPixelsCommand.java rename to src/main/java/com/eu/habbo/habbohotel/commands/pixels/RoomPixelsCommand.java index 644dab8b..a771f052 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/RoomPixelsCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/pixels/RoomPixelsCommand.java @@ -1,11 +1,12 @@ -package com.eu.habbo.habbohotel.commands; +package com.eu.habbo.habbohotel.commands.pixels; import com.eu.habbo.Emulator; +import com.eu.habbo.habbohotel.commands.Command; import com.eu.habbo.habbohotel.gameclients.GameClient; import com.eu.habbo.habbohotel.rooms.RoomChatMessageBubbles; import com.eu.habbo.habbohotel.users.Habbo; -public class RoomPixelsCommand extends Command { +public class RoomPixelsCommand extends BasePixelsCommand { public RoomPixelsCommand() { super("cmd_roompixels", Emulator.getTexts().getValue("commands.keys.cmd_roompixels").split(";")); } @@ -18,20 +19,20 @@ public class RoomPixelsCommand extends Command { try { amount = Integer.parseInt(params[1]); } catch (Exception e) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_massduckets.invalid_amount"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_massduckets.invalid_amount"), RoomChatMessageBubbles.ALERT); return true; } if (amount != 0) { - final String message = Emulator.getTexts().getValue("commands.generic.cmd_duckets.received").replace("%amount%", amount + ""); - for (Habbo habbo : gameClient.getHabbo().getHabboInfo().getCurrentRoom().getHabbos()) { + final String message = replaceAmount(getTextsValue("commands.generic.cmd_duckets.received"), amount + ""); + gameClient.getHabbo().getHabboInfo().getCurrentRoom().getHabbos().forEach(habbo -> { habbo.givePixels(amount); habbo.whisper(message, RoomChatMessageBubbles.ALERT); - } + }); } return true; } - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_massduckets.invalid_amount"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_massduckets.invalid_amount"), RoomChatMessageBubbles.ALERT); return true; } } \ No newline at end of file diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/points/BasePointsCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/points/BasePointsCommand.java index b3c6fb2d..4f657b6d 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/points/BasePointsCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/points/BasePointsCommand.java @@ -3,7 +3,16 @@ package com.eu.habbo.habbohotel.commands.points; import com.eu.habbo.habbohotel.commands.Command; public abstract class BasePointsCommand extends Command { + public BasePointsCommand(String permission, String[] keys) { super(permission, keys); } + + protected String replaceAmountAndType(String input, String amount, String type) { + return input.replace("%amount%", amount).replace("%type%", type); + } + + protected String replaceUserAndAmountAndType(String input, String user, String amount, String type) { + return replaceAmountAndType(replaceUser(input, user), amount, type); + } } diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/points/MassPointsCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/points/MassPointsCommand.java index 9300805e..e9a0264e 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/points/MassPointsCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/points/MassPointsCommand.java @@ -22,14 +22,14 @@ public class MassPointsCommand extends BasePointsCommand { try { type = Integer.parseInt(params[2]); } catch (Exception e) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_masspoints.invalid_type").replace("%types%", Emulator.getConfig().getValue("seasonal.types").replace(";", ", ")), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_masspoints.invalid_type").replace("%types%", Emulator.getConfig().getValue("seasonal.types").replace(";", ", ")), RoomChatMessageBubbles.ALERT); return true; } } else if (params.length == 2) { amountString = params[1]; } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_masspoints.invalid_amount"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_masspoints.invalid_amount"), RoomChatMessageBubbles.ALERT); return true; } @@ -42,7 +42,7 @@ public class MassPointsCommand extends BasePointsCommand { } if (!found) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_masspoints.invalid_type").replace("%types%", Emulator.getConfig().getValue("seasonal.types").replace(";", ", ")), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_masspoints.invalid_type").replace("%types%", Emulator.getConfig().getValue("seasonal.types").replace(";", ", ")), RoomChatMessageBubbles.ALERT); return true; } @@ -51,15 +51,14 @@ public class MassPointsCommand extends BasePointsCommand { try { amount = Integer.parseInt(amountString); } catch (Exception e) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_masspoints.invalid_amount"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_masspoints.invalid_amount"), RoomChatMessageBubbles.ALERT); return true; } if (amount != 0) { - String message = Emulator.getTexts().getValue("commands.generic.cmd_points.received").replace("%amount%", amount + "").replace("%type%", Emulator.getTexts().getValue("seasonal.name." + type)); + String message = replaceAmountAndType(getTextsValue("commands.generic.cmd_points.received"), amount + "", Emulator.getTexts().getValue("seasonal.name." + type)); - for (Map.Entry<Integer, Habbo> set : Emulator.getGameEnvironment().getHabboManager().getOnlineHabbos().entrySet()) { - Habbo habbo = set.getValue(); + for (Habbo habbo : Emulator.getGameEnvironment().getHabboManager().getOnlineHabbos().values()) { habbo.givePoints(type, amount); if (habbo.getHabboInfo().getCurrentRoom() != null) diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/points/PointsCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/points/PointsCommand.java index 9ab11d83..044abf67 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/points/PointsCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/points/PointsCommand.java @@ -1,12 +1,14 @@ package com.eu.habbo.habbohotel.commands.points; import com.eu.habbo.Emulator; -import com.eu.habbo.habbohotel.commands.Command; import com.eu.habbo.habbohotel.gameclients.GameClient; import com.eu.habbo.habbohotel.rooms.RoomChatMessageBubbles; import com.eu.habbo.habbohotel.users.Habbo; public class PointsCommand extends BasePointsCommand { + + private static final String INVALID_AMOUNT_TEXTS = "commands.error.cmd_points.invalid_amount"; + public PointsCommand() { super("cmd_points", Emulator.getTexts().getValue("commands.keys.cmd_points").split(";")); } @@ -14,15 +16,15 @@ public class PointsCommand extends BasePointsCommand { @Override public boolean handle(GameClient gameClient, String[] params) { if (params.length < 3) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_points.invalid_amount"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue(INVALID_AMOUNT_TEXTS), RoomChatMessageBubbles.ALERT); return true; } - Habbo habbo = Emulator.getGameServer().getGameClientManager().getHabbo(params[1]); + Habbo habbo = getHabbo(params[1]); if (habbo == null) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_points.user_offline").replace("%user%", params[1]), RoomChatMessageBubbles.ALERT); - return true; + gameClient.getHabbo().whisper(replaceUser(getTextsValue("commands.error.cmd_points.user_offline"), params[1]), RoomChatMessageBubbles.ALERT); + return true; } try { @@ -32,7 +34,7 @@ public class PointsCommand extends BasePointsCommand { try { type = Integer.parseInt(params[3]); } catch (NumberFormatException e) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_points.invalid_type").replace("%types%", Emulator.getConfig().getValue("seasonal.types").replace(";", ", ")), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_points.invalid_type").replace("%types%", Emulator.getConfig().getValue("seasonal.types").replace(";", ", ")), RoomChatMessageBubbles.ALERT); return true; } } @@ -40,7 +42,7 @@ public class PointsCommand extends BasePointsCommand { try { amount = Integer.parseInt(params[2]); } catch (NumberFormatException e) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_points.invalid_amount"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue(INVALID_AMOUNT_TEXTS), RoomChatMessageBubbles.ALERT); return true; } @@ -48,19 +50,17 @@ public class PointsCommand extends BasePointsCommand { habbo.givePoints(type, amount); if (habbo.getHabboInfo().getCurrentRoom() != null) - habbo.whisper(Emulator.getTexts().getValue("commands.generic.cmd_points.received").replace("%amount%", amount + "").replace("%type%", Emulator.getTexts().getValue("seasonal.name." + type)), RoomChatMessageBubbles.ALERT); + habbo.whisper(replaceAmountAndType(getTextsValue("commands.generic.cmd_points.received"), amount + "", getTextsValue("seasonal.name." + type)), RoomChatMessageBubbles.ALERT); else - habbo.alert(Emulator.getTexts().getValue("commands.generic.cmd_points.received").replace("%amount%", amount + "").replace("%type%", Emulator.getTexts().getValue("seasonal.name." + type))); + habbo.alert(replaceAmountAndType(getTextsValue("commands.generic.cmd_points.received"), amount + "", getTextsValue("seasonal.name." + type))); - // habbo.getClient().sendResponse(new UserPointsComposer(habbo.getHabboInfo().getCurrencyAmount(type), amount, type)); - - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.succes.cmd_points.send").replace("%amount%", amount + "").replace("%user%", params[1]).replace("%type%", Emulator.getTexts().getValue("seasonal.name." + type)), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(replaceUserAndAmountAndType(getTextsValue("commands.succes.cmd_points.send"), params[1], amount + "", getTextsValue("seasonal.name." + type)), RoomChatMessageBubbles.ALERT); } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_points.invalid_amount"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue(INVALID_AMOUNT_TEXTS), RoomChatMessageBubbles.ALERT); } } catch (NumberFormatException e) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_points.invalid_amount"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue(INVALID_AMOUNT_TEXTS), RoomChatMessageBubbles.ALERT); } return true; diff --git a/src/main/java/com/eu/habbo/habbohotel/commands/points/RoomPointsCommand.java b/src/main/java/com/eu/habbo/habbohotel/commands/points/RoomPointsCommand.java index c241c299..90528818 100644 --- a/src/main/java/com/eu/habbo/habbohotel/commands/points/RoomPointsCommand.java +++ b/src/main/java/com/eu/habbo/habbohotel/commands/points/RoomPointsCommand.java @@ -21,13 +21,13 @@ public class RoomPointsCommand extends BasePointsCommand { type = Integer.parseInt(params[2]); } catch (Exception e) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_masspoints.invalid_type").replace("%types%", Emulator.getConfig().getValue("seasonal.types").replace(";", ", ")), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_masspoints.invalid_type").replace("%types%", Emulator.getConfig().getValue("seasonal.types").replace(";", ", ")), RoomChatMessageBubbles.ALERT); return true; } } else if (params.length == 2) { amountString = params[1]; } else { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_masspoints.invalid_amount"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_masspoints.invalid_amount"), RoomChatMessageBubbles.ALERT); return true; } @@ -40,7 +40,7 @@ public class RoomPointsCommand extends BasePointsCommand { } if (!found) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_masspoints.invalid_type").replace("%types%", Emulator.getConfig().getValue("seasonal.types").replace(";", ", ")), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_masspoints.invalid_type").replace("%types%", Emulator.getConfig().getValue("seasonal.types").replace(";", ", ")), RoomChatMessageBubbles.ALERT); return true; } @@ -49,12 +49,12 @@ public class RoomPointsCommand extends BasePointsCommand { try { amount = Integer.parseInt(amountString); } catch (Exception e) { - gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.error.cmd_masspoints.invalid_amount"), RoomChatMessageBubbles.ALERT); + gameClient.getHabbo().whisper(getTextsValue("commands.error.cmd_masspoints.invalid_amount"), RoomChatMessageBubbles.ALERT); return true; } if (amount != 0) { - final String message = Emulator.getTexts().getValue("commands.generic.cmd_points.received").replace("%amount%", amount + "").replace("%type%", Emulator.getTexts().getValue("seasonal.name." + type)); + final String message = replaceAmountAndType(getTextsValue("commands.generic.cmd_points.received"), amount + "", getTextsValue("seasonal.name." + type)); for (Habbo habbo : gameClient.getHabbo().getHabboInfo().getCurrentRoom().getHabbos()) { habbo.givePoints(type, amount); diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionFurniHaveFurni.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionFurniHaveFurni.java index 53b108ae..752454a8 100644 --- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionFurniHaveFurni.java +++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionFurniHaveFurni.java @@ -15,8 +15,9 @@ import gnu.trove.set.hash.THashSet; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.Arrays; import java.util.List; -import java.util.stream.Collectors; +import java.util.Objects; public class WiredConditionFurniHaveFurni extends InteractionWiredCondition { public static final WiredConditionType type = WiredConditionType.FURNI_HAS_FURNI; @@ -38,17 +39,16 @@ public class WiredConditionFurniHaveFurni extends InteractionWiredCondition { public boolean execute(RoomUnit roomUnit, Room room, Object[] stuff) { this.refresh(); - if(this.items.isEmpty()) + if (this.items.isEmpty()) return true; - if(this.all) { + if (this.all) { return this.items.stream().allMatch(item -> { double minZ = item.getZ() + Item.getCurrentHeight(item); THashSet<RoomTile> occupiedTiles = room.getLayout().getTilesAt(room.getLayout().getTile(item.getX(), item.getY()), item.getBaseItem().getWidth(), item.getBaseItem().getLength(), item.getRotation()); return occupiedTiles.stream().anyMatch(tile -> room.getItemsAt(tile).stream().anyMatch(matchedItem -> matchedItem != item && matchedItem.getZ() >= minZ)); }); - } - else { + } else { return this.items.stream().anyMatch(item -> { double minZ = item.getZ() + Item.getCurrentHeight(item); THashSet<RoomTile> occupiedTiles = room.getLayout().getTilesAt(room.getLayout().getTile(item.getX(), item.getY()), item.getBaseItem().getWidth(), item.getBaseItem().getLength(), item.getRotation()); @@ -62,7 +62,7 @@ public class WiredConditionFurniHaveFurni extends InteractionWiredCondition { this.refresh(); return WiredHandler.getGsonBuilder().create().toJson(new JsonData( this.all, - this.items.stream().map(HabboItem::getId).collect(Collectors.toList()) + this.items.stream().map(HabboItem::getId).toList() )); } @@ -74,13 +74,7 @@ public class WiredConditionFurniHaveFurni extends InteractionWiredCondition { JsonData data = WiredHandler.getGsonBuilder().create().fromJson(wiredData, JsonData.class); this.all = data.all; - for(int id : data.itemIds) { - HabboItem item = room.getHabboItem(id); - - if (item != null) { - this.items.add(item); - } - } + data.itemIds.stream().mapToInt(id -> id).mapToObj(room::getHabboItem).filter(Objects::nonNull).forEach(this.items::add); } else { String[] data = wiredData.split(":"); @@ -89,14 +83,8 @@ public class WiredConditionFurniHaveFurni extends InteractionWiredCondition { this.all = (data[0].equals("1")); if (data.length == 2) { - String[] items = data[1].split(";"); - - for (String s : items) { - HabboItem item = room.getHabboItem(Integer.parseInt(s)); - - if (item != null) - this.items.add(item); - } + String[] itemsSplit = data[1].split(";"); + Arrays.stream(itemsSplit).map(s -> room.getHabboItem(Integer.parseInt(s))).filter(Objects::nonNull).forEach(this.items::add); } } } @@ -137,7 +125,7 @@ public class WiredConditionFurniHaveFurni extends InteractionWiredCondition { @Override public boolean saveData(WiredSettings settings) { - if(settings.getIntParams().length < 1) return false; + if (settings.getIntParams().length < 1) return false; this.all = settings.getIntParams()[0] == 1; @@ -162,21 +150,8 @@ public class WiredConditionFurniHaveFurni extends InteractionWiredCondition { } private void refresh() { - THashSet<HabboItem> items = new THashSet<>(); - Room room = Emulator.getGameEnvironment().getRoomManager().getRoom(this.getRoomId()); - if (room == null) { - items.addAll(this.items); - } else { - for (HabboItem item : this.items) { - if (room.getHabboItem(item.getId()) == null) - items.add(item); - } - } - - for (HabboItem item : items) { - this.items.remove(item); - } + this.items.removeIf(i -> room.getHabboItem(i.getId()) == null); } static class JsonData { diff --git a/src/main/java/com/eu/habbo/habbohotel/pets/actions/ActionBreed.java b/src/main/java/com/eu/habbo/habbohotel/pets/actions/ActionBreed.java index a6f014dd..7eb182de 100644 --- a/src/main/java/com/eu/habbo/habbohotel/pets/actions/ActionBreed.java +++ b/src/main/java/com/eu/habbo/habbohotel/pets/actions/ActionBreed.java @@ -18,11 +18,9 @@ public class ActionBreed extends PetAction { public boolean apply(Pet pet, Habbo habbo, String[] data) { InteractionPetBreedingNest nest = null; for (HabboItem item : pet.getRoom().getRoomSpecialTypes().getItemsOfType(InteractionPetBreedingNest.class)) { - if (StringUtils.containsIgnoreCase(item.getBaseItem().getName(), pet.getPetData().getName())) { - if (!((InteractionPetBreedingNest) item).boxFull()) { - nest = (InteractionPetBreedingNest) item; - break; - } + if (StringUtils.containsIgnoreCase(item.getBaseItem().getName(), pet.getPetData().getName()) && !((InteractionPetBreedingNest) item).boxFull()) { + nest = (InteractionPetBreedingNest) item; + break; } } diff --git a/src/main/java/com/eu/habbo/habbohotel/rooms/RoomUnit.java b/src/main/java/com/eu/habbo/habbohotel/rooms/RoomUnit.java index 4020f2eb..c0437373 100644 --- a/src/main/java/com/eu/habbo/habbohotel/rooms/RoomUnit.java +++ b/src/main/java/com/eu/habbo/habbohotel/rooms/RoomUnit.java @@ -100,6 +100,9 @@ public class RoomUnit { @Getter private boolean fastWalk = false; private boolean statusUpdate = false; + @Getter + @Setter + @Accessors(chain = true) private boolean invisible = false; @Setter private boolean canLeaveRoomByDoor = true; @@ -115,6 +118,8 @@ public class RoomUnit { @Setter @Accessors(chain = true) private RoomUnitType roomUnitType; + @Getter + @Setter private Deque<RoomTile> path = new LinkedList<>(); private int handItem; private long handItemTimestamp; @@ -126,7 +131,11 @@ public class RoomUnit { private int timeInRoom; private int idleTimer; + @Setter + @Getter private Room room; + @Getter + @Setter private RoomRightLevels rightsLevel = RoomRightLevels.NONE; private final THashSet<Integer> overridableTiles; @@ -663,38 +672,6 @@ public class RoomUnit { } } - public Deque<RoomTile> getPath() { - return this.path; - } - - public void setPath(Deque<RoomTile> path) { - this.path = path; - } - - public RoomRightLevels getRightsLevel() { - return this.rightsLevel; - } - - public void setRightsLevel(RoomRightLevels rightsLevel) { - this.rightsLevel = rightsLevel; - } - - public boolean isInvisible() { - return this.invisible; - } - - public void setInvisible(boolean invisible) { - this.invisible = invisible; - } - - public Room getRoom() { - return room; - } - - public void setRoom(Room room) { - this.room = room; - } - public boolean canOverrideTile(RoomTile tile) { if (tile == null || room == null || room.getLayout() == null) return false; diff --git a/src/main/java/com/eu/habbo/habbohotel/users/HabboInfo.java b/src/main/java/com/eu/habbo/habbohotel/users/HabboInfo.java index c61feb84..1aee0e2c 100644 --- a/src/main/java/com/eu/habbo/habbohotel/users/HabboInfo.java +++ b/src/main/java/com/eu/habbo/habbohotel/users/HabboInfo.java @@ -34,6 +34,7 @@ public class HabboInfo implements Runnable { @Setter private String motto; @Setter + @Accessors(chain = true) private String look; @Setter private HabboGender gender; 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 532ae1fe..91266d72 100644 --- a/src/main/java/com/eu/habbo/habbohotel/users/HabboStats.java +++ b/src/main/java/com/eu/habbo/habbohotel/users/HabboStats.java @@ -770,7 +770,7 @@ public class HabboStats implements Runnable { } public boolean allowTrade() { - if (AchievementManager.TALENTTRACK_ENABLED && RoomTrade.TRADING_REQUIRES_PERK) + if (AchievementManager.TALENT_TRACK_ENABLED && RoomTrade.TRADING_REQUIRES_PERK) return this.perkTrade && this.allowTrade; else return this.allowTrade; } diff --git a/src/main/java/com/eu/habbo/messages/incoming/guilds/AddAdminRightsToMemberEvent.java b/src/main/java/com/eu/habbo/messages/incoming/guilds/AddAdminRightsToMemberEvent.java index 62832e44..f73fa9fa 100644 --- a/src/main/java/com/eu/habbo/messages/incoming/guilds/AddAdminRightsToMemberEvent.java +++ b/src/main/java/com/eu/habbo/messages/incoming/guilds/AddAdminRightsToMemberEvent.java @@ -18,30 +18,26 @@ public class AddAdminRightsToMemberEvent extends MessageHandler { Guild guild = Emulator.getGameEnvironment().getGuildManager().getGuild(guildId); - if (guild != null) { - if (guild.getOwnerId() == this.client.getHabbo().getHabboInfo().getId() || this.client.getHabbo().hasPermission(Permission.ACC_GUILD_ADMIN)) { - Emulator.getGameEnvironment().getGuildManager().setAdmin(guild, userId); + if (guild != null && (guild.getOwnerId() == this.client.getHabbo().getHabboInfo().getId() || this.client.getHabbo().hasPermission(Permission.ACC_GUILD_ADMIN))) { + Emulator.getGameEnvironment().getGuildManager().setAdmin(guild, userId); - Habbo habbo = Emulator.getGameEnvironment().getHabboManager().getHabbo(userId); + Habbo habbo = Emulator.getGameEnvironment().getHabboManager().getHabbo(userId); - GuildGivenAdminEvent adminEvent = new GuildGivenAdminEvent(guild, userId, habbo, this.client.getHabbo()); - Emulator.getPluginManager().fireEvent(adminEvent); - if (adminEvent.isCancelled()) - return; + GuildGivenAdminEvent adminEvent = new GuildGivenAdminEvent(guild, userId, habbo, this.client.getHabbo()); + Emulator.getPluginManager().fireEvent(adminEvent); + if (adminEvent.isCancelled()) + return; - if (habbo != null) { - Room room = habbo.getHabboInfo().getCurrentRoom(); - if (room != null) { - if (room.getGuildId() == guildId) { - room.refreshRightsForHabbo(habbo); - } - } + if (habbo != null) { + Room room = habbo.getHabboInfo().getCurrentRoom(); + if (room != null && room.getGuildId() == guildId) { + room.refreshRightsForHabbo(habbo); } - - GuildMember guildMember = Emulator.getGameEnvironment().getGuildManager().getGuildMember(guildId, userId); - - this.client.sendResponse(new GuildMembershipUpdatedMessageComposer(guild, guildMember)); } + + GuildMember guildMember = Emulator.getGameEnvironment().getGuildManager().getGuildMember(guildId, userId); + + this.client.sendResponse(new GuildMembershipUpdatedMessageComposer(guild, guildMember)); } } } diff --git a/src/main/java/com/eu/habbo/messages/incoming/polls/AnswerPollEvent.java b/src/main/java/com/eu/habbo/messages/incoming/polls/AnswerPollEvent.java index bf9053eb..33ef0cff 100644 --- a/src/main/java/com/eu/habbo/messages/incoming/polls/AnswerPollEvent.java +++ b/src/main/java/com/eu/habbo/messages/incoming/polls/AnswerPollEvent.java @@ -48,17 +48,15 @@ public class AnswerPollEvent extends MessageHandler { log.error("Caught SQL exception", e); } - if (poll.getLastQuestionId() == questionId) { - if (poll.getBadgeReward().length() > 0) { - if (!this.client.getHabbo().getInventory().getBadgesComponent().hasBadge(poll.getBadgeReward())) { - HabboBadge badge = new HabboBadge(0, poll.getBadgeReward(), 0, this.client.getHabbo()); - Emulator.getThreading().run(badge); - this.client.getHabbo().getInventory().getBadgesComponent().addBadge(badge); - this.client.sendResponse(new BadgeReceivedComposer(badge)); - this.client.sendResponse(new WiredRewardResultMessageComposer(WiredRewardResultMessageComposer.REWARD_RECEIVED_BADGE)); - } else { - this.client.sendResponse(new WiredRewardResultMessageComposer(WiredRewardResultMessageComposer.REWARD_ALREADY_RECEIVED)); - } + if (poll.getLastQuestionId() == questionId && poll.getBadgeReward().length() > 0) { + if (!this.client.getHabbo().getInventory().getBadgesComponent().hasBadge(poll.getBadgeReward())) { + HabboBadge badge = new HabboBadge(0, poll.getBadgeReward(), 0, this.client.getHabbo()); + Emulator.getThreading().run(badge); + this.client.getHabbo().getInventory().getBadgesComponent().addBadge(badge); + this.client.sendResponse(new BadgeReceivedComposer(badge)); + this.client.sendResponse(new WiredRewardResultMessageComposer(WiredRewardResultMessageComposer.REWARD_RECEIVED_BADGE)); + } else { + this.client.sendResponse(new WiredRewardResultMessageComposer(WiredRewardResultMessageComposer.REWARD_ALREADY_RECEIVED)); } } } diff --git a/src/main/java/com/eu/habbo/messages/incoming/rooms/items/AddSpamWallPostItEvent.java b/src/main/java/com/eu/habbo/messages/incoming/rooms/items/AddSpamWallPostItEvent.java index bc418af6..aa0c27d9 100644 --- a/src/main/java/com/eu/habbo/messages/incoming/rooms/items/AddSpamWallPostItEvent.java +++ b/src/main/java/com/eu/habbo/messages/incoming/rooms/items/AddSpamWallPostItEvent.java @@ -10,6 +10,7 @@ import com.eu.habbo.messages.incoming.MessageHandler; import lombok.extern.slf4j.Slf4j; import java.time.LocalDate; +import java.util.Arrays; @Slf4j public class AddSpamWallPostItEvent extends MessageHandler { @@ -25,10 +26,9 @@ public class AddSpamWallPostItEvent extends MessageHandler { if (this.client.getHabbo().hasPermission("cmd_multi")) { String[] commands = this.packet.readString().split("\r"); - for (String command : commands) { - command = command.replace("<br>", "\r"); - CommandHandler.handleCommand(this.client, command); - } + Arrays.stream(commands) + .map(command -> command.replace("<br>", "\r")) + .forEach(command -> CommandHandler.handleCommand(this.client, command)); } else { log.info("Scripter Alert! " + this.client.getHabbo().getHabboInfo().getUsername() + " | " + this.packet.readString()); } @@ -38,23 +38,21 @@ public class AddSpamWallPostItEvent extends MessageHandler { Room room = this.client.getHabbo().getHabboInfo().getCurrentRoom(); HabboItem sticky = room.getHabboItem(itemId); - if (sticky != null) { - if (sticky.getUserId() == this.client.getHabbo().getHabboInfo().getId()) { - sticky.setUserId(room.getOwnerId()); + if (sticky != null && sticky.getUserId() == this.client.getHabbo().getHabboInfo().getId()) { + sticky.setUserId(room.getOwnerId()); - if (color.equalsIgnoreCase(PostItColor.YELLOW.hexColor)) { - color = PostItColor.randomColorNotYellow().hexColor; - } - if (!InteractionPostIt.STICKYPOLE_PREFIX_TEXT.isEmpty()) { - text = InteractionPostIt.STICKYPOLE_PREFIX_TEXT.replace("\\r", "\r").replace("%username%", this.client.getHabbo().getHabboInfo().getUsername()).replace("%timestamp%", LocalDate.now().toString()) + text; - } - - sticky.setUserId(room.getOwnerId()); - sticky.setExtradata(color + " " + text); - sticky.needsUpdate(true); - room.updateItem(sticky); - Emulator.getThreading().run(sticky); + if (color.equalsIgnoreCase(PostItColor.YELLOW.hexColor)) { + color = PostItColor.randomColorNotYellow().hexColor; } + if (!InteractionPostIt.STICKYPOLE_PREFIX_TEXT.isEmpty()) { + text = InteractionPostIt.STICKYPOLE_PREFIX_TEXT.replace("\\r", "\r").replace("%username%", this.client.getHabbo().getHabboInfo().getUsername()).replace("%timestamp%", LocalDate.now().toString()) + text; + } + + sticky.setUserId(room.getOwnerId()); + sticky.setExtradata(color + " " + text); + sticky.needsUpdate(true); + room.updateItem(sticky); + Emulator.getThreading().run(sticky); } } } diff --git a/src/main/java/com/eu/habbo/messages/incoming/rooms/items/jukebox/AddJukeboxDiskEvent.java b/src/main/java/com/eu/habbo/messages/incoming/rooms/items/jukebox/AddJukeboxDiskEvent.java index da481cc1..402281f6 100644 --- a/src/main/java/com/eu/habbo/messages/incoming/rooms/items/jukebox/AddJukeboxDiskEvent.java +++ b/src/main/java/com/eu/habbo/messages/incoming/rooms/items/jukebox/AddJukeboxDiskEvent.java @@ -18,8 +18,8 @@ public class AddJukeboxDiskEvent extends MessageHandler { if (habbo != null) { HabboItem item = habbo.getInventory().getItemsComponent().getHabboItem(itemId); - if (item instanceof InteractionMusicDisc && item.getRoomId() == 0) { - this.client.getHabbo().getHabboInfo().getCurrentRoom().getTraxManager().addSong((InteractionMusicDisc) item, habbo); + if (item instanceof InteractionMusicDisc interactionMusicDisc && item.getRoomId() == 0) { + this.client.getHabbo().getHabboInfo().getCurrentRoom().getTraxManager().addSong(interactionMusicDisc, habbo); } } } diff --git a/src/main/java/com/eu/habbo/messages/incoming/rooms/users/AvatarExpressionEvent.java b/src/main/java/com/eu/habbo/messages/incoming/rooms/users/AvatarExpressionEvent.java index b7efb012..c3dffc03 100644 --- a/src/main/java/com/eu/habbo/messages/incoming/rooms/users/AvatarExpressionEvent.java +++ b/src/main/java/com/eu/habbo/messages/incoming/rooms/users/AvatarExpressionEvent.java @@ -12,45 +12,45 @@ public class AvatarExpressionEvent extends MessageHandler { @Override public void handle() { Room room = this.client.getHabbo().getHabboInfo().getCurrentRoom(); - if (room != null) { - Habbo habbo = this.client.getHabbo(); - - if (this.client.getHabbo().getRoomUnit().getCacheable().get("control") != null) { - habbo = (Habbo) this.client.getHabbo().getRoomUnit().getCacheable().get("control"); - - if (habbo.getHabboInfo().getCurrentRoom() != room) { - habbo.getRoomUnit().getCacheable().remove("controller"); - this.client.getHabbo().getRoomUnit().getCacheable().remove("control"); - habbo = this.client.getHabbo(); - } - } - - int action = this.packet.readInt(); - - if (action == 5) { - UserIdleEvent event = new UserIdleEvent(this.client.getHabbo(), UserIdleEvent.IdleReason.ACTION, true); - Emulator.getPluginManager().fireEvent(event); - - if (!event.isCancelled()) { - if (event.isIdle()) { - room.idle(habbo); - } else { - room.unIdle(habbo); - } - } - } else { - UserIdleEvent event = new UserIdleEvent(this.client.getHabbo(), UserIdleEvent.IdleReason.ACTION, false); - Emulator.getPluginManager().fireEvent(event); - - if (!event.isCancelled()) { - if (!event.isIdle()) { - room.unIdle(habbo); - } - } - - } - - room.sendComposer(new ExpressionMessageComposer(habbo.getRoomUnit(), RoomUserAction.fromValue(action)).compose()); + if (room == null) { + return; } + + Habbo habbo = this.client.getHabbo(); + + if (this.client.getHabbo().getRoomUnit().getCacheable().get("control") != null) { + habbo = (Habbo) this.client.getHabbo().getRoomUnit().getCacheable().get("control"); + + if (habbo.getHabboInfo().getCurrentRoom() != room) { + habbo.getRoomUnit().getCacheable().remove("controller"); + this.client.getHabbo().getRoomUnit().getCacheable().remove("control"); + habbo = this.client.getHabbo(); + } + } + + int action = this.packet.readInt(); + + if (action == 5) { + UserIdleEvent event = new UserIdleEvent(this.client.getHabbo(), UserIdleEvent.IdleReason.ACTION, true); + Emulator.getPluginManager().fireEvent(event); + + if (!event.isCancelled()) { + if (event.isIdle()) { + room.idle(habbo); + } else { + room.unIdle(habbo); + } + } + } else { + UserIdleEvent event = new UserIdleEvent(this.client.getHabbo(), UserIdleEvent.IdleReason.ACTION, false); + Emulator.getPluginManager().fireEvent(event); + + if (!event.isCancelled() && !event.isIdle()) { + room.unIdle(habbo); + } + + } + + room.sendComposer(new ExpressionMessageComposer(habbo.getRoomUnit(), RoomUserAction.fromValue(action)).compose()); } } diff --git a/src/main/java/com/eu/habbo/messages/incoming/wired/ApplySnapshotEvent.java b/src/main/java/com/eu/habbo/messages/incoming/wired/ApplySnapshotEvent.java index c52491cd..5f9aebd7 100644 --- a/src/main/java/com/eu/habbo/messages/incoming/wired/ApplySnapshotEvent.java +++ b/src/main/java/com/eu/habbo/messages/incoming/wired/ApplySnapshotEvent.java @@ -37,65 +37,59 @@ public class ApplySnapshotEvent extends MessageHandler { Room room = this.client.getHabbo().getHabboInfo().getCurrentRoom(); - if (room != null) { + // Executing Habbo should be able to edit wireds + if (room == null || (!room.hasRights(this.client.getHabbo()) && !room.isOwner(this.client.getHabbo()))) { + return; + } - // Executing Habbo should be able to edit wireds - if (room.hasRights(this.client.getHabbo()) || room.isOwner(this.client.getHabbo())) { + List<HabboItem> wireds = new ArrayList<>(); + wireds.addAll(room.getRoomSpecialTypes().getConditions()); + wireds.addAll(room.getRoomSpecialTypes().getEffects()); - List<HabboItem> wireds = new ArrayList<>(); - wireds.addAll(room.getRoomSpecialTypes().getConditions()); - wireds.addAll(room.getRoomSpecialTypes().getEffects()); + // Find the item with the given ID in the room + Optional<HabboItem> item = wireds.stream() + .filter(wired -> wired.getId() == itemId) + .findFirst(); - // Find the item with the given ID in the room - Optional<HabboItem> item = wireds.stream() - .filter(wired -> wired.getId() == itemId) - .findFirst(); + // If the item exists + if (item.isEmpty()) { + return; + } - // If the item exists - if (item.isPresent()) { - HabboItem wiredItem = item.get(); + HabboItem wiredItem = item.get(); + // The item should have settings to match furni state, position and rotation + if (wiredItem instanceof InteractionWiredMatchFurniSettings wired) { - // The item should have settings to match furni state, position and rotation - if (wiredItem instanceof InteractionWiredMatchFurniSettings wired) { + // Try to apply the set settings to each item + wired.getMatchFurniSettings().forEach(setting -> { + HabboItem matchItem = room.getHabboItem(setting.getItem_id()); - // Try to apply the set settings to each item - wired.getMatchFurniSettings().forEach(setting -> { - HabboItem matchItem = room.getHabboItem(setting.getItem_id()); + // Match state + if (wired.shouldMatchState() && matchItem.allowWiredResetState() && !setting.getState().equals(" ") && !matchItem.getExtradata().equals(setting.getState())) { + matchItem.setExtradata(setting.getState()); + room.updateItemState(matchItem); + } - // Match state - if (wired.shouldMatchState() && matchItem.allowWiredResetState()) { - if (!setting.getState().equals(" ") && !matchItem.getExtradata().equals(setting.getState())) { - matchItem.setExtradata(setting.getState()); - room.updateItemState(matchItem); - } - } + RoomTile oldLocation = room.getLayout().getTile(matchItem.getX(), matchItem.getY()); + double oldZ = matchItem.getZ(); - RoomTile oldLocation = room.getLayout().getTile(matchItem.getX(), matchItem.getY()); - double oldZ = matchItem.getZ(); + // Match Position & Rotation + if (wired.shouldMatchRotation() && !wired.shouldMatchPosition()) { + if (matchItem.getRotation() != setting.getRotation() && room.furnitureFitsAt(oldLocation, matchItem, setting.getRotation(), false) == FurnitureMovementError.NONE) { + room.moveFurniTo(matchItem, oldLocation, setting.getRotation(), null, true); + } + } else if (wired.shouldMatchPosition()) { + boolean slideAnimation = !wired.shouldMatchRotation() || matchItem.getRotation() == setting.getRotation(); + RoomTile newLocation = room.getLayout().getTile((short) setting.getX(), (short) setting.getY()); + int newRotation = wired.shouldMatchRotation() ? setting.getRotation() : matchItem.getRotation(); - // Match Position & Rotation - if(wired.shouldMatchRotation() && !wired.shouldMatchPosition()) { - if(matchItem.getRotation() != setting.getRotation() && room.furnitureFitsAt(oldLocation, matchItem, setting.getRotation(), false) == FurnitureMovementError.NONE) { - room.moveFurniTo(matchItem, oldLocation, setting.getRotation(), null, true); - } - } - else if(wired.shouldMatchPosition()) { - boolean slideAnimation = !wired.shouldMatchRotation() || matchItem.getRotation() == setting.getRotation(); - RoomTile newLocation = room.getLayout().getTile((short) setting.getX(), (short) setting.getY()); - int newRotation = wired.shouldMatchRotation() ? setting.getRotation() : matchItem.getRotation(); - - if(newLocation != null && newLocation.getState() != RoomTileState.INVALID && (newLocation != oldLocation || newRotation != matchItem.getRotation()) && room.furnitureFitsAt(newLocation, matchItem, newRotation, true) == FurnitureMovementError.NONE) { - if(room.moveFurniTo(matchItem, newLocation, newRotation, null, !slideAnimation) == FurnitureMovementError.NONE) { - if(slideAnimation) { - room.sendComposer(new FloorItemOnRollerComposer(matchItem, null, oldLocation, oldZ, newLocation, matchItem.getZ(), 0, room).compose()); - } - } - } - } - }); + if (newLocation != null && newLocation.getState() != RoomTileState.INVALID && (newLocation != oldLocation || newRotation != matchItem.getRotation()) + && room.furnitureFitsAt(newLocation, matchItem, newRotation, true) == FurnitureMovementError.NONE + && room.moveFurniTo(matchItem, newLocation, newRotation, null, !slideAnimation) == FurnitureMovementError.NONE && slideAnimation) { + room.sendComposer(new FloorItemOnRollerComposer(matchItem, null, oldLocation, oldZ, newLocation, matchItem.getZ(), 0, room).compose()); } } - } + }); } } } diff --git a/src/main/java/com/eu/habbo/messages/outgoing/MessageComposer.java b/src/main/java/com/eu/habbo/messages/outgoing/MessageComposer.java index d55e8db8..16707243 100644 --- a/src/main/java/com/eu/habbo/messages/outgoing/MessageComposer.java +++ b/src/main/java/com/eu/habbo/messages/outgoing/MessageComposer.java @@ -22,4 +22,7 @@ public abstract class MessageComposer { return this.composed; } + protected int booleanToInt(boolean value) { + return value ? 1 : 0; + } } \ No newline at end of file diff --git a/src/main/java/com/eu/habbo/messages/outgoing/achievements/talenttrack/TalentTrackMessageComposer.java b/src/main/java/com/eu/habbo/messages/outgoing/achievements/talenttrack/TalentTrackMessageComposer.java index 3365d161..0ee49d22 100644 --- a/src/main/java/com/eu/habbo/messages/outgoing/achievements/talenttrack/TalentTrackMessageComposer.java +++ b/src/main/java/com/eu/habbo/messages/outgoing/achievements/talenttrack/TalentTrackMessageComposer.java @@ -12,7 +12,6 @@ import com.eu.habbo.messages.outgoing.Outgoing; import lombok.AllArgsConstructor; import lombok.Getter; -import java.util.LinkedHashMap; import java.util.Map; import java.util.NoSuchElementException; @@ -28,7 +27,7 @@ public class TalentTrackMessageComposer extends MessageComposer { this.response.init(Outgoing.talentTrackMessageComposer); this.response.appendString(this.type.name().toLowerCase()); - LinkedHashMap<Integer, TalentTrackLevel> talentTrackLevels = Emulator.getGameEnvironment().getAchievementManager().getTalenTrackLevels(this.type); + Map<Integer, TalentTrackLevel> talentTrackLevels = Emulator.getGameEnvironment().getAchievementManager().getTalenTrackLevels(this.type); if (talentTrackLevels != null) { this.response.appendInt(talentTrackLevels.size()); //Count for (Map.Entry<Integer, TalentTrackLevel> set : talentTrackLevels.entrySet()) { diff --git a/src/main/java/com/eu/habbo/messages/outgoing/gamecenter/basejump/LoadGameMessageComposer.java b/src/main/java/com/eu/habbo/messages/outgoing/gamecenter/basejump/LoadGameMessageComposer.java index bb4e13e4..9d70ab47 100644 --- a/src/main/java/com/eu/habbo/messages/outgoing/gamecenter/basejump/LoadGameMessageComposer.java +++ b/src/main/java/com/eu/habbo/messages/outgoing/gamecenter/basejump/LoadGameMessageComposer.java @@ -33,7 +33,7 @@ public class LoadGameMessageComposer extends MessageComposer { this.response.appendString("habboHost"); this.response.appendString(Emulator.getConfig().getValue("hotel.url")); this.response.appendString("accessToken"); - this.response.appendString(Emulator.getConfig().getValue("username") + "\t" + Emulator.version + "\t" + this.client.getHabbo().getHabboInfo().getId() + "\t" + this.client.getHabbo().getHabboInfo().getUsername() + "\t" + this.client.getHabbo().getHabboInfo().getLook() + "\t" + this.client.getHabbo().getHabboInfo().getCredits() + "\t" + FASTFOOD_KEY); + this.response.appendString(Emulator.getConfig().getValue("username") + "\t" + Emulator.VERSION + "\t" + this.client.getHabbo().getHabboInfo().getId() + "\t" + this.client.getHabbo().getHabboInfo().getUsername() + "\t" + this.client.getHabbo().getHabboInfo().getLook() + "\t" + this.client.getHabbo().getHabboInfo().getCredits() + "\t" + FASTFOOD_KEY); this.response.appendString("gameServerHost"); this.response.appendString("google.com"); this.response.appendString("gameServerPort"); diff --git a/src/main/java/com/eu/habbo/messages/outgoing/inventory/AvatarEffectsMessageComposer.java b/src/main/java/com/eu/habbo/messages/outgoing/inventory/AvatarEffectsMessageComposer.java index 4b8ebd88..113f9609 100644 --- a/src/main/java/com/eu/habbo/messages/outgoing/inventory/AvatarEffectsMessageComposer.java +++ b/src/main/java/com/eu/habbo/messages/outgoing/inventory/AvatarEffectsMessageComposer.java @@ -33,7 +33,7 @@ public class AvatarEffectsMessageComposer extends MessageComposer { AvatarEffectsMessageComposer.this.response.appendInt(effect.getEffect()); AvatarEffectsMessageComposer.this.response.appendInt(0); AvatarEffectsMessageComposer.this.response.appendInt(effect.getDuration() > 0 ? effect.getDuration() : Integer.MAX_VALUE); - AvatarEffectsMessageComposer.this.response.appendInt((effect.getDuration() > 0 ? (effect.getTotal() - (effect.isActivated() ? 1 : 0)) : 0)); + AvatarEffectsMessageComposer.this.response.appendInt((effect.getDuration() > 0 ? (effect.getTotal() - booleanToInt(effect.isActivated())) : 0)); if(!effect.isActivated() && effect.getDuration() > 0) { AvatarEffectsMessageComposer.this.response.appendInt(0); diff --git a/src/main/java/com/eu/habbo/networking/camera/messages/outgoing/CameraLoginComposer.java b/src/main/java/com/eu/habbo/networking/camera/messages/outgoing/CameraLoginComposer.java index f8b97a0f..356e502b 100644 --- a/src/main/java/com/eu/habbo/networking/camera/messages/outgoing/CameraLoginComposer.java +++ b/src/main/java/com/eu/habbo/networking/camera/messages/outgoing/CameraLoginComposer.java @@ -14,6 +14,6 @@ public class CameraLoginComposer extends CameraOutgoingMessage { public void compose(Channel channel) { this.appendString(Emulator.getConfig().getValue("username").trim()); this.appendString(Emulator.getConfig().getValue("password").trim()); - this.appendString(Emulator.version); + this.appendString(Emulator.VERSION); } } \ No newline at end of file diff --git a/src/main/java/com/eu/habbo/plugin/PluginManager.java b/src/main/java/com/eu/habbo/plugin/PluginManager.java index 8ff991c0..62ab70cc 100644 --- a/src/main/java/com/eu/habbo/plugin/PluginManager.java +++ b/src/main/java/com/eu/habbo/plugin/PluginManager.java @@ -143,7 +143,7 @@ public class PluginManager { WordFilter.DEFAULT_REPLACEMENT = Emulator.getConfig().getValue("hotel.wordfilter.replacement"); CatalogManager.PURCHASE_COOLDOWN = Emulator.getConfig().getInt("hotel.catalog.purchase.cooldown"); CatalogManager.SORT_USING_ORDERNUM = Emulator.getConfig().getBoolean("hotel.catalog.items.display.ordernum"); - AchievementManager.TALENTTRACK_ENABLED = Emulator.getConfig().getBoolean("hotel.talenttrack.enabled"); + AchievementManager.TALENT_TRACK_ENABLED = Emulator.getConfig().getBoolean("hotel.talenttrack.enabled"); InteractionRoller.NO_RULES = Emulator.getConfig().getBoolean("hotel.room.rollers.norules"); RoomManager.SHOW_PUBLIC_IN_POPULAR_TAB = Emulator.getConfig().getBoolean("hotel.navigator.populartab.publics"); ApproveNameEvent.PET_NAME_LENGTH_MINIMUM = Emulator.getConfig().getInt("hotel.pets.name.length.min"); diff --git a/src/main/java/com/eu/habbo/util/ANSI.java b/src/main/java/com/eu/habbo/util/ANSI.java index 4c59761f..b72aacd4 100644 --- a/src/main/java/com/eu/habbo/util/ANSI.java +++ b/src/main/java/com/eu/habbo/util/ANSI.java @@ -4,13 +4,17 @@ import ch.qos.logback.core.pattern.color.ANSIConstants; public class ANSI { - public static final String RED = "\u001B[" + ANSIConstants.RED_FG + "m"; - public static final String GREEN = "\u001B[" + ANSIConstants.GREEN_FG + "m"; - public static final String YELLOW = "\u001B[" + ANSIConstants.YELLOW_FG + "m"; - public static final String BLUE = "\u001B[" + ANSIConstants.BLUE_FG + "m"; - public static final String MAGENTA = "\u001B[" + ANSIConstants.MAGENTA_FG + "m"; - public static final String CYAN = "\u001B[" + ANSIConstants.CYAN_FG + "m"; - public static final String WHITE = "\u001B[" + ANSIConstants.WHITE_FG + "m"; - public static final String DEFAULT = "\u001B[" + ANSIConstants.DEFAULT_FG + "m"; + private ANSI(){} + + private static final String HEADER = "\u001B["; + + public static final String RED = HEADER + ANSIConstants.RED_FG + "m"; + public static final String GREEN = HEADER + ANSIConstants.GREEN_FG + "m"; + public static final String YELLOW = HEADER + ANSIConstants.YELLOW_FG + "m"; + public static final String BLUE = HEADER + ANSIConstants.BLUE_FG + "m"; + public static final String MAGENTA = HEADER + ANSIConstants.MAGENTA_FG + "m"; + public static final String CYAN = HEADER + ANSIConstants.CYAN_FG + "m"; + public static final String WHITE = HEADER + ANSIConstants.WHITE_FG + "m"; + public static final String DEFAULT = HEADER + ANSIConstants.DEFAULT_FG + "m"; }