package Ġcom . l hw dev . bot . command . scope Ċ Ċ import Ġandroidx . compose . runtime . State Ċ import Ġcom . l hw dev . bot . command . Command Ċ import Ġcom . l hw dev . bot . command . Sub command Ċ import Ġcom . l hw dev . bot . command . parameter . Command Parameter Ċ import Ġcom . l hw dev . bot . context . Channel Context Ċ import Ġcom . l hw dev . bot . context . Guild Context Ċ import Ġcom . l hw dev . bot . structure . chat . Embed Builder Ċ import Ġcom . l hw dev . bot . structure . chat . Message Ċ import Ġcom . l hw dev . bot . structure . chat . Message Builder Ċ import Ġcom . l hw dev . bot . structure . chat . embed ĊĊĊ Ċ public Ġinterface ĠInvoke Scope Ġ: ĠChannel Context , ĠGuild Context Ġ{ Ċ ĉ public Ġval Ġself Command : ĠCommand < *> ĊĉĊ ĉ public Ġfun Ġ< T > Ġparameter For ( parameter : ĠCommand Parameter < T >): ĠT ĊĉĊĉĊ ĉ public Ġsuspend Ġoperator Ġfun Ġ< C > ĠSub command < C >. invoke (): ĠC ĊĉĊĉĊ ĉ public Ġsuspend Ġfun Ġreply ( message : ĠMessage ) ĊĉĊĉĊ ĉ public Ġsuspend Ġfun Ġup datable ( block : Ġsuspend ĠUp datable Scope . () Ġ-> ĠUnit ) ĊĉĊ ĉ public Ġsuspend Ġfun Ġ< R > Ġup datable State ( block : Ġsuspend ĠUp datable Scope . () Ġ-> ĠR ): ĠState < R > Ċ } ĊĊ Ċ public Ġsuspend Ġinline Ġfun ĠInvoke Scope . reply ( block : ĠMessage Builder . () Ġ-> ĠUnit ): ĠMessage Ġ{ Ċ ĉ val Ġmessage Ġ= ĠMessage Builder (). apply ( block ). build () Ċ ĉ reply ( message ) Ċ ĉ return Ġmessage Ċ } Ċ Ċ public Ġsuspend Ġinline Ġfun ĠInvoke Scope . reply Embed ( block : ĠEmbed Builder . () Ġ-> ĠUnit ): ĠMessage Ġ= Ġreply Ġ{ Ċ ĉ embed ( block ) Ċ } ĊĊĊ Ċ public Ġinterface ĠUp datable Scope Ġ: ĠInvoke Scope Ġ{ Ċ ĉ public Ġenum Ġclass ĠUpdate Status Ġ{ Ġcreating , Ġupdating Ġ} ĊĉĊ ĉ public Ġval Ġupdate Status : ĠUpdate Status Ċ } ĊĊ Ċ public Ġval ĠUp datable Scope . is Creating : ĠBoolean Ċ ĉ get () Ġ= Ġupdate Status Ġ== ĠUp datable Scope . Update Status . creating Ċ Ċ public Ġval ĠUp datable Scope . is Updating : ĠBoolean Ċ ĉ get () Ġ= Ġupdate Status Ġ== ĠUp datable Scope . Update Status . updating ĊĊ