From 9bddd04be96ae1eb29e190a6a3758de45d6c27e0 Mon Sep 17 00:00:00 2001 From: Allink <44676012+allinkdev@users.noreply.github.com> Date: Thu, 1 Jun 2023 21:02:39 +0100 Subject: [PATCH] Fix conflict with Sodium 1.20 (#113) The Sodium developers chose to change the map their ChunkTracker uses from a Long2IntOpenHashMap to a Long2BooleanOpenHashMap. This conflicts with our mixin, so I modified the mixin a small amount to use the new type. --- .../injection/mixin/fixes/sodium/MixinChunkTracker.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/sodium/MixinChunkTracker.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/sodium/MixinChunkTracker.java index d25594a4..1a144ac2 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/sodium/MixinChunkTracker.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/sodium/MixinChunkTracker.java @@ -18,7 +18,7 @@ package de.florianmichael.viafabricplus.injection.mixin.fixes.sodium; import de.florianmichael.viafabricplus.base.settings.groups.VisualSettings; -import it.unimi.dsi.fastutil.longs.Long2IntOpenHashMap; +import it.unimi.dsi.fastutil.longs.Long2BooleanOpenHashMap; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Pseudo; import org.spongepowered.asm.mixin.injection.At; @@ -28,10 +28,10 @@ import org.spongepowered.asm.mixin.injection.Redirect; @Mixin(targets = "me.jellysquid.mods.sodium.client.render.chunk.ChunkTracker", remap = false) public abstract class MixinChunkTracker { - @Redirect(method = "recalculateChunks", at = @At(value = "INVOKE", target = "Lit/unimi/dsi/fastutil/longs/Long2IntOpenHashMap;get(J)I")) - private int modifyRenderCondition(Long2IntOpenHashMap instance, long k) { + @Redirect(method = "recalculateChunks", at = @At(value = "INVOKE", target = "Lit/unimi/dsi/fastutil/longs/Long2BooleanOpenHashMap;get(J)Z")) + private boolean modifyRenderCondition(Long2BooleanOpenHashMap instance, long k) { if (VisualSettings.INSTANCE.fixSodiumChunkRendering.getValue()) { - return instance.getOrDefault(k, -1); + return instance.getOrDefault(k, false); } return instance.get(k);