/* Ċ Ġ* ĠCopyright Ġ 2 0 1 7 ĠK aid an ĠG ust ave Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ @ file : Jvm Name (" Command Builder Kt ") Ċ @ file : Suppress (" Unused ", Ġ" Has Platform Type ") Ċ package Ġme . kg ust ave . kj da utils . command Ċ Ċ import Ġcom . j ag ro sh . j da utilities . command client . Command Ċ import Ġcom . j ag ro sh . j da utilities . command client . Command Builder Ċ import Ġnet . dv 8 tion . j da . core . Permission Ċ Ċ /** Ċ Ġ* ĠCreates Ġan Ġinitializing Ġblock Ġusing Ġa Ġ[ Command Builder ]. Ċ Ġ* Ċ Ġ* Ġ** Note :** ĠThis Ġmust Ġend Ġwith Ġ[ Command Builder # build ][ Command Builder . build ], Ċ Ġ* Ġas Ġthe Ġfunctionality Ġrequires Ġthat Ġ[ init ] Ġreturns Ġa Ġ[ Command ]. Ċ Ġ* Ċ Ġ* Ġ@ param Ġ Ġinit Ċ Ġ* ĠĠĠĠĠĠĠĠ ĠThe Ġinitializing Ġblock Ġusing Ġa ĠCommand Builder . Ċ Ġ* Ċ Ġ* Ġ@ return ĠThe Ġ[ Command ] Ġbuilt . Ċ Ġ*/ Ċ inline Ġfun Ġcommand ( init : ĠCommand Builder . () Ġ-> ĠCommand ) Ġ= ĠCommand Builder (). init () Ċ Ċ /** ĠLazy Ġsetter Ġfor Ġ[ Command Builder # setName ][ Command Builder . setName ]. Ġ*/ Ċ infix Ġinline Ġfun ĠCommand Builder . name ( lazy : Ġ() Ġ-> ĠString ) Ġ= ĠsetName ( lazy ()) Ċ Ċ /** ĠLazy Ġsetter Ġfor Ġ[ Command Builder # add Alias ][ Command Builder . add Alias ]. Ġ*/ Ċ infix Ġinline Ġfun ĠCommand Builder . alias ( lazy : Ġ() Ġ-> ĠString ) Ġ= Ġadd Alias ( lazy ()) Ċ Ċ /** ĠLazy Ġsetter Ġfor Ġ[ Command Builder # set Help ][ Command Builder . set Help ]. Ġ*/ Ċ infix Ġinline Ġfun ĠCommand Builder . help ( lazy : Ġ() Ġ-> ĠString ) Ġ= Ġset Help ( lazy ()) Ċ Ċ /** ĠLazy Ġsetter Ġfor Ġ[ Command Builder # set Arguments ][ Command Builder . set Arguments ]. Ġ*/ Ċ infix Ġinline Ġfun ĠCommand Builder . arguments ( lazy : Ġ() Ġ-> ĠString ) Ġ= Ġset Arguments ( lazy ()) Ċ Ċ /** ĠLazy Ġsetter Ġfor Ġ[ Command Builder # set Guild Only ][ Command Builder . set Guild Only ]. Ġ*/ Ċ infix Ġinline Ġfun ĠCommand Builder . guild Only ( lazy : Ġ() Ġ-> ĠBoolean ) Ġ= Ġset Guild Only ( lazy ()) Ċ Ċ /** ĠLazy Ġsetter Ġfor Ġ[ Command Builder # set Owner Command ][ Command Builder . set Owner Command ]. Ġ*/ Ċ infix Ġinline Ġfun ĠCommand Builder . owner Command ( lazy : Ġ() Ġ-> ĠBoolean ) Ġ= Ġset Owner Command ( lazy ()) Ċ Ċ /** ĠLazy Ġsetter Ġfor Ġ[ Command Builder # set Category ][ Command Builder . set Category ]. Ġ*/ Ċ infix Ġinline Ġfun ĠCommand Builder . category ( lazy : Ġ() Ġ-> ĠCommand . Category ) Ġ= Ġset Category ( lazy ()) Ċ Ċ /** ĠLazy Ġsetter Ġfor Ġ[ Command Builder # set Cooldown ][ Command Builder . set Cooldown ]. Ġ*/ Ċ infix Ġinline Ġfun ĠCommand Builder . co old own ( lazy : Ġ() Ġ-> ĠInt ) Ġ= Ġset Cooldown ( lazy ()) Ċ Ċ /** ĠLazy Ġsetter Ġfor Ġ[ Command Builder # set Cooldown Scope ][ Command Builder . set Cooldown Scope ]. Ġ*/ Ċ infix Ġinline Ġfun ĠCommand Builder . co old own Scope ( lazy : Ġ() Ġ-> ĠCommand . Cooldown Scope ) Ġ= Ġset Cooldown Scope ( lazy ()) Ċ Ċ /** ĠLazy Ġsetter Ġfor Ġ[ Command Builder # set Bot Permissions ][ Command Builder . set Bot Permissions ]. Ġ*/ Ċ infix Ġinline Ġfun ĠCommand Builder . bot Permissions ( lazy : ĠMutable List < Permission >. () Ġ-> ĠUnit ) Ġ= Ġwith ( ArrayList < Permission >()) Ġ{ ĊĠĠĠ Ġlazy () ĊĠĠĠ Ġset Bot Permissions ( this ) Ċ } Ċ Ċ /** ĠLazy Ġsetter Ġfor Ġ[ Command Builder # setUser Permissions ][ Command Builder . setUser Permissions ]. Ġ*/ Ċ infix Ġinline Ġfun ĠCommand Builder . user Permissions ( lazy : ĠMutable List < Permission >. () Ġ-> ĠUnit ) Ġ= Ġwith ( ArrayList < Permission >()) Ġ{ ĊĠĠĠ Ġlazy () ĊĠĠĠ ĠsetUser Permissions ( this ) Ċ } Ċ Ċ /** ĠLazy Ġsetter Ġfor Ġ[ Command Builder # addChild ][ Command Builder . addChild ]. Ġ*/ Ċ infix Ġinline Ġfun ĠCommand Builder . child ( lazy : Ġ() Ġ-> ĠCommand ) Ġ= Ġadd Child ( lazy ()) Ċ Ċ /** ĠLazy Ġsetter Ġfor Ġ[ Command Builder # set Uses Topic Tags ][ Command Builder . set Uses Topic Tags ]. Ġ*/ Ċ infix Ġinline Ġfun ĠCommand Builder . topic Tags ( lazy : Ġ() Ġ-> ĠBoolean ) Ġ= Ġset Uses Topic Tags ( lazy ())