package Ġink . pt ms . ady esh ach . common . script . action . npc Ċ Ċ import Ġink . pt ms . ady esh ach . api . Ad y esh ach API Ċ import Ġink . pt ms . ady esh ach . common . script . Script Context Ċ import Ġio . izz el . ke ther . common . api .* Ċ import Ġjava . util . concurrent . Comp letableFuture Ċ import Ġjava . util . function . Function Ċ Ċ /** Ċ Ġ* Ġ@ author ĠI zz el Ali z Ċ Ġ*/ Ċ class ĠAction Use ( val Ġmanager : ĠString , Ġval Ġtemporary : ĠBoolean ) Ġ: ĠQuest Action < Void , ĠScript Context > Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġis Async (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġprocess ( context : ĠScript Context ): ĠCompletableFuture < Void > Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( manager Ġ== Ġ" private " Ġ&& Ġcontext . viewer Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRuntimeException (" The Ġprivate Ġmanager Ġrequired Ġany Ġviewer .") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcontext . persistent Data [" __ manager __ "] Ġ= Ġwhen Ġ( manager ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" public " Ġ-> Ġif Ġ( temporary ) ĠAd y esh ach API . getEntity Manager Public Temporary () Ġelse ĠAd y esh ach API . getEntity Manager Public () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" private " Ġ-> Ġif Ġ( temporary ) ĠAd y esh ach API . getEntity Manager Private Temporary ( context . viewer !! ) Ġelse ĠAd y esh ach API . getEntity Manager Private ( context . viewer !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠCompletableFuture . completed Future ( null ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetData Prefix (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" use " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Action Use ( manager ='$ manager ', Ġtemporary =$ temporary )" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠĠĠĠĠ Ġfun Ġparser (): ĠQuest Action Parser Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġobject Ġ: ĠQuest Action Parser Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġ< T , ĠC Ġ: ĠQuest Context > Ġresolve ( resolver : ĠQuest Resolver < C >): ĠQuest Action < T , ĠC > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠFunction < Quest Resolver < C >, ĠQuest Action < T , ĠC >> Ġ{ Ġt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmanager Ġ= Ġt . nextElement () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġtemporary Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( t . hasNext ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt . mark () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( t . nextElement () Ġ== Ġ" temporary ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemporary Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt . reset () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAction Use ( manager , Ġtemporary ) Ġas ĠQuest Action < T , ĠC > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. apply ( resolver ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcomplete ( parms : ĠList < String >): ĠList < String > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠKe ther Comp le ters . seq ( Ke ther Comp le ters . consume ()). apply ( parms ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }