aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker/skyblock/crimson
diff options
context:
space:
mode:
authorolim <bobq4582@gmail.com>2024-04-30 12:34:20 +0100
committerolim <bobq4582@gmail.com>2024-07-01 14:26:13 +0100
commite39a80fa3e4f0e81137e1c9825decb52ae4344ff (patch)
tree0c09d8707b44a5915410822941d5ea61e0b62820 /src/main/java/de/hysky/skyblocker/skyblock/crimson
parentb700db32f2bccde3b6381d5d28136814c9fe9e37 (diff)
downloadSkyblocker-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.java16
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/SwiftnessTestHelper.java28
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);
}
}