package Ġnet . fabric mc . bot . extensions . in fr actions Ċ Ċ import Ġcom . gitlab . k ord lib . core . entity . User Ċ import Ġjava . time . Instant Ċ import Ġjava . time . Zone Id Ċ import Ġjava . time . format . DateTime Formatter Ċ import Ġjava . time . format . DateTime Formatter Builder Ċ import Ġjava . time . temporal . Ch rono Field Ċ import Ġjava . util .* Ċ Ċ private Ġval Ġtime Formatter Ġ= ĠDateTime Formatter . of Pattern (" LL L Ġd , Ġu uu u Ġ' at ' ĠHH : mm Ġ'( UTC )' ", ĠLocale . EN GL ISH ) Ċ private Ġval Ġmy Sql Time Formatter Ġ= ĠDateTime Formatter . of Pattern (" uu uu - MM - dd ĠHH : mm : ss ", ĠLocale . EN GL ISH ) Ċ Ċ private Ġval Ġmy Sql Time Parser Ġ= ĠDateTime Formatter Builder () ĊĠĠĠĠĠĠĠ Ġ. append Pattern (" uu uu - MM - dd ĠHH : mm : ss [' .' n ]") ĊĠĠĠĠĠĠĠ Ġ. parse Default ing ( Ch rono Field . NAN O _ OF _ SECOND , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ. to Formatter () ĊĠĠĠĠĠĠĠ Ġ. with Zone ( Zone Id . of (" UTC ")) Ċ Ċ /** Ċ Ġ* ĠFormat Ġan ĠInstant Ġfor Ġdisplay Ġon ĠDiscord . Ċ Ġ* Ċ Ġ* Ġ@ param Ġts Ġ[ Instant ] Ġto Ġformat . Ċ Ġ* Ġ@ return ĠString Ġrepresentation Ġof Ġthe Ġgiven Ġ[ Instant ]. Ċ Ġ*/ Ċ fun Ġinstant To Display ( ts : ĠInstant ?): ĠString ? Ġ{ ĊĠĠĠ Ġts Ġ?: Ġreturn Ġnull ĊĊĠĠĠ Ġreturn Ġtime Formatter . format ( ts . at Zone ( Zone Id . of (" UTC "))) Ċ } Ċ Ċ /** Ċ Ġ* ĠGiven Ġa ĠMySQL - formatted Ġdatetime Ġstring , Ġreturn Ġan ĠInstant . Ċ Ġ* Ċ Ġ* Ġ@ param Ġts ĠString Ġrepresentation Ġof Ġa ĠMySQL Ġdatetime . Ċ Ġ* Ġ@ return Ġ[ Instant ] Ġrepresenting Ġthe Ġgiven Ġdatetime . Ċ Ġ*/ Ċ fun Ġmysql To Instant ( ts : ĠString ?): ĠInstant ? Ġ{ ĊĠĠĠ Ġts Ġ?: Ġreturn Ġnull ĊĊĠĠĠ Ġreturn Ġmy Sql Time Parser . parse ( ts ) Ġ{ Ġaccessor Ġ-> ĠInstant . from ( accessor ) Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠGiven Ġan Ġ[ Instant ], Ġreturn Ġa ĠMySQL - formatted Ġdatetime Ġstring . Ċ Ġ* Ċ Ġ* Ġ@ param Ġts : Ġ[ Instant ] Ġto Ġformat Ġto Ġa ĠMySQL Ġstring . Ċ Ġ* Ġ@ return ĠMySQL - formatted Ġstring Ġrepresenting Ġthe Ġgiven Ġ[ Instant ]. Ċ Ġ*/ Ċ fun Ġinstant To Mysql ( ts : ĠInstant ): ĠString Ġ= ĊĠĠĠĠĠĠĠ Ġmy Sql Time Formatter . format ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġts . at Zone ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠZone Id . of (" UTC ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) Ċ Ċ /** Ċ Ġ* ĠGiven Ġa Ġnullable Ġuser Ġobject Ġand Ġnullable Ġlong , Ġattempt Ġto Ġget Ġa Ġmember ĠID . Ċ Ġ* Ċ Ġ* ĠThis Ġis Ġused Ġto Ġvalidate Ġcommand Ġargument . Ċ Ġ* Ċ Ġ* Ġ@ param Ġmember ĠUser Ġobject , Ġor Ġnull . Ċ Ġ* Ġ@ param Ġid ĠLong Ġrepresenting Ġa Ġuser ĠID , Ġor Ġnull . Ċ Ġ* Ċ Ġ* Ġ@ return ĠA ĠPair Ġcontaining Ġthe Ġresult Ġand Ġan Ġoptional Ġmessage Ġto Ġreturn . Ċ Ġ*/ Ċ fun Ġget Member Id ( member : ĠUser ?, Ġid : ĠLong ?) Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( member Ġ== Ġnull Ġ&& Ġid Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( null , Ġ" Please Ġspecify Ġa Ġuser Ġargument .") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( member Ġ!= Ġnull Ġ&& Ġid Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( null , Ġ" Please Ġspecify Ġexactly Ġone Ġuser Ġargument , Ġnot Ġtwo .") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( member ?. id ?. longValue Ġ?: Ġid !! , Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} Ċ