package Ġorg . cascade bot . cascade bot . data . objects Ċ Ċ import Ġcom . google . common . collect . Sets Ċ import Ġorg . cascade bot . cascade bot . Cascade Bot Ċ import Ġorg . cascade bot . cascade bot . command meta . Main Command Ċ import Ġorg . cascade bot . cascade bot . command meta . Module Ċ import Ġorg . cascade bot . cascade bot . data . Config Ċ import Ġorg . cascade bot . cascade bot . data . language . Locale Ċ import Ġjava . util . concurrent . Concurrent HashMap ĊĊ Ċ @ Settings Container ( module Ġ= ĠModule . CORE ) Ċ class ĠGuild Settings Core Ġ{ ĊĊĠĠĠ Ġ@ Setting ĊĠĠĠ Ġvar Ġmention Prefix Ġ= Ġfalse ĊĊĠĠĠ Ġ@ Setting ĊĠĠĠ Ġvar Ġdelete Command Ġ= Ġtrue ĊĊĠĠĠ Ġ@ Setting ĊĠĠĠ Ġvar Ġuse Embed For Messages Ġ= Ġtrue ĊĊĠĠĠ Ġ@ Setting ĊĠĠĠ Ġvar Ġshow Perm Errors Ġ= Ġtrue ĊĊĠĠĠ Ġ@ Setting ĊĠĠĠ Ġvar Ġshow Module Errors Ġ= Ġtrue ĊĊĠĠĠ Ġ@ Setting ĊĠĠĠ Ġvar Ġadmins Have All Per ms Ġ= Ġtrue ĊĊĠĠĠ Ġ@ Setting ĊĠĠĠ Ġvar Ġhelp Hide Commands No Permission Ġ= Ġtrue ĊĊĠĠĠ Ġ@ Setting ĊĠĠĠ Ġvar Ġhelp Show All Modules Ġ= Ġfalse ĊĊĠĠĠ Ġvar Ġlocale : ĠLocale Ġ= ĠLocale . getDefault Locale () ĊĠĠĠ Ġvar Ġprefix : ĠString Ġ= ĠConfig . INS . default Prefix ĊĊĠĠĠ Ġprivate Ġval Ġcommand Info Ġ= ĠConcurrent HashMap < Class < Main Command >, ĠMutable Set < Guild Command Info >>() ĊĠĠĠ Ġprivate Ġval Ġenabled Modules : ĠMutable Set < Module > Ġ= ĠSets . new Concurrent HashSet ( Module . get Modules ( Module Flag . DEFAULT )) ĊĊĠĠĠ Ġ// region ĠModules ĊĠĠĠ Ġfun Ġenable Module ( module : ĠModule ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire (! module . is Private ) Ġ{ Ġ" This Ġmodule Ġis Ġnot Ġavailable Ġto Ġbe Ġenabled !" Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġenabled Modules . add ( module ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdisable Module ( module : ĠModule ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire (! module . is Private ) Ġ{ Ġ" This Ġmodule Ġis Ġnot Ġavailable Ġto Ġbe Ġdisabled !" Ġ} ĊĠĠĠĠĠĠĠ Ġrequire (! module . isRequired ) Ġ{ Ġ" Cannot Ġdisable Ġthe Ġ${ module . toString (). toLowerCase ()} Ġmodule !" Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġenabled Modules . remove ( module ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Module Enabled ( module : ĠModule ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġis Enabled Ġ= Ġenabled Modules . contains ( module ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! isEnabled Ġ&& Ġmodule . isRequired ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġenabled Modules . add ( module ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġis Enabled ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// endregion ĊĊĠĠĠ Ġ// region ĠCommands ĊĠĠĠ Ġfun Ġenable Command ( command : ĠMain Command ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( command . module (). is Private ) Ġreturn ĊĠĠĠĠĠĠĠ Ġif Ġ( command Info . contains ( command . java Class )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Guild Command Info ( command ). enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġenable Command By Module ( module : ĠModule ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( module . is Private ) Ġreturn ĊĠĠĠĠĠĠĠ Ġfor Ġ( command Ġin ĠCascade Bot . INS . command Manager . get Commands By Module ( module )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġenable Command ( command ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdisable Command ( command : ĠMain Command ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( command . module (). is Private ) Ġreturn ĊĠĠĠĠĠĠĠ Ġget Guild Command Info ( command ). enabled Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdisable Command By Module ( module : ĠModule ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( module . is Private ) Ġreturn ĊĠĠĠĠĠĠĠ Ġfor Ġ( command Ġin ĠCascade Bot . INS . command Manager . get Commands By Module ( module )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdisable Command ( command ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Command Enabled ( command : ĠMain Command ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( command Info . contains ( command . java Class )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Guild Command Info ( command ). enabled ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġis Module Enabled ( command . module ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Command Aliases ( command : ĠMain Command ): ĠSet < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( command Info . contains ( command . java Class )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Guild Command Info ( command ). aliases . apply Changes ( command . global Aliases ( locale )) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġcommand . global Aliases ( locale ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Alias ( command : ĠMain Command , Ġalias : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Guild Command Info ( command ). aliases . add ( alias ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġremove Alias ( command : ĠMain Command , Ġalias : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Guild Command Info ( command ). aliases . remove ( alias ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Guild Command Info Set ( command : ĠMain Command ): ĠMutable Set < Guild Command Info > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcommand Info . compute If Absent ( command . java Class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmutable Set Of ( Guild Command Info ( command , Ġlocale )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Guild Command Info ( command : ĠMain Command , Ġlocale : ĠLocale Ġ= Ġthis . locale ): ĠGuild Command Info Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Guild Command Info Set ( command ). find Ġ{ Ġit . locale Ġ== Ġlocale Ġ} Ġ?: Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcommand Info Ġ= ĠGuild Command Info ( command , Ġlocale ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Guild Command Info Set ( command ). add ( command Info ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcommand Info ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// endregion Ċ Ċ }