package net.minecraft.launcher.authentication; import java.io.File; import java.util.Map; import net.minecraft.launcher.Launcher; import net.minecraft.launcher.authentication.exceptions.AuthenticationException; import net.minecraft.launcher.authentication.yggdrasil.YggdrasilAuthenticationService; import net.minecraft.launcher.events.AuthenticationChangedListener; public class LoadTestingAuthenticationService implements AuthenticationService { private final AuthenticationService primary = new LegacyAuthenticationService(); private final AuthenticationService secondary = new YggdrasilAuthenticationService(); public void logIn() throws AuthenticationException { this.primary.logIn(); try { this.secondary.logIn(); } catch (AuthenticationException e) { Launcher.getInstance().println("Couldn't load-test new authentication service (method: logIn)", e); } } public boolean canLogIn() { return this.primary.canLogIn(); } public void logOut() { this.primary.logOut(); this.secondary.logOut(); } public boolean isLoggedIn() { return this.primary.isLoggedIn(); } public boolean canPlayOnline() { return this.primary.canPlayOnline(); } public GameProfile[] getAvailableProfiles() { return this.primary.getAvailableProfiles(); } public GameProfile getSelectedProfile() { return this.primary.getSelectedProfile(); } public void selectGameProfile(GameProfile profile) throws AuthenticationException { this.primary.selectGameProfile(profile); try { this.secondary.selectGameProfile(profile); } catch (AuthenticationException e) { Launcher.getInstance().println("Couldn't load-test new authentication service (method: selectGameProfile)", e); } } public void loadFromStorage(Map<String, String> credentials) { this.primary.loadFromStorage(credentials); this.secondary.loadFromStorage(credentials); } public Map<String, String> saveForStorage() { return this.primary.saveForStorage(); } public String getSessionToken() { return this.primary.getSessionToken(); } public String getUsername() { return this.primary.getUsername(); } public void setUsername(String username) { this.primary.setUsername(username); this.secondary.setUsername(username); } public void setPassword(String password) { this.primary.setPassword(password); this.secondary.setPassword(password); } public void addAuthenticationChangedListener(AuthenticationChangedListener listener) { this.primary.addAuthenticationChangedListener(listener); } public void removeAuthenticationChangedListener(AuthenticationChangedListener listener) { this.primary.removeAuthenticationChangedListener(listener); } public String guessPasswordFromSillyOldFormat(File lastlogin) { return this.primary.guessPasswordFromSillyOldFormat(lastlogin); } }