package Ġxyz . gn ar bot . gn ar . commands . exec utors . pol ls Ċ Ċ import Ġnet . dv 8 tion . j da . core . Embed Builder Ċ import Ġxyz . gn ar bot . gn ar . commands . Command Ċ import Ġxyz . gn ar bot . gn ar . commands . Command Executor Ċ import Ġxyz . gn ar bot . gn ar . utils . Context Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ @ Command ( aliases Ġ= ĠarrayOf (" poll "), ĊĠĠĠĠĠĠĠ Ġusage Ġ= Ġ"( option Ġ 1 ); ( option Ġ 2 ); ...", ĊĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Create Ġa Ġpoll .") Ċ class ĠPoll Command Ġ: ĠCommand Executor () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġexecute ( context : ĠContext , Ġargs : ĠArray < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġoptions Ġ= Ġargs . join ToString (" Ġ"). split (' ; '). map ( String :: trim ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( options . size Ġ<= Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . send (). error (" Please Ġoffer Ġmore Ġoptions Ġfor Ġthe Ġpoll . "). queue () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠ Ġcontext . send (). embed (" Poll ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Description (" Vote Ġthrough Ġclicking Ġthe Ġre actions Ġon Ġthe Ġchoices Ġbelow !") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield (" Options ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild String Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions . forEach Indexed Ġ{ Ġindex , Ġoption Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ln ("${ '\ u 0 0 3 0 ' Ġ+ Ġindex }\ u 2 0 E 3 Ġ** $ option ** ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Footer (" Results Ġwill Ġbe Ġfinal Ġin Ġ 2 Ġminutes .", Ġnull ) ĊĠĠĠĠĠĠĠ Ġ}. action (). queue Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( index Ġin Ġ 0 .. options . size Ġ- Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . add Reaction ("${ '\ u 0 0 3 0 ' Ġ+ Ġindex }\ u 2 0 E 3 "). queue () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . edit Message ( Embed Builder ( it . embed s [ 0 ]). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Description (" V oting Ġhas Ġended ! ĠCheck Ġthe Ġresults Ġin Ġthe Ġnewer Ġmessages !") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclear Fields () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. build ()). queue After ( 2 , ĠTimeUnit . MIN UTES ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . send (). embed (" Poll ĠResults ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Description (" V oting Ġhas Ġended ! ĠHere Ġare Ġthe Ġresults !") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġtop Votes Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwin ners Ġ= Ġmutable ListOf < Int >() ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield (" Results ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild String Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . reactions . forEach Ġ{ Ġreaction Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġreaction . em ote . name [ 0 ] Ġ- Ġ'\ u 0 0 3 0 ' ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value Ġ! in Ġ 0 .. options . size Ġ- Ġ 1 ) Ġreturn @ forEach ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions [ value ]. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ln ("${ reaction . em ote . name } Ġ** $ it ** ĠâĢĶ Ġ__ ${ reaction . count Ġ- Ġ 1 } ĠV otes __ ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( reaction . count Ġ- Ġ 1 Ġ> Ġtop Votes ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwin ners . clear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop Votes Ġ= Ġreaction . count Ġ- Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwin ners Ġ+= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( reaction . count Ġ- Ġ 1 Ġ== Ġtop Votes ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwin ners Ġ+= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . clear Re actions (). queue () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield (" Winner ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwin ners . join ToString ( prefix Ġ= Ġ"** ", Ġpostfix Ġ= Ġ"** ") Ġ{ Ġoptions [ it ] Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. action (). queue () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ