From 8ca683768a18a6b651580a7d88d82dbd7251411e Mon Sep 17 00:00:00 2001 From: AlexProgrammerDE <40795980+AlexProgrammerDE@users.noreply.github.com> Date: Fri, 27 Feb 2026 19:58:38 +0100 Subject: [PATCH] fix: use @At("RETURN") instead of @At("TAIL") in mixins TAIL only hooks the last return opcode, missing early returns. This caused server injection and unblocking to be skipped when servers.dat doesn't exist or when isBlockedServerHostName returns early. Co-Authored-By: Claude Opus 4.6 --- .../net/blockhost/anarchymod/mixin/BlockedServersMixin.java | 2 +- .../java/net/blockhost/anarchymod/mixin/ServerListMixin.java | 2 +- .../net/blockhost/anarchymod/mixin/BlockedServersMixin.java | 2 +- .../java/net/blockhost/anarchymod/mixin/ServerListMixin.java | 2 +- .../net/blockhost/anarchymod/mixin/BlockedServersMixin.java | 2 +- .../java/net/blockhost/anarchymod/mixin/ServerListMixin.java | 2 +- .../net/blockhost/anarchymod/mixin/BlockedServersMixin.java | 2 +- .../java/net/blockhost/anarchymod/mixin/ServerListMixin.java | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/mc-1.21.10/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java b/mc-1.21.10/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java index b6a6974..3881394 100644 --- a/mc-1.21.10/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java +++ b/mc-1.21.10/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java @@ -10,7 +10,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(BlockedServers.class) public class BlockedServersMixin { - @Inject(method = "isBlockedServerHostName", at = @At("TAIL"), cancellable = true, remap = false) + @Inject(method = "isBlockedServerHostName", at = @At("RETURN"), cancellable = true, remap = false) public void isBlockedServerHostName(String server, CallbackInfoReturnable cir) { boolean contains = Domains.contains(server); if (contains) { diff --git a/mc-1.21.10/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java b/mc-1.21.10/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java index 0c5e3ef..d326a67 100644 --- a/mc-1.21.10/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java +++ b/mc-1.21.10/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java @@ -19,7 +19,7 @@ public class ServerListMixin { @Final private List serverList; - @Inject(method = "load", at = @At("TAIL")) + @Inject(method = "load", at = @At("RETURN")) public void afterLoad(CallbackInfo ci) { if (serverList.stream().noneMatch(data -> Domains.contains(data.ip))) { serverList.addFirst(new ServerData("6b6t", "6b6t.org", ServerData.Type.OTHER)); diff --git a/mc-1.21.11/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java b/mc-1.21.11/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java index b6a6974..3881394 100644 --- a/mc-1.21.11/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java +++ b/mc-1.21.11/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java @@ -10,7 +10,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(BlockedServers.class) public class BlockedServersMixin { - @Inject(method = "isBlockedServerHostName", at = @At("TAIL"), cancellable = true, remap = false) + @Inject(method = "isBlockedServerHostName", at = @At("RETURN"), cancellable = true, remap = false) public void isBlockedServerHostName(String server, CallbackInfoReturnable cir) { boolean contains = Domains.contains(server); if (contains) { diff --git a/mc-1.21.11/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java b/mc-1.21.11/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java index 0c5e3ef..d326a67 100644 --- a/mc-1.21.11/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java +++ b/mc-1.21.11/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java @@ -19,7 +19,7 @@ public class ServerListMixin { @Final private List serverList; - @Inject(method = "load", at = @At("TAIL")) + @Inject(method = "load", at = @At("RETURN")) public void afterLoad(CallbackInfo ci) { if (serverList.stream().noneMatch(data -> Domains.contains(data.ip))) { serverList.addFirst(new ServerData("6b6t", "6b6t.org", ServerData.Type.OTHER)); diff --git a/mc-1.21.8/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java b/mc-1.21.8/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java index b6a6974..3881394 100644 --- a/mc-1.21.8/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java +++ b/mc-1.21.8/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java @@ -10,7 +10,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(BlockedServers.class) public class BlockedServersMixin { - @Inject(method = "isBlockedServerHostName", at = @At("TAIL"), cancellable = true, remap = false) + @Inject(method = "isBlockedServerHostName", at = @At("RETURN"), cancellable = true, remap = false) public void isBlockedServerHostName(String server, CallbackInfoReturnable cir) { boolean contains = Domains.contains(server); if (contains) { diff --git a/mc-1.21.8/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java b/mc-1.21.8/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java index 0c5e3ef..d326a67 100644 --- a/mc-1.21.8/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java +++ b/mc-1.21.8/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java @@ -19,7 +19,7 @@ public class ServerListMixin { @Final private List serverList; - @Inject(method = "load", at = @At("TAIL")) + @Inject(method = "load", at = @At("RETURN")) public void afterLoad(CallbackInfo ci) { if (serverList.stream().noneMatch(data -> Domains.contains(data.ip))) { serverList.addFirst(new ServerData("6b6t", "6b6t.org", ServerData.Type.OTHER)); diff --git a/mc-1.21.9/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java b/mc-1.21.9/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java index b6a6974..3881394 100644 --- a/mc-1.21.9/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java +++ b/mc-1.21.9/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java @@ -10,7 +10,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(BlockedServers.class) public class BlockedServersMixin { - @Inject(method = "isBlockedServerHostName", at = @At("TAIL"), cancellable = true, remap = false) + @Inject(method = "isBlockedServerHostName", at = @At("RETURN"), cancellable = true, remap = false) public void isBlockedServerHostName(String server, CallbackInfoReturnable cir) { boolean contains = Domains.contains(server); if (contains) { diff --git a/mc-1.21.9/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java b/mc-1.21.9/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java index 0c5e3ef..d326a67 100644 --- a/mc-1.21.9/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java +++ b/mc-1.21.9/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java @@ -19,7 +19,7 @@ public class ServerListMixin { @Final private List serverList; - @Inject(method = "load", at = @At("TAIL")) + @Inject(method = "load", at = @At("RETURN")) public void afterLoad(CallbackInfo ci) { if (serverList.stream().noneMatch(data -> Domains.contains(data.ip))) { serverList.addFirst(new ServerData("6b6t", "6b6t.org", ServerData.Type.OTHER));