// ĠTODO : Ġdelay Ġnos Ġcom andos . Ċ package Ġdev . yx q sn z . s ily x . command . handler Ċ Ċ import ĠS ily x Ċ import Ġdev . k ord . common . Color Ċ import Ġdev . k ord . core . behavior . reply Ċ import Ġdev . k ord . core . event . message . Message Create Event Ċ import Ġdev . k ord . core . on Ċ import Ġdev . yx q sn z . classes . command .* Ċ import Ġdev . yx q sn z . services . Command Service Ċ import Ġdev . yx q sn z . services . Black List Service Ċ Ċ class ĠCommand Executor ( private Ġval Ġs ily x : ĠS ily x ) Ġ{ ĊĠĠĠ Ġfun Ġstart Executor () Ġ= Ġs ily x . k ord . on < Message Create Event > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprefix Ġ= Ġs ily x . config . prefix ĊĊĠĠĠĠĠĠĠ Ġif Ġ( this . message . author ?. is Bot Ġ== Ġtrue Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ! this . message . content . toLowerCase (). startsWith ( prefix ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġreturn @ on ĊĊĠĠĠĠĠĠĠ Ġval Ġargs Ġ= Ġthis . message . content . substring ( prefix . length , Ġthis . message . content . length ). trim (). split (" Ġ") ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠCommand Context ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġs ily x . k ord , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . message , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġargs . drop ( 1 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġcommand Ġ= ĠCommand Service [ args [ 0 ]] Ġ?: Ġreturn @ on ĊĠĠĠĠĠĠĠ Ġif Ġ( command . options . guild Only Ġ&& Ġthis . message . get Guild OrNull () Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . reply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ= Ġ" âĿ Į Ġ| ĠE sse Ġcomando ĠsÃ³ Ġpode Ġser Ġexecut ado Ġem Ġuma Ġguild a ." ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ on ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( message . author ?. id ?. asString ?. let Ġ{ ĠBlack List Service . is User Black List ed ( it ) Ġ} Ġ== Ġtrue ) Ġreturn @ on ĊĊĊĠĠĠĠĠĠĠ Ġif Ġ( command . options . only Dev Ġ&& Ġ! s ily x . config . devs ID . contains ( message . author ?. id ?. asString )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . reply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ= Ġ" âĿ Į Ġ| ĠDes cul pe Ġmas Ġesse Ġcomando ĠsÃ³ Ġpode Ġser Ġexecut ado Ġpor Ġp esso as Ġespec ia is ." ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ on ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcommand . exec ( context ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġs ily x . logger . error (" No Ġcomando Ġ${ command . options . name }: Ġ${ e . message }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . message . reply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġembed Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" âĿ Į Ġ| ĠMe Ġdesc ul pe ... Ġmas Ġoc orre u Ġum Ġerro Ġao Ġexecut ar Ġesse Ġcomando " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Erro " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ``` kt ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ${ e . message } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ``` ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( s ily x . config . devs ID . contains ( message . author ?. id ?. asString )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" str ace Ġtrace " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ``` kt ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ${ e . stack Trace } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ``` ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= ĠColor ( 2 0 0 , 6 6 , 7 7 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ Ċ }