package Ġnet . s ick mc . s ick bot . modules Ċ Ċ import Ġdev . k ord . core . behavior . create Chat Input Command Ċ import Ġdev . k ord . core . behavior . interaction . response . respond Ċ import Ġdev . k ord . core . event . interaction . Guild Chat Input Command Interaction Create Event Ċ import Ġdev . k ord . core . on Ċ import Ġdev . k ord . rest . builder . interaction . int Ċ import Ġdev . k ord . rest . builder . interaction . user Ċ import Ġdev . k ord . rest . route . Route Ċ import Ġkotlinx . coroutines . flow . toList Ċ import Ġnet . s ick mc . s ick bot . k ord Ċ import Ġnet . s ick mc . s ick bot . main Guild Ċ import Ġnet . s ick mc . s ick bot . utils . Role IDs Ċ Ċ object ĠMod eration Ġ{ ĊĊĠĠĠ Ġsuspend Ġfun Ġregister (){ ĊĠĠĠĠĠĠĠ ĠClear Command . register () ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ object ĠClear Command { ĊĊĠĠĠ Ġsuspend Ġfun Ġregister (){ ĊĠĠĠĠĠĠĠ Ġmain Guild . create Chat Input Command (" clear ", Ġ" Clear s Ġmultiple Ġmessages Ġin Ġchat "){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġint (" clear _ amount ", Ġ" The Ġamount Ġof Ġmessages "){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequired Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser (" clear _ user ", Ġ" The Ġauthor Ġof Ġwhich Ġmessages Ġshould Ġbe Ġdeleted "){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequired Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġk ord . on < Guild Chat Input Command Interaction Create Event > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( interaction . inv oked CommandName Ġ!= Ġ" clear ") return @ on ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġinteraction . defer Ep hemeral Response () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! interaction . user . role Ids . contains ( Role IDs . getId (" Mod eration ")) Ġ&& Ġ! interaction . user . role Ids . contains ( Role IDs . getId (" Administration ")) ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . respond Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ= Ġ" This Ġis Ġa Ġstaff Ġcommand !" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ on ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcommand Ġ= Ġinteraction . command ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchannel Ġ= Ġinteraction . getChannel () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġamount Ġ= Ġcommand . inte gers [" clear _ amount "] !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuser Ġ= Ġcommand . users [" clear _ user "] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( channel . last MessageId Ġ== Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . respond Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ= Ġ" There Ġare Ġno Ġmessages Ġto Ġdelete !" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ on ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( user Ġ== Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchannel . get Messages Before ( channel . last MessageId !! , Ġamount . toInt ()). toList (). forEach { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . delete (" Clear Ġcommand Ġwas Ġused Ġby Ġ${ interaction . user . mention } !") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . respond Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ= Ġ"$ amount Ġmessages Ġwhere Ġdeleted !" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ on ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchannel . get Messages Before ( channel . last MessageId !! , Ġamount . toInt ()). toList (). forEach { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . author Ġ!= Ġuser ) return @ forEach ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . delete (" Clear Ġcommand Ġwas Ġused Ġby Ġ${ interaction . user . mention } !") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . respond Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ= Ġ"$ amount Ġmessages Ġof Ġuser Ġ${ user . mention } Ġwhere Ġdeleted !" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }