package Ġde . tre ona . league Tools . commands Ċ Ċ import Ġde . tre ona . league Tools . League Tools Ċ import Ġde . tre ona . league Tools . account . Loaded Discord Sum mon er Ċ import Ġde . tre ona . league Tools . util .* Ċ import Ġde . tre ona . shelf s . api . message . Delete Message Ċ import Ġde . tre ona . shelf s . commands . Guild Command Ċ import Ġde . tre ona . shelf s . commands . Private Command Ċ import Ġde . tre ona . shelf s . permission . Permission Ċ import Ġnet . dv 8 tion . j da . core . Embed Builder Ċ import Ġnet . dv 8 tion . j da . core . Message Builder Ċ import Ġnet . dv 8 tion . j da . core . entities .* Ċ import Ġno . st el ar 7 . api . l 4 j 8 . basic . constants . types . Game Queue Type Ċ import Ġno . st el ar 7 . api . l 4 j 8 . impl . raw . M ast ery API Ċ import Ġno . st el ar 7 . api . l 4 j 8 . impl . raw . Match API Ċ import Ġno . st el ar 7 . api . l 4 j 8 . impl . raw . Spect ator API Ċ import Ġno . st el ar 7 . api . l 4 j 8 . impl . raw . Sum mon er API Ċ import Ġno . st el ar 7 . api . l 4 j 8 . pojo . match . Match Ċ import Ġjava . awt . Color Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ import Ġjava . util . stream . Collectors ĊĊ Ċ class ĠStatistics Command Ġ: ĠGuild Command , ĠPrivate Command Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠgetName (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Statistics " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetDescription (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Shows Ġyou Ġstatistics Ġabout Ġa Ġplayer " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Permission (): ĠPermission ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġexecute ( author : ĠMember ?, Ġmessage : ĠMessage ?, Ġtext Channel : ĠText Channel ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġmessage ?. let Ġ{ Ġauthor ?. let Ġ{ Ġ_ Ġ-> Ġthis . send Statistics ( it ) Ġ} Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġexecute ( author : ĠUser ?, Ġmessage : ĠMessage ?, Ġtext Channel : ĠPrivate Channel ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġmessage ?. let Ġ{ Ġauthor ?. let Ġ{ Ġ_ Ġ-> Ġthis . send Statistics ( it ) Ġ} Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsend Statistics ( message : ĠMessage ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// TODO Ġchange Ġthis Ġwith Ġ 0 . 6 . 3 ĊĠĠĠĠĠĠĠ Ġval Ġdelete Message Ġ= ĠDelete Message ( Message Builder (" An alys ing Ġgames ... "). build (), Ġmessage . channel ) ĊĠĠĠĠĠĠĠ Ġval Ġloaded Discord Sum mon er Ġ= ĠSum mon er Util . get Sum mon er From Command ( message ) Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġembed Builder Ġ= ĠEmbed Builder () ĊĠĠĠĠĠĠĠ Ġval Ġgames Ġ= ĠMatch API . getInstance (). get Match List ( loaded Discord Sum mon er . sum mon er . platform , Ġloaded Discord Sum mon er . sum mon er . accountId , Ġnull , Ġnull , Ġ 0 , Ġ 5 0 , Ġnull , Ġnull , Ġnull ). stream (). map Ġ{ Ġit . full Match Ġ}. collect ( Collectors . toList ()) ĊĠĠĠĠĠĠĠ Ġembed Builder . setColor ( Color . MAG ENT A ) ĊĠĠĠĠĠĠĠ Ġembed Builder . setTitle (" Stats Ġfor : Ġ${ loaded Discord Sum mon er . sum mon er . name } Ġon Ġ${ Region Util . get Pretty Region Name ( loaded Discord Sum mon er . sum mon er . platform )} ") ĊĠĠĠĠĠĠĠ Ġembed Builder . set Thumbnail (" https :// dd rag on . league of leg ends . com / cdn /${ League Tools . data CacheManager . latest Version }/ img / profile icon /${ loaded Discord Sum mon er . sum mon er . profile Icon Id }. png ") ĊĠĠĠĠĠĠĠ Ġembed Builder . addField (" MM R ", ĠM MR Util . get MM R ( loaded Discord Sum mon er . sum mon er ). toString (), Ġtrue ) ĊĠĠĠĠĠĠĠ Ġembed Builder . addField ( this . build Solo Q Field ( loaded Discord Sum mon er )) ĊĠĠĠĠĠĠĠ Ġembed Builder . addField ( this . build Current Game Field ( loaded Discord Sum mon er )) ĊĠĠĠĠĠĠĠ Ġembed Builder . addField ( this . build Pre made Field ( loaded Discord Sum mon er , Ġgames )) ĊĠĠĠĠĠĠĠ Ġembed Builder . addField ( this . build M ast ery Score Field ( loaded Discord Sum mon er )) ĊĠĠĠĠĠĠĠ Ġembed Builder . addField ( this . build Most Play ed Champ ions Field ( loaded Discord Sum mon er )) ĊĠĠĠĠĠĠĠ Ġembed Builder . addField ( this . build Win Rate Field ( loaded Discord Sum mon er , Ġgames )) ĊĠĠĠĠĠĠĠ Ġdelete Message . delete () ĊĠĠĠĠĠĠĠ Ġmessage . channel . sendMessage ( embed Builder . build ()). queue () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbuild Solo Q Field ( loaded Discord Sum mon er : ĠLoaded Discord Sum mon er ): ĠMessage Embed . Field Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġle ague Entry Ġ= Ġloaded Discord Sum mon er . sum mon er . league Entry . find Ġ{ Ġit . queue Type Ġ== ĠGame Queue Type . RAN K ED _ SO LO _ 5 X 5 Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġle ague Entry Ġ== Ġnull Ġ-> ĠMessage Embed . Field ("", Ġ" Un rank ed ", Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġle ague Entry . isIn Prom os Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠstringBuilder Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. league Entry . mini Series . target Ġ+ Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġle ague Entry . mini Series . progress [ i ] Ġ== Ġ' W ' Ġ-> ĠstringBuilder . append (" âľ ħ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġle ague Entry . mini Series . progress [ i ] Ġ== Ġ' L ' Ġ-> ĠstringBuilder . append (" âĿ Į ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠstringBuilder . append (" â Ń ķ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMessage Embed . Field ( league Entry . tier Division Type . name , Ġ" Is Ġin ĠProm os Ġ($ string Builder )", Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠMessage Embed . Field ( League Util . parse Tier Division ( league Entry . tier Division Type . name ), Ġ"${ league Entry . league Points } Ġlp ", Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbuild M ast ery Score Field ( loaded Discord Sum mon er : ĠLoaded Discord Sum mon er ): ĠMessage Embed . Field Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscore Ġ= ĠM ast ery API . getInstance (). getM ast ery Score ( loaded Discord Sum mon er . sum mon er . platform , Ġloaded Discord Sum mon er . sum mon er . sum mon er Id ) ĊĠĠĠĠĠĠĠ Ġreturn ĠMessage Embed . Field ("${ loaded Discord Sum mon er . sum mon er . name }' s Ġtotal Ġchamp ion Ġm ast ery Ġscore ", Ġ" Score : Ġ$ score ", Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbuild Most Play ed Champ ions Field ( loaded Discord Sum mon er : ĠLoaded Discord Sum mon er ): ĠMessage Embed . Field Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtop Champ s Ġ= ĠM ast ery API . getInstance (). get Top Champ ions ( loaded Discord Sum mon er . sum mon er . platform , Ġloaded Discord Sum mon er . sum mon er . sum mon er Id , Ġ 5 ) ĊĠĠĠĠĠĠĠ Ġval ĠstringBuilder Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġtop Champ s . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstringBuilder . append ("${ i Ġ+ Ġ 1 }. ) Ġ${ League Tools . data CacheManager . champ ions [ top Champ s [ i ]. champ ion Id ]?. name } Ġ${ top Champ s [ i ]. champ ion Points } Ġpoints ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstringBuilder . append ( System . line Separator ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠMessage Embed . Field (" Most Ġplayed Ġchamp ions ", ĠstringBuilder . toString (), Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbuild Win Rate Field ( loaded Discord Sum mon er : ĠLoaded Discord Sum mon er , Ġgames : ĠMutable List < Match >): ĠMessage Embed . Field Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġwins Ġ= Ġgames . stream (). filter { match : ĠMatch ? Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparticipant Ġ= Ġmatch ?. participants ?. find Ġ{ Ġit . participant Id Ġ== Ġmatch . participant Id entities . find Ġ{ Ġparticipant Identity Ġ-> Ġparticipant Identity . sum mon er Id Ġ== Ġloaded Discord Sum mon er . sum mon er . sum mon er Id Ġ} ?. participant Id Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmatch ?. did Win ( participant ) !! ĊĠĠĠĠĠĠĠ Ġ}. count () ĊĠĠĠĠĠĠĠ Ġreturn ĠMessage Embed . Field (" Win Ġrate Ġin Ġthe Ġpast Ġ${ games . size } Ġgames ", Ġ( wins / games . size ). toString (), Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbuild Pre made Field ( loaded Discord Sum mon er : ĠLoaded Discord Sum mon er , Ġgames : ĠMutable List < Match >): ĠMessage Embed . Field Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpotential Pre ma des Ġ= ĠPre made Util . find Pre ma des From Match List ( loaded Discord Sum mon er . sum mon er . sum mon er Id , Ġgames ) ĊĠĠĠĠĠĠĠ Ġif Ġ( potential Pre ma des . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠMessage Embed . Field (" No Ġteam Ġm ates Ġfound Ġin Ġ${ games . size }", Ġ"", Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval ĠstringBuilder Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠ Ġpotential Pre ma des . entries . sorted By Descending Ġ{ Ġ(_, Ġtimes Play ed With ) Ġ-> Ġtimes Play ed With Ġ}. take ( 1 0 ). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsum mon er Ġ= ĠSum mon er API . getInstance (). get Sum mon er ById ( loaded Discord Sum mon er . sum mon er . platform , Ġit . key ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstringBuilder . append ("${ sum mon er . name } Ġplayed Ġ${ it . value } Ġgames Ġout Ġof Ġ${ games . size } Ġ${ System . line Separator () }") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠMessage Embed . Field (" Potential Ġpre ma des Ġfound : Ġ${ potential Pre ma des . size }", ĠstringBuilder . toString (), Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbuild Current Game Field ( loaded Discord Sum mon er : ĠLoaded Discord Sum mon er ): ĠMessage Embed . Field Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= ĠSpect ator API . getInstance (). getCurrent Game ( loaded Discord Sum mon er . sum mon er . platform , Ġloaded Discord Sum mon er . sum mon er . sum mon er Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġreturn ĠMessage Embed . Field (" ** Spect ating ** ", Ġ" Player Ġis Ġnot Ġin Ġa Ġgame Ġright Ġnow ", Ġtrue ) ĊĠĠĠĠĠĠĠ Ġreturn ĠMessage Embed . Field (" Playing Ġa Ġ${ game . game Type . name } Ġgame Ġas Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ League Tools ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. data CacheManager ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. champ ions [ game . participants ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. find Ġ{ Ġit . sum mon er Id Ġ== Ġloaded Discord Sum mon er . sum mon er . sum mon er Id Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . champ ion Id ]?. name }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . getDate From Millis ( game . game Length Ġ* Ġ 1 0 0 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Date From Millis ( millis : ĠLong ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġformatter Ġ= ĠSimpleDateFormat (" mm : ss ", ĠLocale . getDefault ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġformatter . format ( Date ( millis )) ĊĠĠĠ Ġ} Ċ }