diff --git a/src/cmds/setting.rs b/src/cmds/setting.rs index 5b31a4d..f03508e 100644 --- a/src/cmds/setting.rs +++ b/src/cmds/setting.rs @@ -25,11 +25,11 @@ pub async fn link( #[description = "your game server & ign"] player: String, // the String is a Serialized PartialPlayer struct ) -> Result<(), Error> { + let api = WowsApi::new(&ctx); let partial_player = { let (region, ign) = parse_region_ign(&player)?; - cache_methods::player(WowsApi::new(&ctx), ®ion, &ign).await? + cache_methods::player(&api, ®ion, &ign).await? }; - let api = WowsApi::new(&ctx); let player = partial_player.full_player(&api).await?; { let mut guard = ctx.data().link.write().await; diff --git a/src/dc_utils/auto_complete.rs b/src/dc_utils/auto_complete.rs index fd9ccd1..487e1bd 100644 --- a/src/dc_utils/auto_complete.rs +++ b/src/dc_utils/auto_complete.rs @@ -42,7 +42,7 @@ pub async fn player(ctx: Context<'_>, input: &str) -> Vec { candidates .into_iter() .map(|vortex_p| { - let output = format!("[{}] {}", region, vortex_p.name); + let output = format!("{} ({})", vortex_p.name, region); AutocompleteChoice::new(output.clone(), output) }) .collect() diff --git a/src/utils/parse.rs b/src/utils/parse.rs index 69d9c4d..7d07c8f 100644 --- a/src/utils/parse.rs +++ b/src/utils/parse.rs @@ -11,7 +11,7 @@ use crate::{ /// # Error /// [`IsacInfo::GeneralError`] if received a malformed input pub fn parse_region_ign(input: &str) -> Result<(Region, String), IsacError> { - static RE: Lazy = Lazy::new(|| Regex::new(r"\[?(\w+)\]?\s+(\w+)").unwrap()); + static RE: Lazy = Lazy::new(|| Regex::new(r"(\w+)\s+\((\w+)\)").unwrap()); let (_, [region_str, ign]) = RE .captures(input) .ok_or(IsacInfo::GeneralError {