package Ġme . ar asp le . mc . tr menu . display . item . property Ċ Ċ import Ġme . ar asp le . mc . tr menu . modules . configuration . property . Nodes Ċ import Ġme . ar asp le . mc . tr menu . display . item . Item Ċ import Ġme . ar asp le . mc . tr menu . modules . script . Scripts Ċ import Ġme . ar asp le . mc . tr menu . utils . Ms ger Ċ import Ġorg . bukkit . entity . Player Ċ Ċ /** Ċ Ġ* Ġ@ author ĠAr asp le Ċ Ġ* Ġ@ date Ġ 2 0 2 0 / 5 / 3 0 Ġ 1 4 : 0 9 Ċ Ġ*/ Ċ class ĠL ore ( val Ġlo re : ĠMutable List < String >, Ġval Ġconditions : ĠMutable Map < Int , ĠPair < String , ĠString >>) Ġ{ ĊĊĠĠĠ Ġconstructor ( lo re : ĠList < String >) Ġ: Ġthis ( lo re . to Mutable List (), Ġmutable Map Of ()) ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġlo re . forEach Indexed Ġ{ Ġindex , Ġlo re Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNodes . read ( lo re ). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . second [ Nodes . REQUIRE MENT ]?. let Ġ{ Ġcondition Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( condition . isNotBlank ()) Ġconditions [ index ] Ġ= ĠPair ( condition , ĠItem . color ize L ore ( it . first )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Update able (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlo re . any Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMs ger . contains Place holders ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġform ated L ore ( player : ĠPlayer ): ĠMutable List < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlo res Ġ= Ġmutable ListOf < String >() ĊĠĠĠĠĠĠĠ Ġlo re . forEach Indexed Ġ{ Ġindex , Ġlo re Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcondition Ġ= Ġconditions [ index ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( condition Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Scripts . expression ( player , Ġcondition . first ). as Boolean ()) Ġlo res . addAll ( format Lo res ( player , Ġcondition . second )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġlo res . add ("") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġlo res . addAll ( format Lo res ( player , ĠItem . color ize L ore ( lo re ))) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġlo res ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġformat Lo res ( player : ĠPlayer , Ġstring : ĠString ) Ġ= ĠMs ger . replace ( player , Ġstring ). split ("\\ n ") Ċ Ċ }