package Ġnet . source bot . module . t rivia . data Ċ Ċ import Ġnet . dv 8 tion . j da . api . entities . Message Ċ import Ġnet . dv 8 tion . j da . api . events . Generic Event Ċ import Ġnet . dv 8 tion . j da . api . events . message . guild . react . Guild Message Reaction Add Event Ċ import Ġnet . source bot . api . event . Event Subscriber Ċ import Ġnet . source bot . api . event . Event System Ċ import Ġnet . source bot . api . event . Source Event Ċ import Ġnet . source bot . module . t rivia . Trivia Ċ Ċ val Ġvalid Em otes Ġ= ĠarrayOf ( ĊĠĠĠ Ġ"\ uD 8 3 C \ uD DE 6 ", ĊĠĠĠ Ġ"\ uD 8 3 C \ uD DE 7 ", ĊĠĠĠ Ġ"\ uD 8 3 C \ uD DE 8 ", ĊĠĠĠ Ġ"\ uD 8 3 C \ uD DE 9 " Ċ ) Ċ Ċ class ĠT rivia Listener Ġ: ĠEvent Subscriber < Trivia > Ġ{ ĊĠĠĠ Ġprivate Ġval Ġgame Map Ġ= ĠHashMap < String , ĠHashMap < String , ĠInt >>() ĊĠĠĠ Ġprivate Ġval Ġmessage Cache Ġ= ĠHashMap < String , ĠMessage >() ĊĊĠĠĠ Ġfun Ġlink ( ĊĠĠĠĠĠĠĠ Ġmessage : ĠMessage , ĊĠĠĠĠĠĠĠ Ġanswer Map : ĠHashMap < String , ĠInt > ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġgame Map [ message . id ] Ġ= Ġanswer Map ĊĠĠĠĠĠĠĠ Ġmessage Cache [ message . id ] Ġ= Ġmessage ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġunlink ( message Id : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġgame Map . remove ( message Id ) ĊĠĠĠĠĠĠĠ Ġmessage Cache . remove ( message Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Reaction ( event : ĠGuild Message Reaction Add Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( event . user . is Bot ) Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġanswer Map Ġ= Ġgame Map [ event . message Id ] Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġmessage Cache . compute If Absent ( event . message Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . retrieve Message (). complete () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġreaction Ġ= Ġevent . reaction Em ote ĊĠĠĠĠĠĠĠ Ġif Ġ( reaction . is Em ote ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . remove Reaction ( reaction . em ote , Ġevent . user ). complete () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġunicode Ġ= Ġreaction . name ĊĠĠĠĠĠĠĠ Ġif Ġ( unicode Ġ! in Ġvalid Em otes ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . remove Reaction ( unicode , Ġevent . user ). complete () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġanswer Ġ= Ġvalid Em otes . indexOf ( unicode ) ĊĠĠĠĠĠĠĠ Ġanswer Map [ event . userId ] Ġ= Ġanswer ĊĠĠĠĠĠĠĠ Ġmessage . remove Reaction ( unicode , Ġevent . user ). queue () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsubscribe ( ĊĠĠĠĠĠĠĠ Ġmodule : ĠT rivia , ĊĠĠĠĠĠĠĠ Ġj da Events : ĠEvent System < Generic Event >, ĊĠĠĠĠĠĠĠ Ġsource Events : ĠEvent System < Source Event > ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġj da Events . listen ( module , Ġthis :: on Reaction ) ĊĠĠĠ Ġ} Ċ }