package Ġcom . gab riel . lun ala . project . utils . modules Ċ Ċ import Ġcom . gab riel . lun ala . project . L un ala Ċ import Ġcom . gab riel . lun ala . project . command . Command Ċ import Ġcom . gab riel . lun ala . project . command . handler . Command Holder Ċ import Ġcom . gab riel . lun ala . project . module . L un ala Module Ċ import Ġcom . gab riel . lun ala . project . utils . events . Event Holder Ċ import Ġcom . gab riel . lun ala . project . utils . events . L un ala Event Manager Ċ import Ġorg . k oin . core . context . load K oin Modules Ċ import Ġorg . k oin . core . context . unload K oin Modules Ċ import Ġorg . k oin . core . inject Ċ import Ġorg . k oin . core . module . Module Ċ Ċ private Ġval Ġholder : ĠCommand Holder Ġby ĠL un ala . inject () Ċ private Ġval Ġmanager : ĠL un ala Event Manager Ġby ĠL un ala . inject () Ċ Ċ fun ĠL un ala Module . register Commands ( var arg Ġall : ĠCommand ): ĠUnit Ġ= ĊĠĠĠĠĠĠĠ Ġall . forEach Ġ{ Ġcommands . add ( it ); Ġholder . register ( it ) Ġ} Ċ Ċ fun ĠL un ala Module . unregister Commands ( var arg Ġall : ĠCommand ): ĠUnit Ġ= ĊĠĠĠĠĠĠĠ Ġall . forEach Ġ{ Ġcommands . add ( it ); Ġholder . commands . remove ( it . labels ) Ġ} Ċ Ċ fun ĠL un ala Module . register Listeners ( var arg Ġall : ĠEvent Holder ): ĠUnit Ġ= ĊĠĠĠĠĠĠĠ Ġall . forEach Ġ{ Ġlisteners . add ( it ); Ġmanager . register ( it ) Ġ} Ċ Ċ fun ĠL un ala Module . unregister Listeners ( var arg Ġall : ĠEvent Holder ): ĠUnit Ġ= ĊĠĠĠĠĠĠĠ Ġall . forEach Ġ{ Ġlisteners . add ( it ); Ġmanager . unregister ( it ) Ġ} ĊĠĠ Ċ fun ĠL un ala Module . register Dependencies ( callback : ĠModule . () Ġ-> ĠUnit ): ĠUnit Ġ= ĊĠĠĠĠĠĠĠ Ġmodules . add ( Module ( create At Start Ġ= Ġfalse , Ġoverride Ġ= Ġfalse ). apply ( callback ). also Ġ{ Ġload K oin Modules ( it ) Ġ}). let Ġ{ ĠUnit Ġ} Ċ Ċ fun ĠL un ala Module . unregister Dependencies ( callback : ĠModule . () Ġ-> ĠUnit ): ĠUnit Ġ= ĊĠĠĠĠĠĠĠ Ġmodules . remove ( Module ( create At Start Ġ= Ġfalse , Ġoverride Ġ= Ġfalse ). apply ( callback ). also Ġ{ Ġun load K oin Modules ( it ) Ġ}). let Ġ{ ĠUnit Ġ} Ċ