aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker/mixin
diff options
context:
space:
mode:
authorKevinthegreat <92656833+kevinthegreat1@users.noreply.github.com>2024-03-14 15:04:20 -0400
committerKevinthegreat <92656833+kevinthegreat1@users.noreply.github.com>2024-03-14 15:04:20 -0400
commite132d040bb9c068a956603863fbb88258e1a41cc (patch)
tree7d3597c12bdaaf92163debadf2ee6093ed3a07fc /src/main/java/de/hysky/skyblocker/mixin
parent26cf371c823d36bb289577914b3f52ffd4b924d5 (diff)
downloadSkyblocker-e132d040bb9c068a956603863fbb88258e1a41cc.tar.gz
Skyblocker-e132d040bb9c068a956603863fbb88258e1a41cc.tar.bz2
Skyblocker-e132d040bb9c068a956603863fbb88258e1a41cc.zip
Fix bugs with secret detection
Fix secret item detection with Personal Deleter Add trapped chest detection for mimics Add locked chest detection and set secret as missing if chest is locked Fix translatable text in Room
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/mixin')
-rw-r--r--src/main/java/de/hysky/skyblocker/mixin/ClientPlayNetworkHandlerMixin.java13
-rw-r--r--src/main/java/de/hysky/skyblocker/mixin/ClientWorldMixin.java20
2 files changed, 21 insertions, 12 deletions
diff --git a/src/main/java/de/hysky/skyblocker/mixin/ClientPlayNetworkHandlerMixin.java b/src/main/java/de/hysky/skyblocker/mixin/ClientPlayNetworkHandlerMixin.java
index 4c414212..df2fcd4f 100644
--- a/src/main/java/de/hysky/skyblocker/mixin/ClientPlayNetworkHandlerMixin.java
+++ b/src/main/java/de/hysky/skyblocker/mixin/ClientPlayNetworkHandlerMixin.java
@@ -4,20 +4,16 @@ import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import com.llamalad7.mixinextras.injector.WrapWithCondition;
import com.llamalad7.mixinextras.sugar.Local;
import de.hysky.skyblocker.skyblock.FishingHelper;
-import de.hysky.skyblocker.skyblock.end.TheEnd;
import de.hysky.skyblocker.skyblock.dungeon.DungeonScore;
-import de.hysky.skyblocker.skyblock.dungeon.secrets.DungeonManager;
import de.hysky.skyblocker.skyblock.end.BeaconHighlighter;
+import de.hysky.skyblocker.skyblock.end.TheEnd;
import de.hysky.skyblocker.skyblock.waypoint.MythologicalRitual;
import de.hysky.skyblocker.utils.SlayerUtils;
import de.hysky.skyblocker.utils.Utils;
import net.minecraft.block.Blocks;
-import net.minecraft.client.MinecraftClient;
import net.minecraft.client.network.ClientPlayNetworkHandler;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityStatuses;
-import net.minecraft.entity.ItemEntity;
-import net.minecraft.entity.LivingEntity;
import net.minecraft.network.packet.s2c.play.BlockUpdateS2CPacket;
import net.minecraft.network.packet.s2c.play.EntityStatusS2CPacket;
import net.minecraft.network.packet.s2c.play.ParticleS2CPacket;
@@ -27,7 +23,6 @@ import org.slf4j.Logger;
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.ModifyVariable;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(ClientPlayNetworkHandler.class)
@@ -42,12 +37,6 @@ public abstract class ClientPlayNetworkHandlerMixin {
}
}
- @ModifyVariable(method = "onItemPickupAnimation", at = @At(value = "STORE", ordinal = 0))
- private ItemEntity skyblocker$onItemPickup(ItemEntity itemEntity, @Local LivingEntity collector) {
- DungeonManager.onItemPickup(itemEntity, collector, collector == MinecraftClient.getInstance().player);
- return itemEntity;
- }
-
@WrapWithCondition(method = "onEntityPassengersSet", at = @At(value = "INVOKE", target = "Lorg/slf4j/Logger;warn(Ljava/lang/String;)V", remap = false))
private boolean skyblocker$cancelEntityPassengersWarning(Logger instance, String msg) {
return !Utils.isOnHypixel();
diff --git a/src/main/java/de/hysky/skyblocker/mixin/ClientWorldMixin.java b/src/main/java/de/hysky/skyblocker/mixin/ClientWorldMixin.java
new file mode 100644
index 00000000..836fbcc9
--- /dev/null
+++ b/src/main/java/de/hysky/skyblocker/mixin/ClientWorldMixin.java
@@ -0,0 +1,20 @@
+package de.hysky.skyblocker.mixin;
+
+import de.hysky.skyblocker.skyblock.dungeon.secrets.DungeonManager;
+import net.minecraft.client.world.ClientWorld;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.ItemEntity;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.injection.At;
+import org.spongepowered.asm.mixin.injection.ModifyVariable;
+
+@Mixin(ClientWorld.class)
+public class ClientWorldMixin {
+ @ModifyVariable(method = "removeEntity", at = @At(value = "LOAD", ordinal = 1))
+ private Entity skyblocker$onEntityRemoved(Entity entity) {
+ if (entity instanceof ItemEntity itemEntity) {
+ DungeonManager.onItemPickup(itemEntity);
+ }
+ return entity;
+ }
+}