package Ġorg . r sm od . game . cmd Ċ Ċ import Ġcom . github . m ichael bull . logging . Inline Logger Ċ Ċ private Ġval Ġlogger Ġ= ĠInline Logger () Ċ Ċ class ĠCommand Map ( ĊĠĠĠ Ġprivate Ġval Ġcommands : ĠMutable Map < String , ĠCommand > Ġ= Ġmutable Map Of () Ċ ) Ġ: ĠMap < String , ĠCommand > Ġby Ġcommands Ġ{ ĊĊĠĠĠ Ġfun Ġregister ( name : ĠString , Ġinit : ĠCommand Builder . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠCommand Builder (). apply ( init ) ĊĠĠĠĠĠĠĠ Ġval Ġlowercase Ġ= Ġname . toLowerCase () ĊĠĠĠĠĠĠĠ Ġif Ġ( commands . containsKey ( lowercase )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror (" Command Ġwith Ġname Ġhas Ġalready Ġbeen Ġregistered Ġ( cmd =$ name )") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġcmd Ġ= Ġbuilder . build () ĊĠĠĠĠĠĠĠ Ġlogger . trace Ġ{ Ġ" Register Ġcommand Ġ( cmd =$ name , Ġdesc =${ cmd . description })" Ġ} ĊĠĠĠĠĠĠĠ Ġcommands [ lowercase ] Ġ= Ġcmd ĊĠĠĠ Ġ} Ċ } Ċ