package com.mojang.authlib.yggdrasil;
import com.mojang.authlib.*;
import com.mojang.authlib.exceptions.AuthenticationException;
import com.mojang.authlib.minecraft.MinecraftSessionService;
import com.mojang.authlib.minecraft.UserApiService;
import java.net.Proxy;
public class YggdrasilAuthenticationService implements AuthenticationService {
private final Environment environment;
private Proxy proxy;
public YggdrasilAuthenticationService(final Proxy proxy) {
this(proxy, determineEnvironment());
}
public YggdrasilAuthenticationService(final Proxy proxy, final Environment environment) {
this(proxy, null, environment);
}
public YggdrasilAuthenticationService(final Proxy proxy, final String clientToken) {
this(proxy, clientToken, determineEnvironment());
}
public YggdrasilAuthenticationService(final Proxy proxy, final String clientToken, final Environment environment) {
this.environment = environment;
this.proxy = proxy;
}
private static Environment determineEnvironment() {
return EnvironmentParser.getEnvironmentFromProperties().orElse(YggdrasilEnvironment.PROD.getEnvironment());
}
public UserAuthentication createUserAuthentication(final Agent agent) {
throw new UnsupportedOperationException("createUserAuthentication is used only by Mojang Launcher");
}
public MinecraftSessionService createMinecraftSessionService() {
return (MinecraftSessionService)new YggdrasilMinecraftSessionService((AuthenticationService)this, this.environment);
}
public GameProfileRepository createProfileRepository() {
return (GameProfileRepository)new YggdrasilGameProfileRepository(this, this.environment);
}
public YggdrasilSocialInteractionsService createSocialInteractionsService(final String accessToken) throws AuthenticationException {
return (YggdrasilSocialInteractionsService)new YggdrasilSocialInteractionsService(this, accessToken, this.environment);
}
public UserApiService createUserApiService(final String accessToken) throws AuthenticationException {
return (UserApiService)new YggdrasilUserApiService(accessToken, proxy, environment);
}
}