package Ġorg . anti _ ad . mc . ip next . item . rule . parameter Ċ Ċ import Ġorg . anti _ ad . mc . common . extensions . try Sw allow Ċ import Ġorg . anti _ ad . mc . common . extensions . useful Name Ċ import Ġorg . anti _ ad . mc . common . van illa . alias . N bt Compound Ċ import Ġorg . anti _ ad . mc . ip next . item . N bt Utils Ċ import Ġorg . anti _ ad . mc . ip next . item . rule . Argument Type Ċ import Ġorg . anti _ ad . mc . ip next . item . rule . Rule Ċ import Ġorg . anti _ ad . mc . ip next . parser . Temporary Rule Parser Ċ Ċ object ĠString Argument Type Ġ: ĠArgument Type < String > Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠtoString ( value : ĠString ) Ġ= Ġvalue ĊĠĠĠ Ġoverride Ġfun Ġparse ( argument : ĠString ) Ġ= Ġargument Ċ } Ċ Ċ object ĠBoolean Argument Type Ġ: ĠArgument Type < Boolean > Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠtoString ( value : ĠBoolean ) Ġ= Ġvalue . toString () ĊĠĠĠ Ġoverride Ġfun Ġparse ( argument : ĠString ) Ġ= ĊĠĠĠĠĠĠĠ Ġargument . take If Ġ{ Ġit Ġ== Ġ" true " Ġ|| Ġit Ġ== Ġ" false " Ġ} ?. to Boolean () Ċ } Ċ Ċ class ĠEnum Argument Type < T Ġ: ĠEnum < T >>( val Ġenum Class : ĠClass < T >) Ġ: ĠArgument Type < T > Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠtoString ( value : ĠT ) Ġ= Ġvalue . name . toLowerCase () ĊĠĠĠ Ġoverride Ġfun Ġparse ( argument : ĠString ) Ġ= ĊĠĠĠĠĠĠĠ Ġtry Sw allow Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjava . lang . Enum . valueOf ( enum Class , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġargument . toUpperCase ()) ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ Ċ object ĠNbt Argument Type Ġ: ĠArgument Type < N bt Compound > Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠtoString ( value : ĠNbt Compound ) Ġ= Ġvalue . toString () ĊĠĠĠ Ġoverride Ġfun Ġparse ( argument : ĠString ) Ġ= ĠNbt Utils . parse N bt ( argument ) Ċ } Ċ Ċ object ĠRule Argument Type Ġ: ĠArgument Type < Rule > Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠtoString ( value : ĠRule ) Ġ= Ġ"[ ${ value . java Class . useful Name }] " Ġ// value . toString () Ġ// Ġtodo ĊĠĠĠ Ġoverride Ġfun Ġparse ( argument : ĠString ) Ġ= ĠTemporary Rule Parser . parse ( argument ) Ċ } Ċ Ċ object ĠTag Name Argument Type Ġ: ĠArgument Type < ItemType Matcher > Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠtoString ( value : ĠItem Type Matcher ) Ġ= Ġvalue . toString () ĊĠĠĠ Ġoverride Ġfun Ġparse ( argument : ĠString ) Ġ= ĠItem Type Matcher . for Tag ( argument ) Ċ } Ċ Ċ object ĠItem Name Argument Type Ġ: ĠArgument Type < ItemType Matcher > Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠtoString ( value : ĠItem Type Matcher ) Ġ= Ġvalue . toString () ĊĠĠĠ Ġoverride Ġfun Ġparse ( argument : ĠString ) Ġ= ĠItem Type Matcher . for Item ( argument ) Ċ } Ċ Ċ object ĠNbt Path Argument Type Ġ: ĠArgument Type < N bt Utils . N bt Path > Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠtoString ( value : ĠNbt Utils . N bt Path ) Ġ= Ġvalue . toString () ĊĠĠĠ Ġoverride Ġfun Ġparse ( argument : ĠString ) Ġ= ĠNbt Utils . N bt Path . of ( argument ) Ċ } Ċ