package Ġcom . github . night d avis ao . ak ir abot . events . impl Ċ Ċ import Ġcom . github . night d avis ao . ak ir abot . Ak ira Misc Config Ċ import Ġcom . github . night d avis ao . ak ir abot . events . Discord Event Ċ import Ġcom . github . night d avis ao . ak ir abot . utils . Ak ira Utils Ċ import Ġcom . github . night d avis ao . ak ir abot . utils . em ote . Em otes Ċ import Ġdev . k ord . common . entity . Snow flake Ċ import Ġdev . k ord . core . K ord Ċ import Ġdev . k ord . core . behavior . channel . create Message Ċ import Ġdev . k ord . core . event . message . Reaction Add Event Ċ import Ġio . ktor . client .* Ċ import Ġio . ktor . client . request .* Ċ import Ġkotlinx . coroutines . flow .* Ċ import Ġmu . Kotlin Logging Ċ Ċ class ĠAk ira Reaction Event ( private Ġval Ġclient : ĠK ord , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġk tor : ĠHttpClient , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġem otes : ĠEm otes , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġconfig : ĠAk ira Misc Config ) Ġ: ĠDiscord Event < Reaction Add Event > Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlogger Ġ= ĠKotlin Logging . logger Ġ{ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġexecutes ( event : ĠRe action Add Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchannel Ġ= Ġevent . message . channel ĊĊĠĠĠĠĠĠĠ Ġif Ġ( channel . id . value Ġ== Ġconfig . report Channel Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( event . user . id Ġ== Ġclient . self Id ) Ġreturn ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info Ġ{ Ġ" Valid Ġchannel : Ġ${ channel . id . asString }" Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġembed Ġ= Ġevent . message . as Message (). embed s . first OrNull () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . footer ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . text ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . remove Prefix (" Meta : Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . let Ġ{ ĠSnow flake ( it ) Ġ} ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchannel . getMessage OrNull ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . embed s ?. first OrNull () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( embed Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( event . emoji . mention Ġ== Ġem otes . cat Emoji ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġembed . fields . find Ġ{ Ġit . name . trim () Ġ== Ġ" Im agens " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . value ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue ?. split ("\ n ") ?. as Flow () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . collect Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimage Ġ= ĠAk ira Utils . retrieve Image From Drive ( it , Ġk tor ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( image Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġk tor . get < ByteArray >( image . url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchannel . create Message Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ= Ġ" Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd File (" unknown . png ", Ġit . inputStream ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( event . emoji . mention Ġ== Ġem otes . clipboard ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġembed . fields . find Ġ{ Ġit . name Ġ== Ġ" ID Ġdo ĠUs u Ã¡rio " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchannel . create Message ( it . value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ