aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de
diff options
context:
space:
mode:
authorolim <bobq4582@gmail.com>2024-05-02 21:57:06 +0100
committerolim <bobq4582@gmail.com>2024-07-01 14:26:13 +0100
commit599117db34159eb04cc0ae2eb91b7dc67d9bbd88 (patch)
treebdcbc9073dbef130a68fdd38562f14cc863c61d3 /src/main/java/de
parentb69fb532750981808b3632aa84851de0ed539b1a (diff)
downloadSkyblocker-599117db34159eb04cc0ae2eb91b7dc67d9bbd88.tar.gz
Skyblocker-599117db34159eb04cc0ae2eb91b7dc67d9bbd88.tar.bz2
Skyblocker-599117db34159eb04cc0ae2eb91b7dc67d9bbd88.zip
make it so all block updates are recived
this fixes swiftness and mastery solver
Diffstat (limited to 'src/main/java/de')
-rw-r--r--src/main/java/de/hysky/skyblocker/mixins/ClientPlayNetworkHandlerMixin.java3
-rw-r--r--src/main/java/de/hysky/skyblocker/mixins/ClientWorldMixin.java24
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DojoManager.java12
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/ForceTestHelper.java9
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/MasteryTestHelper.java10
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/SwiftnessTestHelper.java9
6 files changed, 48 insertions, 19 deletions
diff --git a/src/main/java/de/hysky/skyblocker/mixins/ClientPlayNetworkHandlerMixin.java b/src/main/java/de/hysky/skyblocker/mixins/ClientPlayNetworkHandlerMixin.java
index 454d3fb2..cd0fb0ea 100644
--- a/src/main/java/de/hysky/skyblocker/mixins/ClientPlayNetworkHandlerMixin.java
+++ b/src/main/java/de/hysky/skyblocker/mixins/ClientPlayNetworkHandlerMixin.java
@@ -50,9 +50,6 @@ public abstract class ClientPlayNetworkHandlerMixin {
BeaconHighlighter.beaconPositions.add(packet.getPos());
}
}
- if (Utils.getLocation() == Location.CRIMSON_ISLE) {
- DojoManager.onBlockUpdate(packet);
- }
}
@Inject(method = "method_37472", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/world/ClientWorld;removeEntity(ILnet/minecraft/entity/Entity$RemovalReason;)V"))
diff --git a/src/main/java/de/hysky/skyblocker/mixins/ClientWorldMixin.java b/src/main/java/de/hysky/skyblocker/mixins/ClientWorldMixin.java
new file mode 100644
index 00000000..ff0b1ae6
--- /dev/null
+++ b/src/main/java/de/hysky/skyblocker/mixins/ClientWorldMixin.java
@@ -0,0 +1,24 @@
+package de.hysky.skyblocker.mixins;
+
+
+import de.hysky.skyblocker.skyblock.crimson.dojo.DojoManager;
+import de.hysky.skyblocker.utils.Location;
+import de.hysky.skyblocker.utils.Utils;
+import net.minecraft.block.BlockState;
+import net.minecraft.client.world.ClientWorld;
+import net.minecraft.util.math.BlockPos;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.injection.At;
+import org.spongepowered.asm.mixin.injection.Inject;
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
+
+@Mixin(ClientWorld.class)
+public class ClientWorldMixin {
+
+ @Inject(method = "handleBlockUpdate", at = @At("RETURN"))
+ private void skyblocker$handleBlockUpdate(BlockPos pos, BlockState state, int flags, CallbackInfo ci) {
+ if (Utils.getLocation() == Location.CRIMSON_ISLE) {
+ DojoManager.onBlockUpdate(pos.toImmutable(), state);
+ }
+ }
+}
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 b24d3d49..2d6b98f8 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
@@ -9,6 +9,8 @@ import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext;
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderEvents;
import net.fabricmc.fabric.api.event.player.AttackEntityCallback;
import net.fabricmc.fabric.api.event.player.PlayerBlockBreakEvents;
+import net.minecraft.block.BlockState;
+import net.minecraft.block.Blocks;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.session.telemetry.WorldLoadedEvent;
import net.minecraft.client.world.ClientWorld;
@@ -21,6 +23,7 @@ import net.minecraft.text.Text;
import net.minecraft.util.ActionResult;
import net.minecraft.util.Hand;
import net.minecraft.util.hit.EntityHitResult;
+import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import java.util.Arrays;
@@ -139,15 +142,16 @@ public class DojoManager {
/**
* when a block is updated check the current challenge and send the packet to correct helper
- * @param packet block update packet
+ * @param pos the location of the updated block
+ * @param state the state of the new block
*/
- public static void onBlockUpdate(BlockUpdateS2CPacket packet) {
+ public static void onBlockUpdate(BlockPos pos, BlockState state) {
if (Utils.getLocation() != Location.CRIMSON_ISLE || !inArena) {
return;
}
switch (currentChallenge) {
- case SWIFTNESS -> SwiftnessTestHelper.onBlockUpdate(packet);
- case MASTERY -> MasteryTestHelper.onBlockUpdate(packet);
+ case SWIFTNESS -> SwiftnessTestHelper.onBlockUpdate(pos, state);
+ case MASTERY -> MasteryTestHelper.onBlockUpdate(pos, state);
}
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/ForceTestHelper.java b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/ForceTestHelper.java
index 1f29f634..d737146a 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/ForceTestHelper.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/ForceTestHelper.java
@@ -4,6 +4,7 @@ import de.hysky.skyblocker.utils.render.RenderHelper;
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext;
import net.minecraft.entity.Entity;
import net.minecraft.entity.mob.ZombieEntity;
+import net.minecraft.text.MutableText;
import net.minecraft.text.Text;
import net.minecraft.util.Formatting;
import net.minecraft.util.math.Vec3d;
@@ -58,13 +59,13 @@ public class ForceTestHelper {
for (Map.Entry<ZombieEntity, Long> zombie : zombies.entrySet()) {
float secondsTime = Math.max((zombie.getValue() - currentTime) / 1000f, 0);
- Text text;
+ MutableText text = Text.literal(FORMATTER.format(secondsTime));
if (secondsTime > 1) {
- text = Text.literal(FORMATTER.format(secondsTime)).formatted(Formatting.GREEN);
+ text = text.formatted(Formatting.GREEN);
} else if (secondsTime > 0) {
- text = Text.literal(FORMATTER.format(secondsTime)).formatted(Formatting.YELLOW);
+ text = text.formatted(Formatting.YELLOW);
} else {
- text = Text.literal("Soon").formatted(Formatting.RED); //todo translate
+ text = text.formatted(Formatting.RED);
}
Vec3d lablePos = zombie.getKey().getEyePos();
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/MasteryTestHelper.java b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/MasteryTestHelper.java
index 76aa5209..8071a4af 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/MasteryTestHelper.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/MasteryTestHelper.java
@@ -2,7 +2,9 @@ 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.BlockState;
import net.minecraft.block.Blocks;
+import net.minecraft.client.MinecraftClient;
import net.minecraft.network.packet.s2c.play.BlockUpdateS2CPacket;
import net.minecraft.text.Text;
import net.minecraft.util.math.BlockPos;
@@ -13,6 +15,7 @@ import java.util.*;
public class MasteryTestHelper {
+
private static final float[] LIGHT_GRAY = {192 / 255f, 192 / 255f, 192 / 255f};
private static final DecimalFormat FORMATTER = new DecimalFormat("0.00");
@@ -24,13 +27,12 @@ public class MasteryTestHelper {
endTimes.clear();
}
- public static void onBlockUpdate(BlockUpdateS2CPacket packet) {
- BlockPos pos = packet.getPos();
- if (packet.getState().isOf(Blocks.LIME_WOOL)) {
+ public static void onBlockUpdate(BlockPos pos, BlockState state) {
+ if (state.isOf(Blocks.LIME_WOOL)) {
blockOrder.add(pos);
endTimes.put(pos, System.currentTimeMillis() + 6850);
}
- if (packet.getState().isAir()) {
+ if (state.isAir()) {
blockOrder.remove(pos);
endTimes.remove(pos);
}
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 7243b45b..b7800d10 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
@@ -18,9 +18,9 @@ public class SwiftnessTestHelper {
lastBlock = null;
}
- public static void onBlockUpdate(BlockUpdateS2CPacket packet) {
- if (packet.getState().isOf(Blocks.LIME_WOOL)) {
- lastBlock = packet.getPos();
+ public static void onBlockUpdate(BlockPos pos, BlockState state) {
+ if (state.isOf(Blocks.LIME_WOOL)) {
+ lastBlock = pos.toImmutable();
}
}
@@ -28,6 +28,7 @@ public class SwiftnessTestHelper {
if (lastBlock == null) {
return;
}
- RenderHelper.renderOutline(context, new Box(lastBlock), new float[]{0f, 1f, 0f}, 3, true);
+ System.out.println("render" + lastBlock);
+ RenderHelper.renderFilled(context,lastBlock, new float[]{0f, 1f, 0f}, 0.5f, true);
}
}