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.At;
|
||||||
import org.spongepowered.asm.mixin.injection.ModifyArg;
|
import org.spongepowered.asm.mixin.injection.ModifyArg;
|
||||||
|
|
||||||
@Mixin(value = Account.class, remap = false)
|
@Mixin(value = Account.class)
|
||||||
public class AccountMixin {
|
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)
|
@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) {
|
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.CallbackInfoReturnable;
|
||||||
import org.spongepowered.asm.mixin.injection.callback.LocalCapture;
|
import org.spongepowered.asm.mixin.injection.callback.LocalCapture;
|
||||||
|
|
||||||
@Mixin(value = Accounts.class, remap = false)
|
@Mixin(value = Accounts.class)
|
||||||
public class AccountsMixin {
|
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)
|
@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) {
|
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;
|
package anticope.rejects.utils.accounts;
|
||||||
|
|
||||||
import com.mojang.authlib.exceptions.AuthenticationException;
|
import com.mojang.authlib.exceptions.AuthenticationException;
|
||||||
|
import com.mojang.authlib.minecraft.MinecraftSessionService;
|
||||||
import meteordevelopment.meteorclient.MeteorClient;
|
import meteordevelopment.meteorclient.MeteorClient;
|
||||||
import meteordevelopment.meteorclient.mixin.MinecraftClientAccessor;
|
import meteordevelopment.meteorclient.mixin.MinecraftClientAccessor;
|
||||||
import meteordevelopment.meteorclient.systems.accounts.Account;
|
import meteordevelopment.meteorclient.systems.accounts.Account;
|
||||||
@@ -37,9 +38,12 @@ public class CustomYggdrasilAccount extends Account<CustomYggdrasilAccount> {
|
|||||||
@Override
|
@Override
|
||||||
public boolean login() {
|
public boolean login() {
|
||||||
try {
|
try {
|
||||||
Session session = CustomYggdrasilLogin.login(name, password, server);
|
|
||||||
CustomYggdrasilLogin.LocalYggdrasilAuthenticationService service = new CustomYggdrasilLogin.LocalYggdrasilAuthenticationService(((MinecraftClientAccessor) mc).getProxy(), 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.username = session.getUsername();
|
||||||
cache.loadHead();
|
cache.loadHead();
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ import com.mojang.authlib.GameProfile;
|
|||||||
import com.mojang.authlib.exceptions.AuthenticationException;
|
import com.mojang.authlib.exceptions.AuthenticationException;
|
||||||
import com.mojang.authlib.minecraft.InsecureTextureException;
|
import com.mojang.authlib.minecraft.InsecureTextureException;
|
||||||
import com.mojang.authlib.minecraft.MinecraftProfileTexture;
|
import com.mojang.authlib.minecraft.MinecraftProfileTexture;
|
||||||
import com.mojang.authlib.minecraft.MinecraftSessionService;
|
|
||||||
import com.mojang.authlib.properties.Property;
|
import com.mojang.authlib.properties.Property;
|
||||||
import com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService;
|
import com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService;
|
||||||
import com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService;
|
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 {
|
public static class LocalYggdrasilApi implements Environment {
|
||||||
private final String url;
|
private final String url;
|
||||||
|
|
||||||
|
|||||||
@@ -12,11 +12,9 @@
|
|||||||
"GameRendererMixin",
|
"GameRendererMixin",
|
||||||
"LivingEntityMixin",
|
"LivingEntityMixin",
|
||||||
"LivingEntityRendererMixin",
|
"LivingEntityRendererMixin",
|
||||||
"MinecraftClientAccessor",
|
|
||||||
"MultiplayerScreenAccessor",
|
"MultiplayerScreenAccessor",
|
||||||
"MultiplayerScreenMixin",
|
"MultiplayerScreenMixin",
|
||||||
"PlayerMoveC2SPacketAccessor",
|
"PlayerMoveC2SPacketAccessor",
|
||||||
"PlayerSkinProviderAccessor",
|
|
||||||
"ServerListAccessor",
|
"ServerListAccessor",
|
||||||
"StructureVoidBlockMixin",
|
"StructureVoidBlockMixin",
|
||||||
"TexturedRenderLayersMixin",
|
"TexturedRenderLayersMixin",
|
||||||
|
|||||||
Reference in New Issue
Block a user