diff --git a/src/main/java/net/raphimc/viaproxy/saves/impl/NewAccountsSave.java b/src/main/java/net/raphimc/viaproxy/saves/impl/NewAccountsSave.java index 33fad67..b7a02f4 100644 --- a/src/main/java/net/raphimc/viaproxy/saves/impl/NewAccountsSave.java +++ b/src/main/java/net/raphimc/viaproxy/saves/impl/NewAccountsSave.java @@ -20,12 +20,10 @@ package net.raphimc.viaproxy.saves.impl; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; -import net.raphimc.mcauth.step.bedrock.StepMCChain; import net.raphimc.mcauth.step.java.StepMCProfile; import net.raphimc.mcauth.util.MicrosoftConstants; import net.raphimc.viaproxy.saves.AbstractSave; import net.raphimc.viaproxy.saves.impl.accounts.Account; -import net.raphimc.viaproxy.saves.impl.accounts.BedrockAccount; import net.raphimc.viaproxy.saves.impl.accounts.MicrosoftAccount; import net.raphimc.viaproxy.saves.impl.accounts.OfflineAccount; import net.raphimc.viaproxy.util.logging.Logger; @@ -76,14 +74,13 @@ public class NewAccountsSave extends AbstractSave { } } - public Account addAccount(final StepMCChain.MCChain mcChain) { - final Account account = new BedrockAccount(mcChain); + public Account addAccount(final String username) { + final Account account = new OfflineAccount(username); this.accounts.add(account); return account; } - public Account addAccount(final String username) { - final Account account = new OfflineAccount(username); + public Account addAccount(final Account account) { this.accounts.add(account); return account; } diff --git a/src/main/java/net/raphimc/viaproxy/saves/impl/accounts/BedrockAccount.java b/src/main/java/net/raphimc/viaproxy/saves/impl/accounts/BedrockAccount.java index 827a773..6b415d0 100644 --- a/src/main/java/net/raphimc/viaproxy/saves/impl/accounts/BedrockAccount.java +++ b/src/main/java/net/raphimc/viaproxy/saves/impl/accounts/BedrockAccount.java @@ -37,8 +37,9 @@ public class BedrockAccount extends Account { } } - public BedrockAccount(final StepMCChain.MCChain mcChain) { + public BedrockAccount(final StepMCChain.MCChain mcChain, final StepPlayFabToken.PlayFabToken playFabToken) { this.mcChain = mcChain; + this.playFabToken = playFabToken; } @Override diff --git a/src/main/java/net/raphimc/viaproxy/ui/impl/AccountsTab.java b/src/main/java/net/raphimc/viaproxy/ui/impl/AccountsTab.java index 64d0848..721d8f9 100644 --- a/src/main/java/net/raphimc/viaproxy/ui/impl/AccountsTab.java +++ b/src/main/java/net/raphimc/viaproxy/ui/impl/AccountsTab.java @@ -18,11 +18,14 @@ package net.raphimc.viaproxy.ui.impl; import net.raphimc.mcauth.MinecraftAuth; +import net.raphimc.mcauth.step.bedrock.StepMCChain; +import net.raphimc.mcauth.step.bedrock.playfab.StepPlayFabToken; import net.raphimc.mcauth.step.msa.StepMsaDeviceCode; import net.raphimc.mcauth.util.MicrosoftConstants; import net.raphimc.viaproxy.ViaProxy; import net.raphimc.viaproxy.cli.options.Options; import net.raphimc.viaproxy.saves.impl.accounts.Account; +import net.raphimc.viaproxy.saves.impl.accounts.BedrockAccount; import net.raphimc.viaproxy.ui.AUITab; import net.raphimc.viaproxy.ui.ViaProxyUI; import net.raphimc.viaproxy.ui.popups.AddAccountPopup; @@ -207,9 +210,12 @@ public class AccountsTab extends AUITab { this.addBedrockAccountButton.setEnabled(false); this.handleLogin(msaDeviceCodeConsumer -> { try (final CloseableHttpClient httpClient = MicrosoftConstants.createHttpClient()) { - return MinecraftAuth.BEDROCK_DEVICE_CODE_LOGIN.getFromInput(httpClient, new StepMsaDeviceCode.MsaDeviceCodeCallback(msaDeviceCodeConsumer)); + final StepMCChain.MCChain mcChain = MinecraftAuth.BEDROCK_DEVICE_CODE_LOGIN.getFromInput(httpClient, new StepMsaDeviceCode.MsaDeviceCodeCallback(msaDeviceCodeConsumer)); + final StepPlayFabToken.PlayFabToken playFabToken = MinecraftAuth.BEDROCK_PLAY_FAB_TOKEN.getFromInput(httpClient, mcChain.prevResult().fullXblSession()); + + return new BedrockAccount(mcChain, playFabToken); } - }, chain -> ViaProxy.saveManager.accountsSave.addAccount(chain)); + }, account -> ViaProxy.saveManager.accountsSave.addAccount(account)); }); addButtons.add(this.addBedrockAccountButton); }