diff options
| author | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2025-07-20 19:10:00 -0400 |
|---|---|---|
| committer | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2025-07-20 19:10:00 -0400 |
| commit | 65733f68a0f448766040ca144103bedad3adc8c7 (patch) | |
| tree | 066052406d1ce994fddb593fa0ff3cac2319d4e5 /src/main/java | |
| parent | d6a469701152e1bf3c02c0628503bd95c5b34f85 (diff) | |
| download | Skyblocker-65733f68a0f448766040ca144103bedad3adc8c7.tar.gz Skyblocker-65733f68a0f448766040ca144103bedad3adc8c7.tar.bz2 Skyblocker-65733f68a0f448766040ca144103bedad3adc8c7.zip | |
Replace usages of GAME with ALLOW_GAME
Should fix some compatibility issues with Skyblocker's features not
working when other mods filter messages (if they respect Fabric's events
properly).
Fixes #1352
Diffstat (limited to 'src/main/java')
35 files changed, 169 insertions, 110 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/ItemPickupWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/ItemPickupWidget.java index 9ca0d1b3..234da0cb 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/ItemPickupWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/ItemPickupWidget.java @@ -44,7 +44,7 @@ public class ItemPickupWidget extends ComponentBasedWidget { super(Text.literal("Items"), Formatting.AQUA.getColorValue(), "Item Pickup"); instance = this; - ClientReceiveMessageEvents.GAME.register(instance::onChatMessage); + ClientReceiveMessageEvents.ALLOW_GAME.register(instance::onChatMessage); ClientPlayConnectionEvents.JOIN.register((_handler, _sender, _client) -> changingLobby = true); // Make changingLobby true for a short period while the player loads into a new lobby and their items are loading SkyblockEvents.LOCATION_CHANGE.register(location -> Scheduler.INSTANCE.schedule(() -> changingLobby = false, LOBBY_CHANGE_DELAY)); @@ -70,11 +70,11 @@ public class ItemPickupWidget extends ComponentBasedWidget { /** * Checks chat messages for a stack update message, then finds the items linked to it */ - private void onChatMessage(Text message, boolean overlay) { - if (!Formatting.strip(message.getString()).startsWith(SACKS_MESSAGE_START)) return; - if (!SkyblockerConfigManager.get().uiAndVisuals.itemPickup.sackNotifications) return; + private boolean onChatMessage(Text message, boolean overlay) { + if (!Formatting.strip(message.getString()).startsWith(SACKS_MESSAGE_START)) return true; + if (!SkyblockerConfigManager.get().uiAndVisuals.itemPickup.sackNotifications) return true; HoverEvent hoverEvent = message.getSiblings().getFirst().getStyle().getHoverEvent(); - if (hoverEvent == null || hoverEvent.getAction() != HoverEvent.Action.SHOW_TEXT) return; + if (hoverEvent == null || hoverEvent.getAction() != HoverEvent.Action.SHOW_TEXT) return true; String hoverMessage = ((HoverEvent.ShowText) hoverEvent).value().getString(); Matcher matcher = CHANGE_REGEX.matcher(hoverMessage); @@ -97,6 +97,8 @@ public class ItemPickupWidget extends ComponentBasedWidget { removedCount.put(item.getNeuName(), new ChangeData(item, existingCount - Formatters.parseNumber(matcher.group(2)).intValue(), System.currentTimeMillis())); } } + + return true; } @Override diff --git a/src/main/java/de/hysky/skyblocker/skyblock/PetCache.java b/src/main/java/de/hysky/skyblocker/skyblock/PetCache.java index 05824f9d..f195126f 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/PetCache.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/PetCache.java @@ -74,8 +74,7 @@ public class PetCache { } } }); - ClientReceiveMessageEvents.GAME.register(PetCache::onMessage); - ClientReceiveMessageEvents.GAME_CANCELED.register(PetCache::onMessage); + ClientReceiveMessageEvents.ALLOW_GAME.register(PetCache::onMessage); } public static void handlePetEquip(Slot slot, int slotId) { @@ -113,8 +112,8 @@ public class PetCache { /** * Parses the Auto Pet messages to try and detect the active pet */ - private static void onMessage(Text text, boolean overlay) { - if (!Utils.isOnSkyblock() || overlay) return; + private static boolean onMessage(Text text, boolean overlay) { + if (!Utils.isOnSkyblock() || overlay) return true; String stringified = Formatting.strip(text.getString()); Matcher matcher = AUTOPET_PATTERN.matcher(stringified); @@ -173,6 +172,8 @@ public class PetCache { } } } + + return true; } @Nullable diff --git a/src/main/java/de/hysky/skyblocker/skyblock/accessories/newyearcakes/NewYearCakesHelper.java b/src/main/java/de/hysky/skyblocker/skyblock/accessories/newyearcakes/NewYearCakesHelper.java index 253477b5..894103d2 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/accessories/newyearcakes/NewYearCakesHelper.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/accessories/newyearcakes/NewYearCakesHelper.java @@ -28,7 +28,7 @@ public class NewYearCakesHelper extends SimpleContainerSolver { private NewYearCakesHelper() { super("Auctions: \".*\""); - ClientReceiveMessageEvents.GAME.register(this::onChatMessage); + ClientReceiveMessageEvents.ALLOW_GAME.register(this::onChatMessage); } public static int getCakeYear(ItemStack stack) { @@ -57,10 +57,12 @@ public class NewYearCakesHelper extends SimpleContainerSolver { return cakes.computeIfAbsent(Utils.getProfile(), _profile -> new IntOpenHashSet()).add(year); } - private void onChatMessage(Text message, boolean overlay) { + private boolean onChatMessage(Text message, boolean overlay) { if (isEnabled()) { addCake(getCakeYear(NEW_YEAR_CAKE_PURCHASE, message.getString())); } + + return true; } @Override diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatPositionShare.java b/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatPositionShare.java index 6ccd7515..df45d959 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatPositionShare.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/chat/ChatPositionShare.java @@ -38,7 +38,7 @@ public class ChatPositionShare { ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> dispatcher.register( ClientCommandManager.literal("skyblocker").then(ClientCommandManager.literal("sharePosition").executes(context -> sharePlayerPosition(context.getSource()))) )); - ClientReceiveMessageEvents.GAME.register(ChatPositionShare::onMessage); + ClientReceiveMessageEvents.ALLOW_GAME.register(ChatPositionShare::onMessage); } private static int sharePlayerPosition(FabricClientCommandSource source) { @@ -47,13 +47,13 @@ public class ChatPositionShare { return Command.SINGLE_SUCCESS; } - private static void onMessage(Text text, boolean overlay) { + private static boolean onMessage(Text text, boolean overlay) { if (Utils.isOnSkyblock() && SkyblockerConfigManager.get().uiAndVisuals.waypoints.enableWaypoints) { String message = text.getString(); // prevents parsing skyblocker's own messages. Also prevents TH solver from parsing as it already has own waypoint if (message.startsWith("[Skyblocker]") || message.startsWith("§e[NPC] Treasure Hunter§f:")) { - return; + return true; } for (Pattern pattern : PATTERNS) { @@ -72,6 +72,8 @@ public class ChatPositionShare { } } } + + return true; } private static void requestWaypoint(String x, String y, String z, @NotNull String area) { diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chat/ConfirmationPromptHelper.java b/src/main/java/de/hysky/skyblocker/skyblock/chat/ConfirmationPromptHelper.java index d484e1ed..4121c1b7 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/chat/ConfirmationPromptHelper.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/chat/ConfirmationPromptHelper.java @@ -42,7 +42,7 @@ public class ConfirmationPromptHelper { private static long commandFoundAt; @Init public static void init() { - ClientReceiveMessageEvents.GAME.register(ConfirmationPromptHelper::onMessage); + ClientReceiveMessageEvents.ALLOW_GAME.register(ConfirmationPromptHelper::onMessage); ScreenEvents.AFTER_INIT.register((_client, screen, _scaledWidth, _scaledHeight) -> { //Don't check for the command being present in case the user opens the chat before the prompt is sent if (Utils.isOnSkyblock() && screen instanceof ChatScreen && SkyblockerConfigManager.get().chat.confirmationPromptHelper) { @@ -83,7 +83,7 @@ public class ConfirmationPromptHelper { return false; } - private static void onMessage(Text message, boolean overlay) { + private static boolean onMessage(Text message, boolean overlay) { if (Utils.isOnSkyblock() && !overlay && SkyblockerConfigManager.get().chat.confirmationPromptHelper && containsConfirmationPhrase(message)) { Optional<String> confirmationCommand = message.visit((style, asString) -> { ClickEvent event = style.getClickEvent(); @@ -105,5 +105,7 @@ public class ConfirmationPromptHelper { MinecraftClient.getInstance().player.sendMessage(Constants.PREFIX.get().append(Text.translatable("skyblocker.chat.confirmationPromptNotification")), false); } } + + return true; } } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chat/SkyblockXpMessages.java b/src/main/java/de/hysky/skyblocker/skyblock/chat/SkyblockXpMessages.java index 7e1e44fe..c2727eac 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/chat/SkyblockXpMessages.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/chat/SkyblockXpMessages.java @@ -20,10 +20,10 @@ public class SkyblockXpMessages { @Init public static void init() { - ClientReceiveMessageEvents.GAME.register(SkyblockXpMessages::onMessage); + ClientReceiveMessageEvents.ALLOW_GAME.register(SkyblockXpMessages::onMessage); } - private static void onMessage(Text text, boolean overlay) { + private static boolean onMessage(Text text, boolean overlay) { if (Utils.isOnSkyblock() && overlay && SkyblockerConfigManager.get().chat.skyblockXpMessages) { String message = text.getString(); Matcher matcher = SKYBLOCK_XP_PATTERN.matcher(message); @@ -39,5 +39,7 @@ public class SkyblockXpMessages { } } } + + return true; } } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/EggFinder.java b/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/EggFinder.java index 4d309713..dd6050d6 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/EggFinder.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/EggFinder.java @@ -68,7 +68,7 @@ public class EggFinder { } }); SkyblockEvents.LOCATION_CHANGE.register(EggFinder::handleLocationChange); - ClientReceiveMessageEvents.GAME.register(EggFinder::onChatMessage); + ClientReceiveMessageEvents.ALLOW_GAME.register(EggFinder::onChatMessage); WorldRenderEvents.AFTER_TRANSLUCENT.register(EggFinder::renderWaypoints); ClientTickEvents.END_CLIENT_TICK.register(client -> { if (!SkyblockerConfigManager.get().helpers.chocolateFactory.enableEggFinder || client.player == null) return; @@ -153,8 +153,8 @@ public class EggFinder { } } - private static void onChatMessage(Text text, boolean overlay) { - if (overlay || !SkyblockerConfigManager.get().helpers.chocolateFactory.enableEggFinder) return; + private static boolean onChatMessage(Text text, boolean overlay) { + if (overlay || !SkyblockerConfigManager.get().helpers.chocolateFactory.enableEggFinder) return true; Matcher matcher = eggFoundPattern.matcher(text.getString()); if (matcher.find()) { try { @@ -175,6 +175,8 @@ public class EggFinder { logger.error("[Skyblocker Egg Finder] Failed to find egg type for egg spawn message. Tried to match against: {}", matcher.group(0), e); } } + + return true; } @SuppressWarnings("DataFlowIssue") //Removes that pesky "unboxing of Integer might cause NPE" warning when we already know it's not null diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/TimeTowerReminder.java b/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/TimeTowerReminder.java index 28738e86..da1fa170 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/TimeTowerReminder.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/TimeTowerReminder.java @@ -34,11 +34,11 @@ public class TimeTowerReminder { @Init public static void init() { SkyblockEvents.JOIN.register(TimeTowerReminder::checkTempFile); - ClientReceiveMessageEvents.GAME.register(TimeTowerReminder::checkIfTimeTower); + ClientReceiveMessageEvents.ALLOW_GAME.register(TimeTowerReminder::checkIfTimeTower); } - public static void checkIfTimeTower(Message message, boolean overlay) { - if (!TIME_TOWER_PATTERN.matcher(message.getString()).matches() || scheduled) return; + public static boolean checkIfTimeTower(Message message, boolean overlay) { + if (!TIME_TOWER_PATTERN.matcher(message.getString()).matches() || scheduled) return true; Scheduler.INSTANCE.schedule(TimeTowerReminder::sendMessage, 60 * 60 * 20); // 1 hour scheduled = true; File tempFile = SkyblockerMod.CONFIG_DIR.resolve(TIME_TOWER_FILE).toFile(); @@ -47,7 +47,7 @@ public class TimeTowerReminder { tempFile.createNewFile(); } catch (IOException e) { LOGGER.error("[Skyblocker Time Tower Reminder] Failed to create temp file for Time Tower Reminder!", e); - return; + return true; } } @@ -56,6 +56,8 @@ public class TimeTowerReminder { } catch (IOException e) { LOGGER.error("[Skyblocker Time Tower Reminder] Failed to write to temp file for Time Tower Reminder!", e); } + + return true; } private static void sendMessage() { diff --git a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DojoManager.java b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DojoManager.java index 1aed5fa9..c304f070 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DojoManager.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DojoManager.java @@ -70,7 +70,7 @@ public class DojoManager { @Init public static void init() { - ClientReceiveMessageEvents.GAME.register(DojoManager::onMessage); + ClientReceiveMessageEvents.ALLOW_GAME.register(DojoManager::onMessage); WorldRenderEvents.AFTER_TRANSLUCENT.register(DojoManager::render); ClientPlayConnectionEvents.JOIN.register((_handler, _sender, _client) -> reset()); ClientEntityEvents.ENTITY_LOAD.register(DojoManager::onEntitySpawn); @@ -96,27 +96,27 @@ public class DojoManager { * @param text message * @param overlay is overlay */ - private static void onMessage(Text text, Boolean overlay) { + private static boolean onMessage(Text text, Boolean overlay) { if (!Utils.isInCrimson() || overlay) { - return; + return true; } if (Objects.equals(Formatting.strip(text.getString()), START_MESSAGE)) { inArena = true; //update the players ping getPing(); - return; + return true; } if (!inArena) { - return; + return true; } if (text.getString().matches(CHALLENGE_FINISHED_REGEX)) { reset(); - return; + return true; } //look for a message saying what challenge is starting if one has not already been found if (currentChallenge != DojoChallenges.NONE) { - return; + return true; } Matcher nextChallenge = TEST_OF_PATTERN.matcher(text.getString()); if (nextChallenge.matches()) { @@ -125,6 +125,8 @@ public class DojoManager { currentChallenge = DojoChallenges.NONE; } } + + return true; } private static void getPing() { diff --git a/src/main/java/de/hysky/skyblocker/skyblock/crimson/kuudra/Kuudra.java b/src/main/java/de/hysky/skyblocker/skyblock/crimson/kuudra/Kuudra.java index 75378a36..590dbe06 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/crimson/kuudra/Kuudra.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/crimson/kuudra/Kuudra.java @@ -15,10 +15,10 @@ public class Kuudra { @Init public static void init() { ClientPlayConnectionEvents.JOIN.register((_handler, _sender, _client) -> reset()); - ClientReceiveMessageEvents.GAME.register(Kuudra::onMessage); + ClientReceiveMessageEvents.ALLOW_GAME.register(Kuudra::onMessage); } - private static void onMessage(Text text, boolean overlay) { + private static boolean onMessage(Text text, boolean overlay) { if (Utils.isInKuudra() && !overlay) { String message = Formatting.strip(text.getString()); @@ -38,6 +38,8 @@ public class Kuudra { phase = KuudraPhase.KUUDRA_LAIR; } } + + return true; } private static void reset() { diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonScore.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonScore.java index 21b78ca7..fcb4ac81 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonScore.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonScore.java @@ -71,18 +71,16 @@ public class DungeonScore { Scheduler.INSTANCE.scheduleCyclic(DungeonScore::tick, 20); ClientPlayConnectionEvents.JOIN.register((handler, sender, client) -> reset()); DungeonEvents.DUNGEON_STARTED.register(DungeonScore::onDungeonStart); - ClientReceiveMessageEvents.GAME.register((message, overlay) -> { - if (overlay || !Utils.isInDungeons()) return; + ClientReceiveMessageEvents.ALLOW_GAME.register((message, overlay) -> { + if (overlay || !Utils.isInDungeons()) return true; String str = message.getString(); if (dungeonStarted) { checkMessageForDeaths(str); checkMessageForWatcher(str); if (floorHasMimics) checkMessageForMimic(str); //Only called when the message is not cancelled & isn't on the action bar, complementing MimicFilter } - }); - ClientReceiveMessageEvents.GAME_CANCELED.register((message, overlay) -> { - if (overlay || !Utils.isInDungeons() || !dungeonStarted) return; - checkMessageForDeaths(message.getString()); + + return true; }); } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/FireFreezeStaffTimer.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/FireFreezeStaffTimer.java index 14706ccd..be3ec69f 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/FireFreezeStaffTimer.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/FireFreezeStaffTimer.java @@ -21,7 +21,7 @@ public class FireFreezeStaffTimer { @Init public static void init() { HudLayerRegistrationCallback.EVENT.register(d -> d.attachLayerAfter(IdentifiedLayer.OVERLAY_MESSAGE, FIRE_FREEZE_STAFF_TIMER, FireFreezeStaffTimer::onDraw)); - ClientReceiveMessageEvents.GAME.register(FireFreezeStaffTimer::onChatMessage); + ClientReceiveMessageEvents.ALLOW_GAME.register(FireFreezeStaffTimer::onChatMessage); ClientPlayConnectionEvents.JOIN.register((handler, sender, client) -> FireFreezeStaffTimer.reset()); } @@ -56,10 +56,12 @@ public class FireFreezeStaffTimer { fireFreezeTimer = 0; } - private static void onChatMessage(Text text, boolean overlay) { + private static boolean onChatMessage(Text text, boolean overlay) { if (!overlay && SkyblockerConfigManager.get().dungeons.theProfessor.fireFreezeStaffTimer && Formatting.strip(text.getString()) .equals("[BOSS] The Professor: Oh? You found my Guardians' one weakness?")) { fireFreezeTimer = System.currentTimeMillis() + 5000L; } + + return true; } } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/GoldorWaypointsManager.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/GoldorWaypointsManager.java index 2fd04655..e6d6f235 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/GoldorWaypointsManager.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/GoldorWaypointsManager.java @@ -65,8 +65,7 @@ public class GoldorWaypointsManager { public static void init() { WorldRenderEvents.AFTER_TRANSLUCENT.register(GoldorWaypointsManager::render); ClientLifecycleEvents.CLIENT_STARTED.register(GoldorWaypointsManager::load); - ClientReceiveMessageEvents.GAME.register(GoldorWaypointsManager::onChatMessage); - ClientReceiveMessageEvents.GAME_CANCELED.register(GoldorWaypointsManager::onChatMessage); + ClientReceiveMessageEvents.ALLOW_GAME.register(GoldorWaypointsManager::onChatMessage); ClientPlayConnectionEvents.JOIN.register(((handler, sender, client) -> reset())); } @@ -153,8 +152,8 @@ public class GoldorWaypointsManager { return matcher.matches() ? matcher.group("name") : null; } - private static void onChatMessage(Text text, boolean overlay) { - if (overlay || !shouldProcessMsgs()) return; + private static boolean onChatMessage(Text text, boolean overlay) { + if (overlay || !shouldProcessMsgs()) return true; String message = text.getString(); if (active) { @@ -181,6 +180,8 @@ public class GoldorWaypointsManager { active = true; } } + + return true; } private static void renderWaypoints(WorldRenderContext context, ObjectArrayList<GoldorWaypoint> waypoints) { diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/GuardianHealth.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/GuardianHealth.java index c24356d9..54376641 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/GuardianHealth.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/GuardianHealth.java @@ -28,7 +28,7 @@ public class GuardianHealth { @Init public static void init() { - ClientReceiveMessageEvents.GAME.register(GuardianHealth::onChatMessage); + ClientReceiveMessageEvents.ALLOW_GAME.register(GuardianHealth::onChatMessage); ClientPlayConnectionEvents.JOIN.register((handler, sender, client) -> GuardianHealth.reset()); WorldRenderEvents.AFTER_ENTITIES.register(GuardianHealth::onWorldRender); } @@ -80,12 +80,14 @@ public class GuardianHealth { inBoss = false; } - private static void onChatMessage(Text text, boolean overlay) { + private static boolean onChatMessage(Text text, boolean overlay) { if (Utils.isInDungeons() && SkyblockerConfigManager.get().dungeons.theProfessor.floor3GuardianHealthDisplay && !inBoss) { String unformatted = Formatting.strip(text.getString()); inBoss = unformatted.equals("[BOSS] The Professor: I was burdened with terrible news recently..."); } + + return true; } private static boolean isGuardianName(ArmorStandEntity entity) { diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/ThreeWeirdos.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/ThreeWeirdos.java index 73f62bb6..c054497a 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/ThreeWeirdos.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/ThreeWeirdos.java @@ -32,19 +32,21 @@ public class ThreeWeirdos extends DungeonPuzzle { private ThreeWeirdos() { super("three-weirdos", "three-chests"); - ClientReceiveMessageEvents.GAME.register((message, overlay) -> { + ClientReceiveMessageEvents.ALLOW_GAME.register((message, overlay) -> { ClientWorld world = MinecraftClient.getInstance().world; - if (overlay || !shouldSolve() || !SkyblockerConfigManager.get().dungeons.puzzleSolvers.solveThreeWeirdos || world == null || !DungeonManager.isCurrentRoomMatched()) return; + if (overlay || !shouldSolve() || !SkyblockerConfigManager.get().dungeons.puzzleSolvers.solveThreeWeirdos || world == null || !DungeonManager.isCurrentRoomMatched()) return true; @SuppressWarnings("DataFlowIssue") Matcher matcher = PATTERN.matcher(Formatting.strip(message.getString())); - if (!matcher.matches()) return; + if (!matcher.matches()) return true; String name = matcher.group(1); Room room = DungeonManager.getCurrentRoom(); checkForNPC(world, room, new BlockPos(13, 69, 24), name); |
