/* Ċ Ġ* ĠĠ ĠCopyright Ġ( c ) Ġ 2 0 1 7 - 2 0 1 9 ĠY ui Ċ Ġ* Ċ Ġ* ĠĠ ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ċ Ġ* ĠĠ Ġobtaining Ġa Ġcopy Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ċ Ġ* ĠĠ Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ġin Ġthe ĠSoftware Ġwithout Ċ Ġ* ĠĠ Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ġto Ġuse , Ċ Ġ* ĠĠ Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* ĠĠ Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe Ċ Ġ* ĠĠ ĠSoftware Ġis Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ċ Ġ* ĠĠ Ġconditions : Ċ Ġ* Ċ Ġ* ĠĠ ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ċ Ġ* ĠĠ Ġincluded Ġin Ġall Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠĠ ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , Ċ Ġ* ĠĠ ĠEXPRESS ĠOR ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES Ċ Ġ* ĠĠ ĠOF ĠMERCHANTABILITY , ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND Ċ Ġ* ĠĠ ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE ĠAUTHORS ĠOR ĠCOPYRIGHT Ċ Ġ* ĠĠ ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER ĠLIABILITY , Ċ Ġ* ĠĠ ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING Ċ Ġ* ĠĠ ĠFROM , ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR Ċ Ġ* ĠĠ ĠOTHER ĠDEALINGS ĠIN ĠTHE ĠSOFTWARE . Ċ Ġ*/ Ċ Ċ package Ġmo e . ky ub ey . ak ats uki . commands Ċ Ċ import Ġme . aur ie h . ares . ex posed . async . async Transaction Ċ import Ġmo e . ky ub ey . ak ats uki . Ak ats uki Ċ import Ġmo e . ky ub ey . ak ats uki . EventListener Ċ import Ġmo e . ky ub ey . ak ats uki . annotations . Load Ċ import Ġmo e . ky ub ey . ak ats uki . db . schema . Logs Ċ import Ġmo e . ky ub ey . ak ats uki . entities . Command Ċ import Ġmo e . ky ub ey . ak ats uki . entities . Context Ċ import Ġmo e . ky ub ey . ak ats uki . utils . I 1 8 n Ċ import Ġnet . dv 8 tion . j da . core . Embed Builder Ċ import Ġorg . jetbrains . ex posed . sql . and Ċ import Ġorg . jetbrains . ex posed . sql . select Ċ Ċ @ Load Ċ class ĠS ni pe Ġ: ĠCommand () Ġ{ ĊĠĠĠ Ġoverride Ġval Ġdesc Ġ= Ġ" S ni pe Ġthe Ġlatest Ġdeleted Ġmessage ." ĊĠĠĠ Ġoverride Ġval Ġguild Only Ġ= Ġtrue ĊĊĠĠĠ Ġoverride Ġfun Ġrun ( ctx : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! ctx . stored Guild !!. logs ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġctx . send ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠI 1 8 n . parse ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġctx . lang . getString (" logs _ not _ enabled "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" username " Ġto Ġctx . author . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġasync Transaction ( Ak ats uki . pool ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġs ni pe : ĠLong ? Ġ= ĠEvent Listener . sn ip es . remove ( ctx . channel . id Long ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sn ipe Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlog Ġ= ĠLogs . select Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLogs . guild Id . eq ( ctx . guild !!. id Long ) Ġand ĠLogs . message Id . eq ( sn ipe ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. first () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġembed Ġ= ĠEmbed Builder (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Author ("${ log [ Logs . author Name ]} # ${ log [ Logs . author Dis cri m ] }", Ġnull , Ġlog [ Logs . author Avatar ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġregex Ġ= Ġ"( https ?) ?: ?( // )? discord ( app )?. ?( gg | io | me | com )? /( \\ w + :? \\ w * @ )? (\\ S + )( :[ 0 - 9 ]+ )? (/ | / ([ \\ w #! :. ? += & % @ ! -/ ])) ? ". to Regex () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Builder . append ( log [ Logs . content ]. replace ( regex , Ġ"[ INV ITE ĠRED ACT ED ] ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Footer ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠI 1 8 n . parse ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġctx . lang . getString (" sn ip ed _ by "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" user " Ġto Ġ"${ ctx . author . name } # ${ ctx . author . dis criminator }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġctx . send ( embed . build ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġctx . send ( ctx . lang . getString (" no _ sn ip es ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. execute () ĊĠĠĠ Ġ} Ċ }