Remove account mixins (meteor added them), Fix account not working in prod env. (#232)
This commit is contained in:
@@ -1,54 +0,0 @@
|
||||
package anticope.rejects.mixin;
|
||||
|
||||
import com.mojang.authlib.minecraft.MinecraftSessionService;
|
||||
import com.mojang.authlib.minecraft.UserApiService;
|
||||
import com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService;
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
import net.minecraft.client.network.SocialInteractionsManager;
|
||||
import net.minecraft.client.report.AbuseReportContext;
|
||||
import net.minecraft.client.texture.PlayerSkinProvider;
|
||||
import net.minecraft.client.util.ProfileKeys;
|
||||
import net.minecraft.client.util.Session;
|
||||
import net.minecraft.network.encryption.SignatureVerifier;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Mutable;
|
||||
import org.spongepowered.asm.mixin.gen.Accessor;
|
||||
|
||||
@Mixin(MinecraftClient.class)
|
||||
public interface MinecraftClientAccessor {
|
||||
@Mutable
|
||||
@Accessor("session")
|
||||
void setSession(Session session);
|
||||
|
||||
@Mutable
|
||||
@Accessor("sessionService")
|
||||
void setSessionService(MinecraftSessionService sessionService);
|
||||
|
||||
@Mutable
|
||||
@Accessor("authenticationService")
|
||||
void setAuthenticationService(YggdrasilAuthenticationService authenticationService);
|
||||
|
||||
@Mutable
|
||||
@Accessor("servicesSignatureVerifier")
|
||||
void setServicesSignatureVerifier(SignatureVerifier servicesSignatureVerifier);
|
||||
|
||||
@Mutable
|
||||
@Accessor("skinProvider")
|
||||
void setSkinProvider(PlayerSkinProvider skinProvider);
|
||||
|
||||
@Mutable
|
||||
@Accessor("socialInteractionsManager")
|
||||
void setSocialInteractionsManager(SocialInteractionsManager socialInteractionsManager);
|
||||
|
||||
@Mutable
|
||||
@Accessor("userApiService")
|
||||
void setUserApiService(UserApiService userApiService);
|
||||
|
||||
@Mutable
|
||||
@Accessor("abuseReportContext")
|
||||
void setAbuseReportContext(AbuseReportContext abuseReportContext);
|
||||
|
||||
@Mutable
|
||||
@Accessor("profileKeys")
|
||||
void setProfileKeys(ProfileKeys profileKeys);
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
package anticope.rejects.mixin;
|
||||
|
||||
import net.minecraft.client.texture.PlayerSkinProvider;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.gen.Accessor;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
@Mixin(PlayerSkinProvider.class)
|
||||
public interface PlayerSkinProviderAccessor {
|
||||
@Accessor("skinCacheDir")
|
||||
File getSkinCacheDir();
|
||||
}
|
||||
@@ -6,7 +6,7 @@ import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.ModifyArg;
|
||||
|
||||
@Mixin(value = Account.class, remap = false)
|
||||
@Mixin(value = Account.class)
|
||||
public class AccountMixin {
|
||||
@ModifyArg(method = "toTag", at = @At(value = "INVOKE", target = "Lnet/minecraft/nbt/NbtCompound;putString(Ljava/lang/String;Ljava/lang/String;)V", ordinal = 0), index = 1)
|
||||
private String putString(String key) {
|
||||
|
||||
@@ -11,7 +11,7 @@ import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||
import org.spongepowered.asm.mixin.injection.callback.LocalCapture;
|
||||
|
||||
@Mixin(value = Accounts.class, remap = false)
|
||||
@Mixin(value = Accounts.class)
|
||||
public class AccountsMixin {
|
||||
@Inject(method = "lambda$fromTag$0", at = @At(value = "INVOKE", target = "Lnet/minecraft/nbt/NbtCompound;getString(Ljava/lang/String;)Ljava/lang/String;"), locals = LocalCapture.CAPTURE_FAILHARD, cancellable = true)
|
||||
private static void onFromTag(NbtElement tag1, CallbackInfoReturnable<Account<?>> cir, NbtCompound t) {
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
package anticope.rejects.utils.accounts;
|
||||
|
||||
import anticope.rejects.mixin.MinecraftClientAccessor;
|
||||
import anticope.rejects.mixin.PlayerSkinProviderAccessor;
|
||||
import com.mojang.authlib.exceptions.AuthenticationException;
|
||||
import com.mojang.authlib.minecraft.MinecraftSessionService;
|
||||
import com.mojang.authlib.minecraft.UserApiService;
|
||||
import com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService;
|
||||
import net.minecraft.client.network.SocialInteractionsManager;
|
||||
import net.minecraft.client.report.AbuseReportContext;
|
||||
import net.minecraft.client.report.ReporterEnvironment;
|
||||
import net.minecraft.client.texture.PlayerSkinProvider;
|
||||
import net.minecraft.client.util.ProfileKeys;
|
||||
import net.minecraft.client.util.Session;
|
||||
import net.minecraft.network.encryption.SignatureVerifier;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import static meteordevelopment.meteorclient.MeteorClient.mc;
|
||||
|
||||
public class AccountUtils {
|
||||
public static MinecraftSessionService applyLoginEnvironment(YggdrasilAuthenticationService authService, MinecraftSessionService sessService, Session session) {
|
||||
File skinDir = ((PlayerSkinProviderAccessor) mc.getSkinProvider()).getSkinCacheDir();
|
||||
((MinecraftClientAccessor) mc).setSession(session);
|
||||
((MinecraftClientAccessor) mc).setAuthenticationService(authService);
|
||||
((MinecraftClientAccessor) mc).setSessionService(sessService);
|
||||
((MinecraftClientAccessor) mc).setServicesSignatureVerifier(SignatureVerifier.create(authService.getServicesKey()));
|
||||
((MinecraftClientAccessor) mc).setSkinProvider(new PlayerSkinProvider(mc.getTextureManager(), skinDir, sessService));
|
||||
UserApiService apiService = createUserApiService(authService, session);
|
||||
((MinecraftClientAccessor) mc).setUserApiService(apiService);
|
||||
((MinecraftClientAccessor) mc).setSocialInteractionsManager(new SocialInteractionsManager(mc, apiService));
|
||||
((MinecraftClientAccessor) mc).setProfileKeys(ProfileKeys.create(apiService, session, mc.runDirectory.toPath()));
|
||||
((MinecraftClientAccessor) mc).setAbuseReportContext(AbuseReportContext.create(ReporterEnvironment.ofIntegratedServer(), apiService));
|
||||
return sessService;
|
||||
}
|
||||
|
||||
public static UserApiService createUserApiService(YggdrasilAuthenticationService authService, Session session) {
|
||||
try {
|
||||
return authService.createUserApiService(session.getAccessToken());
|
||||
} catch (AuthenticationException e) {
|
||||
return UserApiService.OFFLINE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package anticope.rejects.utils.accounts;
|
||||
|
||||
import com.mojang.authlib.exceptions.AuthenticationException;
|
||||
import com.mojang.authlib.minecraft.MinecraftSessionService;
|
||||
import meteordevelopment.meteorclient.MeteorClient;
|
||||
import meteordevelopment.meteorclient.mixin.MinecraftClientAccessor;
|
||||
import meteordevelopment.meteorclient.systems.accounts.Account;
|
||||
@@ -37,9 +38,12 @@ public class CustomYggdrasilAccount extends Account<CustomYggdrasilAccount> {
|
||||
@Override
|
||||
public boolean login() {
|
||||
try {
|
||||
Session session = CustomYggdrasilLogin.login(name, password, server);
|
||||
CustomYggdrasilLogin.LocalYggdrasilAuthenticationService service = new CustomYggdrasilLogin.LocalYggdrasilAuthenticationService(((MinecraftClientAccessor) mc).getProxy(), server);
|
||||
CustomYggdrasilLogin.applyYggdrasilAccount(service, session);
|
||||
MinecraftSessionService sessService = new CustomYggdrasilLogin.LocalYggdrasilMinecraftSessionService(service, service.server);
|
||||
applyLoginEnvironment(service, sessService);
|
||||
|
||||
Session session = CustomYggdrasilLogin.login(name, password, server);
|
||||
setSession(session);
|
||||
cache.username = session.getUsername();
|
||||
cache.loadHead();
|
||||
return true;
|
||||
|
||||
@@ -9,7 +9,6 @@ import com.mojang.authlib.GameProfile;
|
||||
import com.mojang.authlib.exceptions.AuthenticationException;
|
||||
import com.mojang.authlib.minecraft.InsecureTextureException;
|
||||
import com.mojang.authlib.minecraft.MinecraftProfileTexture;
|
||||
import com.mojang.authlib.minecraft.MinecraftSessionService;
|
||||
import com.mojang.authlib.properties.Property;
|
||||
import com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService;
|
||||
import com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService;
|
||||
@@ -56,11 +55,6 @@ public class CustomYggdrasilLogin {
|
||||
}
|
||||
}
|
||||
|
||||
public static void applyYggdrasilAccount(LocalYggdrasilAuthenticationService authService, Session session) {
|
||||
MinecraftSessionService service = new LocalYggdrasilMinecraftSessionService(authService, authService.server);
|
||||
AccountUtils.applyLoginEnvironment(authService, service, session);
|
||||
}
|
||||
|
||||
public static class LocalYggdrasilApi implements Environment {
|
||||
private final String url;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user