From 4ca7bce0f11cce43d6d6a9ba1078f894394a0d1a Mon Sep 17 00:00:00 2001 From: FlorianMichael <60033407+FlorianMichael@users.noreply.github.com> Date: Sun, 3 Dec 2023 21:23:15 +0100 Subject: [PATCH] Use direct verification uri for bedrock login --- .../settings/impl/BedrockSettings.java | 17 +++++++---------- .../assets/viafabricplus/lang/en_us.json | 2 +- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/src/main/java/de/florianmichael/viafabricplus/settings/impl/BedrockSettings.java b/src/main/java/de/florianmichael/viafabricplus/settings/impl/BedrockSettings.java index 44af121c..67ce59c3 100644 --- a/src/main/java/de/florianmichael/viafabricplus/settings/impl/BedrockSettings.java +++ b/src/main/java/de/florianmichael/viafabricplus/settings/impl/BedrockSettings.java @@ -26,7 +26,7 @@ import de.florianmichael.viafabricplus.settings.base.SettingGroup; import de.florianmichael.viafabricplus.settings.base.BooleanSetting; import de.florianmichael.viafabricplus.settings.base.ButtonSetting; import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.screen.ConfirmScreen; +import net.minecraft.client.gui.screen.NoticeScreen; import net.minecraft.text.MutableText; import net.minecraft.text.Text; import net.minecraft.util.Util; @@ -40,6 +40,7 @@ import java.net.URISyntaxException; import java.util.concurrent.CompletableFuture; public class BedrockSettings extends SettingGroup { + private static final BedrockSettings instance = new BedrockSettings(); public final ButtonSetting _1 = new ButtonSetting(this, Text.translatable("bedrock_settings.viafabricplus.click_to_set_bedrock_account"), () -> CompletableFuture.runAsync(this::openBedrockAccountLogin)) { @@ -65,16 +66,12 @@ public class BedrockSettings extends SettingGroup { try { try (final CloseableHttpClient httpClient = MicrosoftConstants.createHttpClient()) { final var bedrockSession = MinecraftAuth.BEDROCK_DEVICE_CODE_LOGIN.getFromInput(httpClient, new StepMsaDeviceCode.MsaDeviceCodeCallback(msaDeviceCode -> { - MinecraftClient.getInstance().execute(() -> MinecraftClient.getInstance().setScreen(new ConfirmScreen(consumer -> { - if (consumer) { - MinecraftClient.getInstance().keyboard.setClipboard(msaDeviceCode.getUserCode()); - } else { - MinecraftClient.getInstance().setScreen(prevScreen); - Thread.currentThread().interrupt(); - } - }, Text.literal("Microsoft Bedrock login"), Text.translatable("bedrock.viafabricplus.login", msaDeviceCode.getUserCode()), Text.translatable("base.viafabricplus.copy_code"), Text.translatable("base.viafabricplus.cancel")))); + MinecraftClient.getInstance().execute(() -> MinecraftClient.getInstance().setScreen(new NoticeScreen(() -> { + MinecraftClient.getInstance().setScreen(prevScreen); + Thread.currentThread().interrupt(); + }, Text.literal("Microsoft Bedrock login"), Text.translatable("bedrock.viafabricplus.login"), Text.translatable("base.viafabricplus.cancel"), true))); try { - Util.getOperatingSystem().open(new URI(msaDeviceCode.getVerificationUri())); + Util.getOperatingSystem().open(new URI(msaDeviceCode.getDirectVerificationUri())); } catch (URISyntaxException e) { Thread.currentThread().interrupt(); VFPScreen.showErrorScreen("Microsoft Bedrock Login", e, prevScreen); diff --git a/src/main/resources/assets/viafabricplus/lang/en_us.json b/src/main/resources/assets/viafabricplus/lang/en_us.json index 8049b7c1..ea026824 100644 --- a/src/main/resources/assets/viafabricplus/lang/en_us.json +++ b/src/main/resources/assets/viafabricplus/lang/en_us.json @@ -82,7 +82,7 @@ "visual_settings.viafabricplus.enable_sword_blocking": "Enable sword animation", "visual_settings.viafabricplus.enable_block_hit_animation": "Enable block hit animation", - "bedrock.viafabricplus.login": "Your browser should have opened.\nPlease enter the following Code: %s\nClosing this screen will cancel the process!", + "bedrock.viafabricplus.login": "Your browser should have opened.\nClosing this screen will cancel the process!", "bedrock.viafabricplus.confirm_transfer_server_prompt": "Do you want to transfer to the following server?\n%s\n\nThis will disconnect the current server and connect to the new one.", "authentication.viafabricplus.failed_to_verify_session": "ViaFabricPlus failed to verify your session! Please log in into an Account or disable the BetaCraft authentication in the ViaFabricPlus Settings",