diff --git a/theseus/src/api/profile.rs b/theseus/src/api/profile.rs index 23c55639..8954147e 100644 --- a/theseus/src/api/profile.rs +++ b/theseus/src/api/profile.rs @@ -391,23 +391,26 @@ pub async fn remove_project( /// failing with an error if no credentials are available #[tracing::instrument] pub async fn run(path: &Path) -> crate::Result>> { - let state = State::get().await?; + Box::pin(async move { + let state = State::get().await?; - // Get default account and refresh credentials (preferred way to log in) - let default_account = state.settings.read().await.default_user; - let credentials = if let Some(default_account) = default_account { - refresh(default_account).await? - } else { - // If no default account, try to use a logged in account - let users = auth::users().await?; - let last_account = users.first(); - if let Some(last_account) = last_account { - refresh(last_account.id).await? + // Get default account and refresh credentials (preferred way to log in) + let default_account = state.settings.read().await.default_user; + let credentials = if let Some(default_account) = default_account { + refresh(default_account).await? } else { - return Err(crate::ErrorKind::NoCredentialsError.as_error()); - } - }; - run_credentials(path, &credentials).await + // If no default account, try to use a logged in account + let users = auth::users().await?; + let last_account = users.first(); + if let Some(last_account) = last_account { + refresh(last_account.id).await? + } else { + return Err(crate::ErrorKind::NoCredentialsError.as_error()); + } + }; + run_credentials(path, &credentials).await + }) + .await } /// Run Minecraft using a profile, and credentials for authentication diff --git a/theseus_gui/src-tauri/src/api/profile.rs b/theseus_gui/src-tauri/src/api/profile.rs index a552e0bf..9b6a1954 100644 --- a/theseus_gui/src-tauri/src/api/profile.rs +++ b/theseus_gui/src-tauri/src/api/profile.rs @@ -216,7 +216,7 @@ pub async fn profile_edit( path: &Path, edit_profile: EditProfile, ) -> Result<()> { - profile::edit(&path, |prof| { + profile::edit(path, |prof| { if let Some(metadata) = edit_profile.metadata.clone() { if let Some(name) = metadata.name { prof.metadata.name = name diff --git a/theseus_playground/src/main.rs b/theseus_playground/src/main.rs index fd2f9adf..18554941 100644 --- a/theseus_playground/src/main.rs +++ b/theseus_playground/src/main.rs @@ -6,8 +6,8 @@ use dunce::canonicalize; use theseus::jre::autodetect_java_globals; use theseus::prelude::*; -use theseus::profile::install; -use theseus::profile_create::profile_create; + + use tokio::time::{sleep, Duration}; use tracing_error::ErrorLayer;