Fix Reflections
Dieser Commit ist enthalten in:
Ursprung
95ffafafe9
Commit
97ed2addd3
@ -31,6 +31,10 @@ dependencies {
|
|||||||
}
|
}
|
||||||
modCompileOnlyApi "com.terraformersmc:modmenu:4.0.6"
|
modCompileOnlyApi "com.terraformersmc:modmenu:4.0.6"
|
||||||
compileOnly project(":common")
|
compileOnly project(":common")
|
||||||
|
|
||||||
|
// Used to Override 'private final'
|
||||||
|
implementation 'org.jooq:joor:0.9.14'
|
||||||
|
include 'org.jooq:joor:0.9.14'
|
||||||
}
|
}
|
||||||
|
|
||||||
processResources {
|
processResources {
|
||||||
|
@ -1,13 +1,12 @@
|
|||||||
package de.chaoscaot.altauth.mixin.client;
|
package de.chaoscaot.altauth.mixin.client;
|
||||||
|
|
||||||
import com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService;
|
import com.mojang.authlib.yggdrasil.YggdrasilEnvironment;
|
||||||
import net.fabricmc.api.EnvType;
|
import net.fabricmc.api.EnvType;
|
||||||
import net.fabricmc.api.Environment;
|
import net.fabricmc.api.Environment;
|
||||||
import net.minecraft.client.MinecraftClient;
|
import net.minecraft.client.MinecraftClient;
|
||||||
import net.minecraft.client.gui.screen.ConnectScreen;
|
|
||||||
import net.minecraft.client.network.ClientLoginNetworkHandler;
|
import net.minecraft.client.network.ClientLoginNetworkHandler;
|
||||||
import net.minecraft.network.packet.s2c.login.LoginHelloS2CPacket;
|
import net.minecraft.network.packet.s2c.login.LoginHelloS2CPacket;
|
||||||
import net.minecraft.text.Text;
|
import org.joor.Reflect;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.spongepowered.asm.mixin.Final;
|
import org.spongepowered.asm.mixin.Final;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
@ -16,7 +15,6 @@ import org.spongepowered.asm.mixin.injection.At;
|
|||||||
import org.spongepowered.asm.mixin.injection.Inject;
|
import org.spongepowered.asm.mixin.injection.Inject;
|
||||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
|
|
||||||
@Environment(EnvType.CLIENT)
|
@Environment(EnvType.CLIENT)
|
||||||
@ -24,28 +22,20 @@ import java.net.URL;
|
|||||||
public class LoginRequestMixin {
|
public class LoginRequestMixin {
|
||||||
@Shadow @Final private static Logger LOGGER;
|
@Shadow @Final private static Logger LOGGER;
|
||||||
|
|
||||||
private static final Class<YggdrasilMinecraftSessionService> YGGDRASIL_MINECRAFT_SESSION_SERVICE_CLASS = YggdrasilMinecraftSessionService.class;
|
|
||||||
private static final Field YGGDRASIL_MINECRAFT_SESSION_SERVICE_JOIN_URL;
|
|
||||||
|
|
||||||
static {
|
|
||||||
try {
|
|
||||||
YGGDRASIL_MINECRAFT_SESSION_SERVICE_JOIN_URL = YGGDRASIL_MINECRAFT_SESSION_SERVICE_CLASS.getDeclaredField("joinUrl");
|
|
||||||
} catch (NoSuchFieldException e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/network/packet/s2c/login/LoginHelloS2CPacket;getServerId()Ljava/lang/String;"), method = "onHello")
|
@Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/network/packet/s2c/login/LoginHelloS2CPacket;getServerId()Ljava/lang/String;"), method = "onHello")
|
||||||
public void onHello(LoginHelloS2CPacket packet, CallbackInfo ci) {
|
public void onHello(LoginHelloS2CPacket packet, CallbackInfo ci) {
|
||||||
try {
|
try {
|
||||||
if(packet.getServerId().contains(".")) {
|
if(packet.getServerId().contains(".")) {
|
||||||
LOGGER.info("AltauthClient: LoginRequestMixin: Server is running on a custom: {}", packet.getServerId());
|
LOGGER.info("AltauthClient: LoginRequestMixin: Server is running on a custom: {}", packet.getServerId());
|
||||||
YGGDRASIL_MINECRAFT_SESSION_SERVICE_JOIN_URL.set(MinecraftClient.getInstance().getSessionService(), new URL("https://" + packet.getServerId() + "/session/minecraft/join"));
|
URL url = new URL("https://" + packet.getServerId() + "/session/minecraft/join");
|
||||||
|
Reflect.on(MinecraftClient.getInstance().getSessionService()).set("joinUrl", url);
|
||||||
} else {
|
} else {
|
||||||
LOGGER.info("AltauthClient: LoginRequestMixin: Server is running on mojang");
|
LOGGER.info("AltauthClient: LoginRequestMixin: Server is running on mojang");
|
||||||
YGGDRASIL_MINECRAFT_SESSION_SERVICE_JOIN_URL.set(MinecraftClient.getInstance().getSessionService(), new URL("https://sessionserver.mojang.com/session/minecraft/join"));
|
URL url = new URL(YggdrasilEnvironment.PROD.getEnvironment().getSessionHost() + "/session/minecraft/join");
|
||||||
|
Reflect.on(MinecraftClient.getInstance().getSessionService()).set("joinUrl", url);
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren