From bde2d0efbab9b48211252a263daf093eb3173441 Mon Sep 17 00:00:00 2001 From: 1zuna Date: Sat, 6 Jan 2024 17:00:42 +0100 Subject: [PATCH] added copy url button to AltManager --- src-theme/src/client/api.svelte | 9 +++++++++ .../src/routes/altmanager/AltManager.svelte | 6 +++++- .../features/misc/AccountManager.kt | 6 +++--- .../rest/client/session/SessionEndpoints.kt | 20 ++++++++++++++++++- 4 files changed, 36 insertions(+), 5 deletions(-) diff --git a/src-theme/src/client/api.svelte b/src-theme/src/client/api.svelte index 9795f5ba94b..fb1e950cca8 100644 --- a/src-theme/src/client/api.svelte +++ b/src-theme/src/client/api.svelte @@ -220,6 +220,15 @@ }) } + export function newMicrosoftAccountUrl() { + return request("/accounts/new/microsoft/url", { + method: "POST", + headers: { + "Content-Type": "application/json" + } + }) + } + /** * class AlteningForm( * val token: String diff --git a/src-theme/src/routes/altmanager/AltManager.svelte b/src-theme/src/routes/altmanager/AltManager.svelte index 93ac13bf18c..a1ebde0434a 100644 --- a/src-theme/src/routes/altmanager/AltManager.svelte +++ b/src-theme/src/routes/altmanager/AltManager.svelte @@ -9,6 +9,7 @@ newAlteningGen, newCrackedAccount, newMicrosoftAccount, + newMicrosoftAccountUrl, restoreInitialAccount } from "../../client/api.svelte"; import { listen } from "../../client/ws.svelte"; @@ -378,7 +379,10 @@
+
diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/misc/AccountManager.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/misc/AccountManager.kt index 24abdedc1d9..aefc30af152 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/misc/AccountManager.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/misc/AccountManager.kt @@ -135,11 +135,11 @@ object AccountManager : Configurable("Accounts"), Listenable { @RequiredByScript @JvmName("newMicrosoftAccount") - fun newMicrosoftAccount() { + fun newMicrosoftAccount(url: (String) -> Unit) { // Prevents you from starting multiple login attempts val activeUrl = activeUrl if (activeUrl != null) { - browseUrl(activeUrl) + url(activeUrl) return } @@ -147,7 +147,7 @@ object AccountManager : Configurable("Accounts"), Listenable { newMicrosoftAccount(url = { this.activeUrl = it - browseUrl(it) + url(it) }, success = { account -> EventManager.callEvent(AltManagerUpdateEvent(true, "Added new account: ${account.profile?.username}")) diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/web/socket/protocol/rest/client/session/SessionEndpoints.kt b/src/main/kotlin/net/ccbluex/liquidbounce/web/socket/protocol/rest/client/session/SessionEndpoints.kt index 5b4e1e080c1..b47357e341f 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/web/socket/protocol/rest/client/session/SessionEndpoints.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/web/socket/protocol/rest/client/session/SessionEndpoints.kt @@ -21,10 +21,14 @@ package net.ccbluex.liquidbounce.web.socket.protocol.rest.client.session import com.google.gson.JsonArray import com.google.gson.JsonObject +import com.mojang.blaze3d.systems.RenderSystem import net.ccbluex.liquidbounce.api.ClientApi.formatAvatarUrl import net.ccbluex.liquidbounce.api.IpInfoApi import net.ccbluex.liquidbounce.config.util.decode +import net.ccbluex.liquidbounce.event.EventManager +import net.ccbluex.liquidbounce.event.events.AltManagerUpdateEvent import net.ccbluex.liquidbounce.features.misc.AccountManager +import net.ccbluex.liquidbounce.utils.client.browseUrl import net.ccbluex.liquidbounce.utils.client.isPremium import net.ccbluex.liquidbounce.utils.client.mc import net.ccbluex.liquidbounce.web.socket.netty.httpForbidden @@ -32,6 +36,7 @@ import net.ccbluex.liquidbounce.web.socket.netty.httpOk import net.ccbluex.liquidbounce.web.socket.netty.rest.RestNode import net.ccbluex.liquidbounce.web.socket.protocol.protocolGson import net.minecraft.client.session.Session +import org.lwjgl.glfw.GLFW internal fun RestNode.setupSessionRestApi() { setupLocalSessionRestApi() @@ -106,7 +111,20 @@ private fun RestNode.setupAccountManagerRest() { } post("/accounts/new/microsoft") { - AccountManager.newMicrosoftAccount() + AccountManager.newMicrosoftAccount { + browseUrl(it) + EventManager.callEvent(AltManagerUpdateEvent(true, "Opened login url in browser")) + } + httpOk(JsonObject()) + } + + post("/accounts/new/microsoft/url") { + AccountManager.newMicrosoftAccount { + RenderSystem.recordRenderCall { + GLFW.glfwSetClipboardString(mc.window.handle, it) + EventManager.callEvent(AltManagerUpdateEvent(true, "Copied login url to clipboard")) + } + } httpOk(JsonObject()) }