11use std:: { cmp:: Ordering , collections:: HashMap } ;
22
33use bathbot_util:: constants:: GENERAL_ISSUE ;
4- use eyre:: Result ;
4+ use eyre:: { Report , Result } ;
55use rosu_v2:: { error:: OsuError , model:: GameMode , request:: UserId } ;
66
77use super :: RelaxTop ;
@@ -52,7 +52,7 @@ pub async fn top(orig: CommandOrigin<'_>, args: RelaxTop<'_>) -> Result<()> {
5252 }
5353 Err ( err) => {
5454 let _ = orig. error ( GENERAL_ISSUE ) . await ;
55- let err = eyre :: Report :: new ( err) . wrap_err ( "Failed to get user" ) ;
55+ let err = Report :: new ( err) . wrap_err ( "Failed to get user" ) ;
5656
5757 return Err ( err) ;
5858 }
@@ -66,7 +66,12 @@ pub async fn top(orig: CommandOrigin<'_>, args: RelaxTop<'_>) -> Result<()> {
6666 let relax_api_result = tokio:: try_join!( scores_fut, player_fut) ;
6767
6868 let ( mut scores, player) = match relax_api_result {
69- Ok ( v) => v,
69+ Ok ( ( scores, Some ( player) ) ) => ( scores, player) ,
70+ Ok ( ( _, None ) ) => {
71+ return orig
72+ . error ( format ! ( "Relax user `{}` not found" , user. username) )
73+ . await ;
74+ }
7075 Err ( e) => {
7176 let _ = orig. error ( "Failed to get a relax player" ) . await ;
7277
@@ -91,10 +96,6 @@ pub async fn top(orig: CommandOrigin<'_>, args: RelaxTop<'_>) -> Result<()> {
9196 }
9297 } ;
9398
94- let Some ( player) = player else {
95- return orig. error ( "Relax player not found" ) . await ;
96- } ;
97-
9899 match args. sort . unwrap_or_default ( ) {
99100 RelaxTopOrder :: Acc => scores. sort_unstable_by ( |lhs, rhs| {
100101 rhs. accuracy
0 commit comments