diff options
author | Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> | 2024-03-14 15:04:20 -0400 |
---|---|---|
committer | Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> | 2024-03-14 15:04:20 -0400 |
commit | e132d040bb9c068a956603863fbb88258e1a41cc (patch) | |
tree | 7d3597c12bdaaf92163debadf2ee6093ed3a07fc /src/main/java/de/hysky/skyblocker/mixin | |
parent | 26cf371c823d36bb289577914b3f52ffd4b924d5 (diff) | |
download | Skyblocker-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.java | 13 | ||||
-rw-r--r-- | src/main/java/de/hysky/skyblocker/mixin/ClientWorldMixin.java | 20 |
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; + } +} |