package Ġme . ab err ant fox . hot bot . command framework . commands Ċ Ċ import Ġme . ab err ant fox . hot bot . command framework . Argument Type Ċ import Ġme . ab err ant fox . hot bot . command framework . Command Set Ċ import Ġme . ab err ant fox . hot bot . dsl s . command . Command Event Ċ import Ġme . ab err ant fox . hot bot . dsl s . command . commands Ċ import Ġme . ab err ant fox . hot bot . extensions .* Ċ import Ġme . ab err ant fox . hot bot . services .* Ċ import Ġme . ab err ant fox . hot bot . database .* Ċ import Ġme . ab err ant fox . hot bot . dsl s . command . arg Ċ import Ġme . ab err ant fox . hot bot . dsl s . embed . embed Ċ import Ġnet . dv 8 tion . j da . core . entities . Guild Ċ import Ġnet . dv 8 tion . j da . core . entities . User Ċ import Ġorg . joda . time . format . DateTime Format Ċ import Ġjava . awt . Color Ċ Ċ data Ġclass ĠStri ke Request ( val Ġuser : ĠUser , Ġval Ġreason : ĠString , Ġval Ġamount : ĠInt , Ġval Ġmod erator : ĠUser ) Ċ Ċ object ĠStri ke Requests Ġ{ ĊĠĠĠ Ġval Ġmap Ġ= ĠHashMap < UserID , ĠStri ke Request >() Ċ } Ċ Ċ @ Command Set Ċ fun Ġstrike Commands () Ġ= ĊĠĠĠ Ġcommands Ġ{ ĊĠĠĠĠĠĠĠ Ġcommand (" warn ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect ( Argument Type . User , ĠArgument Type . Sentence ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Args Ġ= ĠlistOf ( it . args [ 0 ], Ġ 0 , Ġit . args [ 1 ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġe Ġ= Ġit . copy ( args = new Args ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġin fract ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcommand (" strike ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect ( arg ( Argument Type . User ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarg ( Argument Type . Integer , Ġoptional Ġ= Ġtrue , Ġdefault Ġ= Ġ 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarg ( Argument Type . Sentence )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġin fract ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcommand (" stri k ere quest ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect ( Argument Type . User , ĠArgument Type . Integer , ĠArgument Type . Sentence ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtarget Ġ= Ġit . args . component 1 () Ġas ĠUser ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġamount Ġ= Ġit . args . component 2 () Ġas ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreason Ġ= Ġit . args . component 3 () Ġas ĠString ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( amount Ġ> Ġit . config . security . strike Ce il ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . respond (" Error , Ġstrike Ġquantity Ġabove Ġstrike Ġce iling . Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ execute ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠStri ke Request ( target , Ġreason , Ġamount , Ġit . author ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStri ke Requests . map . put ( target . id , Ġrequest ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . respond (" This Ġhas Ġbeen Ġlogged Ġand Ġwill Ġbe Ġaccepted Ġor Ġdecl ined , Ġthank Ġyou .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinfo ("${ it . author . fullName ()} Ġhas Ġa Ġnew Ġstrike Ġrequest . ĠUse Ġview Request Ġ${ target . as Mention } Ġto Ġsee Ġit .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcommand (" view Request ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect ( Argument Type . User ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuser Ġ= Ġit . args . component 1 () Ġas ĠUser ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( Ġ!( strike Again st ( user , Ġit )) Ġ) Ġreturn @ execute ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠStri ke Requests . map [ user . id ] !! ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . respond ( embed Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle ("${ request . mod erator . fullName () }' s Ġrequest ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Target " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ"${ request . user . as Mention } (${ request . user . fullName () })" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinline Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Reason ing " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġrequest . reason ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinline Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ Ġ" Amount " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ"${ request . amount }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinline Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcommand (" accept request ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect ( Argument Type . User ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuser Ġ= Ġit . args . component 1 () Ġas ĠUser ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( Ġ!( strike Again st ( user , Ġit )) Ġ) Ġreturn @ execute ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠStri ke Requests . map [ user . id ] !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Args Ġ= ĠlistOf ( request . user , Ġrequest . amount , Ġrequest . reason ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġin fract ( it . copy ( args = new Args )) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStri ke Requests . map . remove ( user . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser . send Private Message (" Stri ke Ġrequest Ġwas Ġaccepted . ĠThanks Ġa Ġbunch !" Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcommand (" decl in ere quest ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect ( Argument Type . User ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuser Ġ= Ġit . args . component 1 () Ġas ĠUser ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( Ġ!( strike Again st ( user , Ġit )) Ġ) Ġreturn @ execute ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStri ke Requests . map . remove ( user . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser . send Private Message (" Stri ke Ġrequest Ġwas Ġdecl ined , Ġbetter Ġluck y Ġnext Ġtime Ġ:) ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcommand (" delete Request ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect ( Argument Type . User ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuser Ġ= Ġit . args . component 1 () Ġas ĠUser ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( Ġ!( strike Again st ( user , Ġit )) Ġ) Ġreturn @ execute ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġby Invoker Ġ= ĠStri ke Requests . map [ user . id ] !!. mod erator . id Ġ== Ġit . author . id ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( by Invoker ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStri ke Requests . map . remove ( user . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . respond (" Request Ġremoved .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . respond (" You Ġdid Ġnot Ġmake Ġthat Ġrequest Ġand Ġas Ġsuch Ġcannot Ġdelete Ġit .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcommand (" list requests ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( Stri ke Requests . map . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . respond (" No Ġrequests Ġcurrently Ġin Ġplace .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ execute ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= ĠStri ke Requests . map . values ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġ"${ it . user . as Mention Ġ}, Ġrequested Ġby Ġ${ it . mod erator . fullName () }" Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. reduce Ġ{ a , Ġb Ġ-> Ġ"$ a Ġ\ n $ b " Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . respond ( response ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcommand (" history ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect ( Argument Type . User ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtarget Ġ= Ġit . args [ 0 ] Ġas ĠUser ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . respond ( build History Embed ( target , Ġtrue , Ġget History ( target . id ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Notes ByUser ( target . id ), Ġit )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcommand (" re mov est ri ke ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect ( Argument Type . Integer ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstrike ID Ġ= Ġit . args [ 0 ] Ġas ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġamount Removed Ġ= Ġremove In fraction ( strike ID ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . respond (" Deleted Ġ$ amount Removed Ġstrike Ġrecords .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcommand (" clean se ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect ( Argument Type . User ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuser Ġ= Ġit . args [ 0 ] Ġas ĠUser ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġamount Ġ= Ġremove All In fr actions ( user . id ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . respond (" In fr actions Ġfor Ġ${ user . as Mention } Ġhave Ġbeen Ġw ip ed . ĠTotal Ġremoved : Ġ$ amount ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcommand (" self history ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtarget Ġ= Ġit . author . id . id To User ( it . j da ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget . send Private Message ( build History Embed ( target , Ġfalse , Ġget History ( target . id ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , Ġit )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ private Ġfun Ġstrike Again st ( user : ĠUser , Ġevent : ĠCommand Event ) Ġ= ĊĠĠĠ Ġif ( Ġ!( Stri ke Requests . map . containsKey ( user . id )) Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġevent . respond (" That Ġuser Ġdoes Ġnot Ġcurrently Ġhave Ġa Ġstrike Ġrequest .") ĊĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠ Ġ} Ċ Ċ private Ġfun Ġin fract ( event : ĠCommand Event ) Ġ{ ĊĠĠĠ Ġval Ġargs Ġ= Ġevent . args ĊĠĠĠ Ġval Ġtarget Ġ= Ġargs [ 0 ] Ġas ĠUser ĊĠĠĠ Ġval Ġstrike Quantity Ġ= Ġargs [ 1 ] Ġas ĠInt ĊĠĠĠ Ġval Ġreason Ġ= Ġargs [ 2 ] Ġas ĠString ĊĊĠĠĠ Ġif Ġ( strike Quantity Ġ< Ġ 0 Ġ|| Ġstrike Quantity Ġ> Ġ 3 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġevent . respond (" Stri ke Ġweight Ġshould Ġbe Ġbetween Ġ 0 Ġand Ġ 3 ") ĊĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġif Ġ(!( event . guild . is Member ( target ))) Ġ{ ĊĠĠĠĠĠĠĠ Ġevent . respond (" Cannot Ġfind Ġthe Ġmember Ġby Ġthe Ġid : Ġ${ target . id }") ĊĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinsert In fraction ( target . id , Ġevent . author . id , Ġstrike Quantity , Ġreason ) ĊĊĠĠĠ Ġevent . author . send Private Message (" User Ġ${ target . as Mention } Ġhas Ġbeen Ġin fr acted Ġwith Ġweight : Ġ$ strike Quantity , Ġwith Ġreason :\ n $ reason ") ĊĊĠĠĠ Ġvar Ġtotal Stri kes Ġ= ĠgetMax Stri kes ( target . id ) ĊĊĠĠĠ Ġif Ġ( total Stri kes Ġ> Ġevent . config . security . strike Ce il ) Ġtotal Stri kes Ġ= Ġevent . config . security . strike Ce il ĊĊĠĠĠ Ġadmin ister P un ish ment ( event . config , Ġtarget , Ġstrike Quantity , Ġreason , Ġevent . guild , Ġevent . author , Ġtotal Stri kes ) Ċ } Ċ Ċ private Ġfun Ġadmin ister P un ish ment ( config : ĠConfiguration , Ġuser : ĠUser , Ġstrike Quantity : ĠInt , Ġreason : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġguild : ĠGuild , Ġmod erator : ĠUser , Ġtotal Stri kes : ĠInt ) Ġ{ ĊĊĠĠĠ Ġuser . open Private Channel (). queue Ġ{ Ġchan Ġ-> ĊĊĠĠĠĠĠĠĠ Ġval Ġp un ish ment Action Ġ= Ġconfig . security . in fraction Action Map [ total Stri kes ]?. toString () Ġ?: Ġ" None " ĊĠĠĠĠĠĠĠ Ġval Ġin fraction Embed Ġ= Ġbuild In fraction Embed ( user . as Mention , Ġreason , Ġstrike Quantity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtotal Stri kes , Ġconfig . security . strike Ce il , Ġp un ish ment Action ) ĊĊĠĠĠĠĠĠĠ Ġchan . sendMessage ( in fraction Embed ). queue Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( config . security . in fraction Action Map [ total Stri kes ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIn fraction Action . Warn Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchan . sendMessage (" This Ġis Ġyour Ġwarning Ġ- ĠDo Ġnot Ġbreak Ġthe Ġrules Ġagain . "). queue () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIn fraction Action . Kick Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchan . sendMessage (" You Ġmay Ġreturn Ġvia Ġthis : Ġhttps :// discord . gg / BQ N 6 BY E Ġ- Ġplease Ġbe Ġmind ful Ġof Ġthe Ġrules Ġnext Ġtime .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. queue Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġguild . controller . kick ( user . id , Ġreason ). queue () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIn fraction Action . Mute Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmute Member ( guild , Ġuser , Ġ 1 0 0 0 Ġ* Ġ 6 0 Ġ* Ġ 6 0 Ġ* Ġ 2 4 , Ġ" In fraction Ġp un ish ment .", Ġconfig , Ġmod erator ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIn fraction Action . Ban Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchan . sendMessage (" Well ... Ġthat Ġhappened . ĠThere Ġmay Ġbe Ġan Ġappe al Ġsystem Ġin Ġthe Ġfuture . ĠBut Ġfor Ġnow , Ġyou 're " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ġper manently Ġb anned . ĠSorry Ġabout Ġthat Ġ:) Ġ"). queue Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġguild . controller . ban ( user . id , Ġ 0 , Ġreason ). queue () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun Ġbuild History Embed ( target : ĠUser , Ġinclude Mod erator : ĠBoolean , Ġrecords : ĠList < Stri ke Record >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotes : ĠList < Note Record > ?, Ġit : ĠCommand Event ) Ġ= ĊĠĠĠĠĠĠĠ Ġembed Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle ("${ target . fullName () }' s ĠRecord ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Color ( Color . MAG ENT A ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Thumbnail ( target . effective Avatar Url ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ"__ ** Summary ** __ " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinline Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Information " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ"${ target . fullName ()} Ġhas Ġ** ${ records . size }** Ġin fr actions ( s ).\ n Of Ġthese Ġin fr actions , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"** ${ records . filter Ġ{ Ġit . is Expired Ġ}. size }** Ġare Ġexpired Ġand Ġ** ${ records . filter Ġ{ Ġ! it . is Expired Ġ}. size }** Ġare Ġstill Ġin Ġeffect ." Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\ n Current Ġstrike Ġvalue Ġof Ġ** ${ getMax Stri kes ( target . id ) }/${ it . config . security . strike Ce il }** " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\ n Join Ġdate : Ġ** ${ it . guild . get Member Join String ( target )} ** " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\ n Creation Ġdate : Ġ** ${ target . creation Time . toString (). format J da Date ()} ** " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinline Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Blank Field ( false ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ"__ ** In fr actions ** __ " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinline Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrecords . forEach Ġ{ Ġrecord Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" ID Ġ:: Ġ__ ${ record . id } __ Ġ:: ĠWeight Ġ:: Ġ__ ${ record . stri kes } __ " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ" This Ġin fraction Ġis Ġ** ${ expired ( record . is Expired )} ** ." ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinline Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( include Mod erator ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ+= Ġ"\ n Iss ued Ġby Ġ** ${ record . mod erator . id To Name ( it . j da )} ** Ġon Ġ** ${ record . dateTime . toString ( DateTime Format . for Pattern (" dd / MM / yyyy ")) }** " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" In fraction ĠReason ing ĠGiven " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġrecord . reason ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinline Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Blank Field ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( records . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" No ĠIn fr actions " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ" Clean Ġas Ġa Ġwh ist le , Ġs ir ." ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinline Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Blank Field ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! include Mod erator Ġ|| Ġnotes Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ embed ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ"__ ** Notes ** __ " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinline Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( notes . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" No ĠNotes " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ" User Ġhas Ġno Ġnotes Ġwritten " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinline Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotes . forEach Ġ{ Ġnote Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" ID Ġ:: Ġ__ ${ note . id } __ Ġ:: ĠStaff Ġ:: Ġ__ ${ note . mod erator . id To Name ( it . j da )} __ " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ" Not ed Ġon Ġ** ${ note . dateTime . toString ( DateTime Format . for Pattern (" dd / MM / yyyy ")) }** " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinline Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Note ĠMessage " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġnote . note ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinline Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Blank Field ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊ Ċ private Ġfun Ġbuild In fraction Embed ( user Mention : ĠString , Ġreason : ĠString , Ġstrike Quantity : ĠInt , Ġtotal Stri kes : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstrike Ce il : ĠInt , Ġp un ish ment Action : ĠString ) Ġ= ĊĠĠĠĠĠĠĠ Ġembed Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle (" In fraction ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription ("$ user Mention , Ġyou Ġhave Ġbeen Ġin fr acted .\ n In fr actions Ġare Ġformal Ġwarnings Ġfrom Ġstaff Ġmembers Ġon ĠT PH .\ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" If Ġyou Ġthink Ġyour Ġin fraction Ġis Ġundo ub ted ly Ġun just ified , Ġplease Ġ** do Ġnot ** Ġpost Ġabout Ġit Ġin Ġa Ġpublic Ġchannel Ġbut Ġtake Ġit Ġup Ġwith Ġan Ġadministrator .") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ield Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Stri ke ĠQuantity " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ"$ strike Quantity " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ield Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Stri ke ĠCount " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ"$ total Stri kes Ġ/ Ġ$ strike Ce il " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ield Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" P un ish ment " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġp un ish ment Action ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ"__ Reason __ " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġreason ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinline Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Color ( Color . RED ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊ Ċ private Ġfun Ġexpired ( boolean : ĠBoolean ) Ġ= Ġif Ġ( boolean ) Ġ" expired " Ġelse Ġ" not Ġexpired "