package Ġnet . source bot . impl . command Ċ Ċ import Ġcom . fasterxml . jackson . databind . JsonNode Ċ import Ġnet . dv 8 tion . j da . api . entities . Message Ċ import Ġnet . source bot . api . command . Command Ċ import Ġnet . source bot . api . command . Root Command Ċ import Ġnet . source bot . api . command . argument . Argument Ċ import Ġnet . source bot . api . command . argument . Argument Info Ċ import Ġnet . source bot . api . command . argument . Arguments Ċ import Ġnet . source bot . api . command . argument . Optional Argument Ċ import Ġnet . source bot . api . configuration . Configuration Manager Ċ import Ġnet . source bot . api . configuration . Json Serial Ċ import Ġnet . source bot . api . response . Info Response Ċ import Ġnet . source bot . api . response . Response Ċ import Ġnet . source bot . api . response . Success Response Ċ Ċ class ĠConfiguration Command ( ĊĠĠĠ Ġprivate Ġval Ġconfiguration Manager : ĠConfiguration Manager Ċ ) Ġ: ĠRoot Command () Ġ{ ĊĠĠĠ Ġoverride Ġval Ġname Ġ= Ġ" configuration " ĊĠĠĠ Ġoverride Ġval Ġdescription Ġ= Ġ" Util ize Ġthe ĠGuild ĠConfiguration ." ĊĠĠĠ Ġoverride Ġval Ġpermission Ġ= Ġname ĊĠĠĠ Ġoverride Ġval Ġguild Only Ġ= Ġtrue ĊĠĠĠ Ġoverride Ġval Ġaliases Ġ= ĠarrayOf (" config ", Ġ" configure ", Ġ" cfg ") ĊĠĠĠ Ġoverride Ġval Ġcleanup Response Ġ= Ġtrue ĊĊĠĠĠ Ġprivate Ġinner Ġclass ĠConfiguration Set Command Ġ: ĠBootstrap ( ĊĠĠĠĠĠĠĠ Ġ" set ", Ġ" Set Ġa Ġconfiguration Ġvalue ." ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġargument Info Ġ= ĠArgument Info ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠArgument (" path ", Ġ" The Ġpath Ġof Ġthe Ġvalue Ġto Ġbe Ġset "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠArgument (" value ", Ġ" The Ġvalue Ġto Ġset ") ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġexecute ( message : ĠMessage , Ġargs : ĠArguments ): ĠResponse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpath Ġ= Ġargs . next (" You Ġdid Ġnot Ġspecify Ġa Ġconfiguration Ġpath !") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġargs . next (" You Ġdid Ġnot Ġspecify Ġa Ġvalue Ġto Ġset !") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconfig Ġ= Ġconfiguration Manager [ message . guild ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue . run Catch ing Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJson Serial . mapper . read Tree ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. get OrDefault ( value ). let Ġ{ Ġconfig [ path ] Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration Manager . save Data ( message . guild ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSuccess Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Configuration ĠUpdated ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"` $ path ` Ġhas Ġbeen Ġset Ġto Ġ`$ value `" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġinner Ġclass ĠConfiguration Unset Command Ġ: ĠBootstrap ( ĊĠĠĠĠĠĠĠ Ġ" unset ", Ġ" Unset Ġa Ġconfiguration Ġvalue ." ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġargument Info Ġ= ĠArgument Info ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠArgument (" path ", Ġ" The Ġpath Ġof Ġthe Ġvalue Ġto Ġunset .") ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġexecute ( message : ĠMessage , Ġargs : ĠArguments ): ĠResponse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpath Ġ= Ġargs . next (" You Ġdid Ġnot Ġspecify Ġa Ġconfiguration Ġpath !") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconfig Ġ= Ġconfiguration Manager [ message . guild ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfig [ path ] Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration Manager . save Data ( message . guild ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSuccess Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Configuration ĠUpdated ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" The Ġvalue Ġat Ġ`$ path ` Ġhas Ġbeen Ġunset ." ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġinner Ġclass ĠConfiguration Get Command Ġ: ĠBootstrap ( ĊĠĠĠĠĠĠĠ Ġ" get ", Ġ" Get Ġa Ġvalue Ġfrom Ġthe Ġconfiguration ." ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġargument Info Ġ= ĠArgument Info ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOptional Argument (" path ", Ġ" The Ġpath Ġof Ġthe Ġvalue Ġto Ġget , Ġabsent Ġto Ġget Ġthe Ġwhole Ġconfiguration .") ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġexecute ( message : ĠMessage , Ġargs : ĠArguments ): ĠResponse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconfig Ġ= Ġconfiguration Manager [ message . guild ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠInfo Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Configuration ĠQuery ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġargs . next ()?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ``` json \ n ${ config . optional < JsonNode >( it )?. to Pretty String () }\ n ``` " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ?: Ġ" ``` json \ n ${ config . json . to Pretty String () }\ n ``` " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġadd Children ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConfiguration Set Command (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConfiguration Unset Command (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConfiguration Get Command () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġabstract Ġclass ĠBootstrap ( ĊĠĠĠ Ġfinal Ġoverride Ġval Ġname : ĠString , ĊĠĠĠ Ġfinal Ġoverride Ġval Ġdescription : ĠString Ċ ) Ġ: ĠCommand () Ġ{ ĊĠĠĠ Ġfinal Ġoverride Ġval Ġpermission Ġby Ġlazy Ġ{ Ġ" configuration .$ name " Ġ} ĊĠĠĠ Ġfinal Ġoverride Ġval Ġguild Only Ġ= Ġtrue ĊĠĠĠ Ġoverride Ġval Ġcleanup Response Ġ= Ġfalse Ċ }