diff options
author | olim <bobq4582@gmail.com> | 2024-04-30 12:34:20 +0100 |
---|---|---|
committer | olim <bobq4582@gmail.com> | 2024-07-01 14:26:13 +0100 |
commit | e39a80fa3e4f0e81137e1c9825decb52ae4344ff (patch) | |
tree | 0c09d8707b44a5915410822941d5ea61e0b62820 /src/main/java/de/hysky/skyblocker/skyblock/crimson | |
parent | b700db32f2bccde3b6381d5d28136814c9fe9e37 (diff) | |
download | Skyblocker-e39a80fa3e4f0e81137e1c9825decb52ae4344ff.tar.gz Skyblocker-e39a80fa3e4f0e81137e1c9825decb52ae4344ff.tar.bz2 Skyblocker-e39a80fa3e4f0e81137e1c9825decb52ae4344ff.zip |
add swiftness helper
works but for some reason some block updates are not sent to the function so sometimes dose not update
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/skyblock/crimson')
-rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DojoManager.java | 16 | ||||
-rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/SwiftnessTestHelper.java | 28 |
2 files changed, 42 insertions, 2 deletions
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 f133746a..8e8482ea 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 @@ -1,12 +1,15 @@ package de.hysky.skyblocker.skyblock.crimson.dojo; +import de.hysky.skyblocker.skyblock.dungeon.secrets.DungeonManager; import de.hysky.skyblocker.utils.Location; import de.hysky.skyblocker.utils.Utils; +import de.hysky.skyblocker.utils.scheduler.Scheduler; 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.world.updater.WorldUpdater; import java.util.Arrays; import java.util.regex.Matcher; @@ -16,7 +19,7 @@ public class DojoManager { private static final String START_MESSAGE = "§e[NPC] §eMaster Tao§f: Ahhh, here we go! Let's get you into the Arena."; private static final Pattern TEST_OF_PATTERN = Pattern.compile("\\s+Test of (\\w+) OBJECTIVES"); - private static final String CHALLENGE_FINISHED_REGEX = "\\s+CHALLENGE ((COMPLEATED)|(FAILED))"; + private static final String CHALLENGE_FINISHED_REGEX = "\\s+CHALLENGE ((COMPLETED)|(FAILED))"; protected enum DojoChallenges { NONE("none"), @@ -41,13 +44,17 @@ public class DojoManager { public static void init() { ClientReceiveMessageEvents.GAME.register(DojoManager::onMessage); WorldRenderEvents.AFTER_TRANSLUCENT.register(DojoManager::render); + Scheduler.INSTANCE.scheduleCyclic(DojoManager::update, 5); ClientPlayConnectionEvents.JOIN.register((_handler, _sender, _client) -> reset()); } + + private static void reset() { inAreana = false; currentChallenge = DojoChallenges.NONE; + SwiftnessTestHelper.reset(); } @@ -78,6 +85,12 @@ public class DojoManager { } } + private static void update() { + if (Utils.getLocation() != Location.CRIMSON_ISLE || !inAreana) { + return; + } + } + private static void render(WorldRenderContext context) { if (Utils.getLocation() != Location.CRIMSON_ISLE || !inAreana) { return; @@ -86,7 +99,6 @@ public class DojoManager { case SWIFTNESS -> SwiftnessTestHelper.render(context); case TENACITY -> TenacityTestHelper.render(context); } - //System.out.println(currentChallenge); } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/SwiftnessTestHelper.java b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/SwiftnessTestHelper.java index 580c7d87..d2a9ae57 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/SwiftnessTestHelper.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/SwiftnessTestHelper.java @@ -1,12 +1,40 @@ package de.hysky.skyblocker.skyblock.crimson.dojo; +import de.hysky.skyblocker.utils.render.RenderHelper; import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.client.MinecraftClient; +import net.minecraft.network.packet.s2c.play.BlockUpdateS2CPacket; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Box; public class SwiftnessTestHelper { + private static BlockPos lastBlock; + protected static void reset() { + lastBlock = null; + } + + //dojo cwords: + //-189 99 -580 + //-223 99 -614 + + public static void blockUpdate(BlockUpdateS2CPacket packet) { + if (DojoManager.currentChallenge == DojoManager.DojoChallenges.SWIFTNESS) { + if (packet.getState().isOf(Blocks.LIME_WOOL)) { + lastBlock = packet.getPos(); + } + } + } protected static void render(WorldRenderContext context) { + if (DojoManager.currentChallenge != DojoManager.DojoChallenges.SWIFTNESS || lastBlock == null) { + return; + } + RenderHelper.renderOutline(context,new Box(lastBlock),new float[]{0f,1f,0f},3,true); } } |