From ecbdb76acda825e0abd41539e036a8ff1b718fd9 Mon Sep 17 00:00:00 2001 From: personalized-advertising <265311956+personalized-advertising@users.noreply.github.com> Date: Wed, 22 Jul 2026 17:13:29 +0100 Subject: [PATCH 01/13] Update XRay.java --- common/src/main/java/pro/mikey/xray/XRay.java | 1 + 1 file changed, 1 insertion(+) diff --git a/common/src/main/java/pro/mikey/xray/XRay.java b/common/src/main/java/pro/mikey/xray/XRay.java index a5c7628..b03ad61 100644 --- a/common/src/main/java/pro/mikey/xray/XRay.java +++ b/common/src/main/java/pro/mikey/xray/XRay.java @@ -17,6 +17,7 @@ public enum XRay { INSTANCE; public static final String MOD_ID = "xray"; + public static final Identifier SERVER_DISABLE_CHANNEL = id("disable"); private static final Logger LOGGER = LogManager.getLogger(); public static final XPlatShim XPLAT = ServiceLoader.load(XPlatShim.class).findFirst().orElseThrow(); From 826d6058ea71a4b7c7751bb8b5ec5304ab4d25f1 Mon Sep 17 00:00:00 2001 From: personalized-advertising <265311956+personalized-advertising@users.noreply.github.com> Date: Wed, 22 Jul 2026 18:06:24 +0100 Subject: [PATCH 02/13] Update ScanController.java --- .../pro/mikey/xray/core/ScanController.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/common/src/main/java/pro/mikey/xray/core/ScanController.java b/common/src/main/java/pro/mikey/xray/core/ScanController.java index 3649c8b..3ab615a 100644 --- a/common/src/main/java/pro/mikey/xray/core/ScanController.java +++ b/common/src/main/java/pro/mikey/xray/core/ScanController.java @@ -51,6 +51,7 @@ public enum ScanController { // Draw states private boolean xrayActive = false; // Off by default + private boolean serverDisabled = false; public void init() { this.scanStore.load(); @@ -62,12 +63,15 @@ public void init() { // Public accessors public boolean isXRayActive() { - return this.xrayActive && Minecraft.getInstance().level != null && Minecraft.getInstance().player != null; + return this.xrayActive && !this.serverDisabled && Minecraft.getInstance().level != null && Minecraft.getInstance().player != null; } public void toggleXRay() { if (!xrayActive) // enable drawing { + if (serverDisabled) { + return; + } syncRenderList.clear(); // first, clear the buffer xrayActive = true; // then, enable drawing requestBlockFinder(true); // finally, force a refresh @@ -83,6 +87,17 @@ public void toggleXRay() { } } + public void disableOnServer() { + serverDisabled = true; + xrayActive = false; + syncRenderList.clear(); + OutlineRender.clearVBOs(); + } + + public void onDisconnect() { + serverDisabled = false; + } + public boolean isLavaActive() { return XRay.config().lavaActive.get(); } From aba9efc124f96abb5c2e7c7debc02dae030ba4b7 Mon Sep 17 00:00:00 2001 From: personalized-advertising <265311956+personalized-advertising@users.noreply.github.com> Date: Wed, 22 Jul 2026 18:06:58 +0100 Subject: [PATCH 03/13] Create ClientPacketListenerMixin.java --- .../mixins/ClientPacketListenerMixin.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 common/src/main/java/pro/mikey/xray/mixins/ClientPacketListenerMixin.java diff --git a/common/src/main/java/pro/mikey/xray/mixins/ClientPacketListenerMixin.java b/common/src/main/java/pro/mikey/xray/mixins/ClientPacketListenerMixin.java new file mode 100644 index 0000000..9a22ff1 --- /dev/null +++ b/common/src/main/java/pro/mikey/xray/mixins/ClientPacketListenerMixin.java @@ -0,0 +1,21 @@ +package pro.mikey.xray.mixins; + +import net.minecraft.client.multiplayer.ClientPacketListener; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; +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; +import pro.mikey.xray.XRay; +import pro.mikey.xray.core.ScanController; + +@Mixin(ClientPacketListener.class) +public class ClientPacketListenerMixin { + + @Inject(method = "handleCustomPayload(Lnet/minecraft/network/protocol/common/custom/CustomPacketPayload;)V", at = @At("HEAD")) + private void onCustomPayload(CustomPacketPayload payload, CallbackInfo ci) { + if (XRay.SERVER_DISABLE_CHANNEL.equals(payload.type().id())) { + ScanController.INSTANCE.disableOnServer(); + } + } +} From 5d418d3ed38da898306fc1ab763fe052c594ede8 Mon Sep 17 00:00:00 2001 From: personalized-advertising <265311956+personalized-advertising@users.noreply.github.com> Date: Wed, 22 Jul 2026 18:07:48 +0100 Subject: [PATCH 04/13] Create ClientCommonPacketListenerMixin.java --- .../ClientCommonPacketListenerMixin.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 common/src/main/java/pro/mikey/xray/mixins/ClientCommonPacketListenerMixin.java diff --git a/common/src/main/java/pro/mikey/xray/mixins/ClientCommonPacketListenerMixin.java b/common/src/main/java/pro/mikey/xray/mixins/ClientCommonPacketListenerMixin.java new file mode 100644 index 0000000..54524eb --- /dev/null +++ b/common/src/main/java/pro/mikey/xray/mixins/ClientCommonPacketListenerMixin.java @@ -0,0 +1,18 @@ +package pro.mikey.xray.mixins; + +import net.minecraft.client.multiplayer.ClientCommonPacketListenerImpl; +import net.minecraft.network.DisconnectionDetails; +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; +import pro.mikey.xray.core.ScanController; + +@Mixin(ClientCommonPacketListenerImpl.class) +public class ClientCommonPacketListenerMixin { + + @Inject(method = "onDisconnect(Lnet/minecraft/network/DisconnectionDetails;)V", at = @At("HEAD")) + private void onDisconnect(DisconnectionDetails details, CallbackInfo ci) { + ScanController.INSTANCE.onDisconnect(); + } +} From 5d16839ac9611eed0c2b8a5c02fe0ceee2f0e532 Mon Sep 17 00:00:00 2001 From: personalized-advertising <265311956+personalized-advertising@users.noreply.github.com> Date: Wed, 22 Jul 2026 18:08:45 +0100 Subject: [PATCH 05/13] Update xray.fabric.mixins.json --- fabric/src/main/resources/xray.fabric.mixins.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/fabric/src/main/resources/xray.fabric.mixins.json b/fabric/src/main/resources/xray.fabric.mixins.json index adce121..a20cf05 100644 --- a/fabric/src/main/resources/xray.fabric.mixins.json +++ b/fabric/src/main/resources/xray.fabric.mixins.json @@ -1,9 +1,11 @@ { "required": true, - "package": "pro.mikey.xray.fabric.mixins", + "package": "pro.mikey.xray.mixins", "compatibilityLevel": "JAVA_17", "client": [ - "LevelRendererMixin" + "ClientCommonPacketListenerMixin", + "ClientPacketListenerMixin", + "LevelMixin" ], "mixins": [ ], From 1e41b75b8c82c651e4d63a1de2c1c97508a24cd7 Mon Sep 17 00:00:00 2001 From: personalized-advertising <265311956+personalized-advertising@users.noreply.github.com> Date: Wed, 22 Jul 2026 18:13:43 +0100 Subject: [PATCH 06/13] Update xray.mixins.json --- fabric/src/main/resources/xray.mixins.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/fabric/src/main/resources/xray.mixins.json b/fabric/src/main/resources/xray.mixins.json index a551793..be3aca2 100644 --- a/fabric/src/main/resources/xray.mixins.json +++ b/fabric/src/main/resources/xray.mixins.json @@ -3,12 +3,14 @@ "package": "pro.mikey.xray.mixins", "compatibilityLevel": "JAVA_17", "client": [ - "LevelMixin" + "LevelMixin", + "ClientPacketListenerMixin", + "ClientCommonPacketListenerMixin" ], "mixins": [ ], "injectors": { - "defaultRequire": 1 + "defaultRequire": 1 }, "minVersion": "0.8" } From 2dc60ed2430f6da0e41db7be6a99c05fac641ca7 Mon Sep 17 00:00:00 2001 From: personalized-advertising <265311956+personalized-advertising@users.noreply.github.com> Date: Wed, 22 Jul 2026 18:13:54 +0100 Subject: [PATCH 07/13] Update xray.fabric.mixins.json --- fabric/src/main/resources/xray.fabric.mixins.json | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/fabric/src/main/resources/xray.fabric.mixins.json b/fabric/src/main/resources/xray.fabric.mixins.json index a20cf05..aca469a 100644 --- a/fabric/src/main/resources/xray.fabric.mixins.json +++ b/fabric/src/main/resources/xray.fabric.mixins.json @@ -1,16 +1,14 @@ { "required": true, - "package": "pro.mikey.xray.mixins", + "package": "pro.mikey.xray.fabric.mixins", "compatibilityLevel": "JAVA_17", "client": [ - "ClientCommonPacketListenerMixin", - "ClientPacketListenerMixin", - "LevelMixin" + "LevelRendererMixin" ], "mixins": [ ], "injectors": { - "defaultRequire": 1 + "defaultRequire": 1 }, "minVersion": "0.8" } From d5cdd476c0d4b53652f84e51a8d38e479bcfcf6e Mon Sep 17 00:00:00 2001 From: personalized-advertising <265311956+personalized-advertising@users.noreply.github.com> Date: Wed, 22 Jul 2026 18:14:14 +0100 Subject: [PATCH 08/13] Update xray.mixins.json --- neoforge/src/main/resources/xray.mixins.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/neoforge/src/main/resources/xray.mixins.json b/neoforge/src/main/resources/xray.mixins.json index a551793..be3aca2 100644 --- a/neoforge/src/main/resources/xray.mixins.json +++ b/neoforge/src/main/resources/xray.mixins.json @@ -3,12 +3,14 @@ "package": "pro.mikey.xray.mixins", "compatibilityLevel": "JAVA_17", "client": [ - "LevelMixin" + "LevelMixin", + "ClientPacketListenerMixin", + "ClientCommonPacketListenerMixin" ], "mixins": [ ], "injectors": { - "defaultRequire": 1 + "defaultRequire": 1 }, "minVersion": "0.8" } From 3bbf04d542a5e6c614b0eb72ca42306856190c71 Mon Sep 17 00:00:00 2001 From: personalized-advertising <265311956+personalized-advertising@users.noreply.github.com> Date: Wed, 22 Jul 2026 18:15:05 +0100 Subject: [PATCH 09/13] Update xray.mixins.json --- neoforge/src/main/resources/xray.mixins.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/neoforge/src/main/resources/xray.mixins.json b/neoforge/src/main/resources/xray.mixins.json index be3aca2..637e252 100644 --- a/neoforge/src/main/resources/xray.mixins.json +++ b/neoforge/src/main/resources/xray.mixins.json @@ -10,7 +10,7 @@ "mixins": [ ], "injectors": { - "defaultRequire": 1 + "defaultRequire": 1 }, "minVersion": "0.8" } From 8aa31ac56f1158d4b14d7b30957a73f174ea00e6 Mon Sep 17 00:00:00 2001 From: personalized-advertising <265311956+personalized-advertising@users.noreply.github.com> Date: Wed, 22 Jul 2026 18:15:17 +0100 Subject: [PATCH 10/13] Update xray.mixins.json --- neoforge/src/main/resources/xray.mixins.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/neoforge/src/main/resources/xray.mixins.json b/neoforge/src/main/resources/xray.mixins.json index 637e252..5169e00 100644 --- a/neoforge/src/main/resources/xray.mixins.json +++ b/neoforge/src/main/resources/xray.mixins.json @@ -10,7 +10,7 @@ "mixins": [ ], "injectors": { - "defaultRequire": 1 + "defaultRequire": 1 }, "minVersion": "0.8" } From dc55237eedd399ff1a464c8c1c4a8f2979fd0d3c Mon Sep 17 00:00:00 2001 From: personalized-advertising <265311956+personalized-advertising@users.noreply.github.com> Date: Wed, 22 Jul 2026 18:15:37 +0100 Subject: [PATCH 11/13] Update xray.mixins.json --- fabric/src/main/resources/xray.mixins.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fabric/src/main/resources/xray.mixins.json b/fabric/src/main/resources/xray.mixins.json index be3aca2..5169e00 100644 --- a/fabric/src/main/resources/xray.mixins.json +++ b/fabric/src/main/resources/xray.mixins.json @@ -10,7 +10,7 @@ "mixins": [ ], "injectors": { - "defaultRequire": 1 + "defaultRequire": 1 }, "minVersion": "0.8" } From ad2b587119770095e8c114676ca781a144bc5451 Mon Sep 17 00:00:00 2001 From: personalized-advertising <265311956+personalized-advertising@users.noreply.github.com> Date: Wed, 22 Jul 2026 18:15:41 +0100 Subject: [PATCH 12/13] Update xray.fabric.mixins.json --- fabric/src/main/resources/xray.fabric.mixins.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fabric/src/main/resources/xray.fabric.mixins.json b/fabric/src/main/resources/xray.fabric.mixins.json index aca469a..aa52554 100644 --- a/fabric/src/main/resources/xray.fabric.mixins.json +++ b/fabric/src/main/resources/xray.fabric.mixins.json @@ -8,7 +8,7 @@ "mixins": [ ], "injectors": { - "defaultRequire": 1 + "defaultRequire": 1 }, "minVersion": "0.8" } From 4a9a70d6333e29cefdcd0dba14612cd170ca0b27 Mon Sep 17 00:00:00 2001 From: personalized-advertising <265311956+personalized-advertising@users.noreply.github.com> Date: Wed, 22 Jul 2026 18:16:03 +0100 Subject: [PATCH 13/13] Update xray.fabric.mixins.json --- fabric/src/main/resources/xray.fabric.mixins.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fabric/src/main/resources/xray.fabric.mixins.json b/fabric/src/main/resources/xray.fabric.mixins.json index aa52554..adce121 100644 --- a/fabric/src/main/resources/xray.fabric.mixins.json +++ b/fabric/src/main/resources/xray.fabric.mixins.json @@ -3,7 +3,7 @@ "package": "pro.mikey.xray.fabric.mixins", "compatibilityLevel": "JAVA_17", "client": [ - "LevelRendererMixin" + "LevelRendererMixin" ], "mixins": [ ],