aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker/skyblock
diff options
context:
space:
mode:
authorAaron <51387595+AzureAaron@users.noreply.github.com>2024-02-19 13:39:16 -0500
committerGitHub <noreply@github.com>2024-02-19 13:39:16 -0500
commit12a966eec12b21166bf66ba2ec78bc00d92427a8 (patch)
tree164b7e75c8dd5b5800e3aa58a27b3f23c1cfed13 /src/main/java/de/hysky/skyblocker/skyblock
parent85462f010e16f96b49e1a7f4cc5f2aea56daba4a (diff)
downloadSkyblocker-12a966eec12b21166bf66ba2ec78bc00d92427a8.tar.gz
Skyblocker-12a966eec12b21166bf66ba2ec78bc00d92427a8.tar.bz2
Skyblocker-12a966eec12b21166bf66ba2ec78bc00d92427a8.zip
Fix beacon highlights persisting after the boss dies (#554)
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/skyblock')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/end/BeaconHighlighter.java19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/end/BeaconHighlighter.java b/src/main/java/de/hysky/skyblocker/skyblock/end/BeaconHighlighter.java
index f69fca6d..6c89a07c 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/end/BeaconHighlighter.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/end/BeaconHighlighter.java
@@ -3,8 +3,11 @@ package de.hysky.skyblocker.skyblock.end;
import de.hysky.skyblocker.config.SkyblockerConfigManager;
import de.hysky.skyblocker.utils.Utils;
import de.hysky.skyblocker.utils.render.RenderHelper;
+import net.fabricmc.fabric.api.client.message.v1.ClientReceiveMessageEvents;
+import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents;
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext;
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderEvents;
+import net.minecraft.text.Text;
import net.minecraft.util.math.BlockPos;
import java.util.ArrayList;
@@ -20,6 +23,20 @@ public class BeaconHighlighter {
*/
public static void init() {
WorldRenderEvents.AFTER_TRANSLUCENT.register(BeaconHighlighter::render);
+ ClientPlayConnectionEvents.JOIN.register((_handler, _sender, _client) -> reset());
+ ClientReceiveMessageEvents.GAME.register(BeaconHighlighter::onMessage);
+ }
+
+ private static void reset() {
+ beaconPositions.clear();
+ }
+
+ private static void onMessage(Text text, boolean overlay) {
+ if (Utils.isInTheEnd() && !overlay) {
+ String message = text.getString();
+
+ if (message.contains("SLAYER QUEST COMPLETE!") || message.contains("NICE! SLAYER BOSS SLAIN!")) reset();
+ }
}
/**
@@ -28,7 +45,7 @@ public class BeaconHighlighter {
*
* @param context An instance of WorldRenderContext for the RenderHelper to use
*/
- public static void render(WorldRenderContext context) {
+ private static void render(WorldRenderContext context) {
if (Utils.isInTheEnd() && SkyblockerConfigManager.get().slayer.endermanSlayer.highlightBeacons) {
for (BlockPos pos : beaconPositions) {
RenderHelper.renderFilled(context, pos, RED_COLOR_COMPONENTS, 0.5f, false);