package Ġcom . rose . gateway . configuration Ċ Ċ import Ġcom . rose . gateway . Gateway Plugin Ċ import Ġcom . rose . gateway . configuration . specs . Plugin Spec Ċ import Ġcom . uch uh imo . kon f . Config Ċ import Ġcom . uch uh imo . kon f . Item Ċ import Ġcom . uch uh imo . kon f . source . yaml . to Yaml Ċ import Ġkotlinx . coroutines . run Blocking Ċ Ċ class ĠPlugin Configuration ( private Ġval Ġplugin : ĠGateway Plugin ) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠCONFIG URATION _ FILE Ġ= Ġ" plugins / Gateway / Gateway . yaml " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠEX AMPLE _ CONFIGURATION _ URL Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" https :// raw . githubusercontent . com / n ich olas gro se / Gateway / main / examples / Gateway . yaml " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġconfiguration String Map Ġ= ĠConfiguration String Map ( Plugin Spec ) ĊĠĠĠ Ġprivate Ġval Ġconfiguration Loader Ġ= ĠConfiguration Loader ( Plugin Spec , ĠCONFIG URATION _ FILE , ĠEX AMPLE _ CONFIGURATION _ URL ) ĊĠĠĠ Ġvar Ġconfiguration : ĠConfig ? Ġ= Ġconfiguration Loader . load OrCreate Config () ĊĊĠĠĠ Ġfun Ġreload Configuration (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġconfiguration Ġ= Ġconfiguration Loader . load OrCreate Config () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( configuration Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplugin . discord Bot . stop () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġnot Loaded (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġconfiguration Ġ== Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun Ġ< T > Ġget ( item : ĠItem < T >): ĠT ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġconfig Ġ= Ġconfiguration Ġ?: Ġreturn Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn Ġconfig [ item ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun Ġ< T > Ġset ( item : ĠItem < T >, ĠnewValue : ĠT ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġconfig Ġ= Ġconfiguration Ġ?: Ġreturn ĊĊĠĠĠĠĠĠĠ Ġconfig [ item ] Ġ= ĠnewValue ĊĠĠĠĠĠĠĠ Ġconfig . to Yaml . to File ( CONFIGURATION _ FILE ) ĊĠĠĠ Ġ} Ċ } Ċ