From 156862ba0683f883a66348f31b5bf98de9022e42 Mon Sep 17 00:00:00 2001 From: 0xTas Date: Sat, 26 Sep 2026 06:04:17 -0700 Subject: [PATCH 1/2] Rework Fullbright night vision setting --- .../mixin/render/LightmapTextureManagerMixin.java | 15 ++++++++++++--- .../lambda/module/modules/render/Fullbright.kt | 15 ++++++++------- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/lambda/mixin/render/LightmapTextureManagerMixin.java b/src/main/java/com/lambda/mixin/render/LightmapTextureManagerMixin.java index 9b750296a..6f4d1debc 100644 --- a/src/main/java/com/lambda/mixin/render/LightmapTextureManagerMixin.java +++ b/src/main/java/com/lambda/mixin/render/LightmapTextureManagerMixin.java @@ -39,10 +39,19 @@ public class LightmapTextureManagerMixin { @Final private GpuTexture glTexture; - @Inject(method = "update", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/profiler/Profiler;pop()V", shift = At.Shift.BEFORE)) + @Inject( + method = "update", + at = @At( + value = "INVOKE", + target = "Lnet/minecraft/client/gl/MappableRingBuffer;rotate()V", + shift = At.Shift.AFTER + ) + ) private void injectUpdate(float tickProgress, CallbackInfo ci) { - if (Fullbright.INSTANCE.isEnabled() || XRay.INSTANCE.isEnabled()) { - RenderSystem.getDevice().createCommandEncoder().clearColorTexture(glTexture, ColorHelper.fullAlpha(ColorHelper.getWhite(1.0f))); + if (XRay.INSTANCE.isEnabled() || (Fullbright.INSTANCE.isEnabled() && !Fullbright.getNightVision())) { + RenderSystem.getDevice() + .createCommandEncoder() + .clearColorTexture(glTexture, ColorHelper.fullAlpha(ColorHelper.getWhite(1.0f))); } } diff --git a/src/main/kotlin/com/lambda/module/modules/render/Fullbright.kt b/src/main/kotlin/com/lambda/module/modules/render/Fullbright.kt index 09e15863c..9eb06d0b9 100644 --- a/src/main/kotlin/com/lambda/module/modules/render/Fullbright.kt +++ b/src/main/kotlin/com/lambda/module/modules/render/Fullbright.kt @@ -20,7 +20,7 @@ package com.lambda.module.modules.render import com.lambda.config.entries.Setting.Companion.onValueChange import com.lambda.context.SafeContext import com.lambda.event.events.TickEvent -import com.lambda.event.listener.SafeListener.Companion.listenOnce +import com.lambda.event.listener.SafeListener.Companion.listen import com.lambda.module.Module import com.lambda.module.tag.ModuleTag import net.minecraft.entity.effect.StatusEffectInstance @@ -31,17 +31,18 @@ object Fullbright : Module( description = "Makes everything brighter", tag = ModuleTag.RENDER, ) { - private val nightVision by setting("Night Vision", false, description = "Adds the night vision effect client-side") - .onValueChange { _, to -> setNightVision(to) } + @JvmStatic val nightVision by setting("Night Vision", false, description = "Use client-side night vision for better compatibility with shaders") + .onValueChange { _, to -> if (isEnabled) setNightVision(to) } private val instance = StatusEffectInstance(StatusEffects.NIGHT_VISION, -1, 1, false, false) init { - listenOnce { - if (nightVision && !player.hasStatusEffect(StatusEffects.NIGHT_VISION)) setNightVision(true) + onDisable { + if (nightVision && player.hasStatusEffect(StatusEffects.NIGHT_VISION)) setNightVision(false) + } - // Destroy the listener - true + listen { + if (nightVision && !player.hasStatusEffect(StatusEffects.NIGHT_VISION)) setNightVision(true) } } From 90213feb7ee7171862612dc078614a003512eb4b Mon Sep 17 00:00:00 2001 From: 0xTas Date: Mon, 28 Sep 2026 04:50:41 -0700 Subject: [PATCH 2/2] Reformat inject annotation onto a single line. --- .../lambda/mixin/render/LightmapTextureManagerMixin.java | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/main/java/com/lambda/mixin/render/LightmapTextureManagerMixin.java b/src/main/java/com/lambda/mixin/render/LightmapTextureManagerMixin.java index 6f4d1debc..33b569f1a 100644 --- a/src/main/java/com/lambda/mixin/render/LightmapTextureManagerMixin.java +++ b/src/main/java/com/lambda/mixin/render/LightmapTextureManagerMixin.java @@ -39,14 +39,7 @@ public class LightmapTextureManagerMixin { @Final private GpuTexture glTexture; - @Inject( - method = "update", - at = @At( - value = "INVOKE", - target = "Lnet/minecraft/client/gl/MappableRingBuffer;rotate()V", - shift = At.Shift.AFTER - ) - ) + @Inject(method = "update", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gl/MappableRingBuffer;rotate()V", shift = At.Shift.AFTER)) private void injectUpdate(float tickProgress, CallbackInfo ci) { if (XRay.INSTANCE.isEnabled() || (Fullbright.INSTANCE.isEnabled() && !Fullbright.getNightVision())) { RenderSystem.getDevice()