diff --git a/gradle.properties b/gradle.properties index 4f515c4..f759b46 100644 --- a/gradle.properties +++ b/gradle.properties @@ -10,7 +10,7 @@ loader_version=0.16.14 supported_minecraft_versions=1.21.6 neoforge_version=21.6.11-beta neoform_version=1.21.6-20250617.151856 -fabric_api_version=0.127.0+1.21.6 +fabric_api_version=0.127.1+1.21.6 snakeyaml_version=2.3 concurrentutil_version=0.0.3 yamlconfig_version=1.0.2 diff --git a/src/main/java/ca/spottedleaf/moonrise/mixin/serverlist/ServerAddressResolverMixin.java b/src/main/java/ca/spottedleaf/moonrise/mixin/serverlist/ServerAddressResolverMixin.java index 539e902..dacbbcf 100644 --- a/src/main/java/ca/spottedleaf/moonrise/mixin/serverlist/ServerAddressResolverMixin.java +++ b/src/main/java/ca/spottedleaf/moonrise/mixin/serverlist/ServerAddressResolverMixin.java @@ -1,10 +1,13 @@ package ca.spottedleaf.moonrise.mixin.serverlist; +import com.llamalad7.mixinextras.sugar.Local; +import net.minecraft.client.multiplayer.resolver.ServerAddress; import net.minecraft.client.multiplayer.resolver.ServerAddressResolver; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Redirect; import java.net.InetAddress; +import java.net.InetSocketAddress; import java.net.UnknownHostException; @Mixin(ServerAddressResolver.class) @@ -15,24 +18,23 @@ interface ServerAddressResolverMixin { * @author Spottedleaf */ @Redirect( - method = { - "method_36903", - "lambda$static$0" - }, - at = @At( - value = "INVOKE", - target = "Ljava/net/InetAddress;getByName(Ljava/lang/String;)Ljava/net/InetAddress;" - ) + method = { + "method_36903", + "lambda$static$0" + }, + at = @At( + value = "NEW", + target = "(Ljava/net/InetAddress;I)Ljava/net/InetSocketAddress;" + ) ) - private static InetAddress eliminateRDNS(final String name) throws UnknownHostException { - final InetAddress ret = InetAddress.getByName(name); - - final byte[] address = ret.getAddress(); + private static InetSocketAddress eliminateRDNS(InetAddress addr, final int port, + @Local(ordinal = 0, argsOnly = true) final ServerAddress serverAddress) throws UnknownHostException { + final byte[] address = addr.getAddress(); if (address != null) { // pass name to prevent rDNS - return InetAddress.getByAddress(name, address); + addr = InetAddress.getByAddress(serverAddress.getHost(), address); } - return ret; + return new InetSocketAddress(addr, port); } }