package Ġcom . rose . gateway . minecraft . commands . framework Ċ Ċ import Ġcom . rose . gateway . Gateway Plugin Ċ import Ġcom . rose . gateway . minecraft . commands . framework . data . Command Context Ċ import Ġcom . rose . gateway . minecraft . commands . framework . data . Command Definition Ċ import Ġcom . rose . gateway . minecraft . commands . framework . data . Tab Completion Context Ċ import Ġnet . ky ori . ad venture . text . Component Ċ import Ġnet . ky ori . ad venture . text . format . TextColor Ċ import Ġorg . bukkit . command . Command Executor Ċ import Ġorg . bukkit . command . Command Sender Ċ import Ġorg . bukkit . command . Tab Comp leter Ċ Ċ class ĠCommand ( val Ġdefinition : ĠCommand Definition ) Ġ: ĠCommand Executor , ĠTab Comp leter Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġsub command Runner ( context : ĠCommand Context ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsub command Ġ= Ġcontext . command Arguments . first () Ġas ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchild Command Ġ= Ġcontext . definition . sub commands [ sub command ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġarguments Ġ= Ġcontext . raw Command Arguments ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( child Command Ġ== Ġnull ) Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild Command . on Command ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsender Ġ= Ġcontext . sender , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcommand Ġ= Ġcontext . command , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Ġ= Ġcontext . label , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġargs Ġ= Ġarguments . sub List ( 1 , Ġarguments . size ). to Typed Array () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Command ( ĊĠĠĠĠĠĠĠ Ġsender : ĠCommand Sender , ĊĠĠĠĠĠĠĠ Ġcommand : Ġorg . bukkit . command . Command , ĊĠĠĠĠĠĠĠ Ġlabel : ĠString , ĊĠĠĠĠĠĠĠ Ġargs : ĠArray < String > ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġsuccess Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( executor Ġin Ġdefinition . exec utors ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconverted Arguments Ġ= Ġexecutor . argument Parser . parse All Arguments ( args ) Ġ?: Ġcontinue ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuccess Ġ= Ġexecutor . executor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommand Context ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdefinition Ġ= Ġdefinition , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsender Ġ= Ġsender , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcommand Ġ= Ġcommand , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Ġ= Ġlabel , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġraw Command Arguments Ġ= Ġargs . toList (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcommand Arguments Ġ= Ġconverted Arguments ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! success ) Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! success ) Ġsend Argument ErrorMessage ( sender ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠError ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsender . sendMessage ( Component . text (" Error : Ġ${ e . message }", ĠText Color . from HexString ("# FF 0 0 0 0 "))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend Argument ErrorMessage ( sender ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsend Argument ErrorMessage ( sender : ĠCommand Sender ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsender . sendMessage ( definition . documentation ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Tab Complete ( ĊĠĠĠĠĠĠĠ Ġsender : ĠCommand Sender , ĊĠĠĠĠĠĠĠ Ġcommand : Ġorg . bukkit . command . Command , ĊĠĠĠĠĠĠĠ Ġalias : ĠString , ĊĠĠĠĠĠĠĠ Ġargs : ĠArray < String > ĊĠĠĠ Ġ): ĠList < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( executor Ġin Ġdefinition . exec utors ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparsed Arguments Ġ= Ġexecutor . argument Parser . parse Argument Subset ( args ) Ġ?: Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtab Comp letions Ġ= Ġexecutor . argument Parser . get Tab Comp letions ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTab Completion Context ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsender Ġ= Ġsender , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcommand Ġ= Ġcommand , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalias Ġ= Ġalias , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġraw Arguments Ġ= Ġargs . toList (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparsed Arguments Ġ= Ġparsed Arguments , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcommand Definition Ġ= Ġdefinition ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tab Comp letions Ġ!= Ġnull ) Ġreturn Ġtab Comp letions ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn ĠlistOf () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġregister Command ( plugin : ĠGateway Plugin ) Ġ{ ĊĠĠĠĠĠĠĠ Ġplugin . get Command ( definition . name ) !!. set Executor ( this ) ĊĠĠĠ Ġ} Ċ } Ċ