package Ġink . pt ms . z aph k iel . item . ke ther . shared Ċ Ċ import Ġink . pt ms . z aph k iel . Z aph k iel API Ċ import Ġorg . bukkit . entity . Player Ċ import Ġtab ool ib . common 5 . Co erce Ċ import Ġtab ool ib . library . ke ther . Parsed Action Ċ import Ġtab ool ib . module . ke ther .* Ċ import Ġjava . util . concurrent . Comp letableFuture Ċ Ċ class ĠAction Z aph k iel Ġ{ ĊĊĠĠĠ Ġclass ĠTake ( val Ġid Action : ĠParsed Action < Any >, Ġval Ġamount Action : ĠParsed Action < Any >) Ġ: ĠScript Action < Boolean >() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrun ( frame : ĠScript Frame ): ĠCompletableFuture < Boolean > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġviewer Ġ= Ġframe . script (). sender ?. cast S af ely < Player >() Ġ?: Ġerror (" No Ġplayer Ġselected .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġframe . new Frame ( id Action ). run < Any >(). then Apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠZ aph k iel API . registered Item [ it . toString ()] Ġ?: Ġerror (" Illegal Ġbuff Ġid : Ġ$ it . toString () ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġframe . new Frame ( amount Action ). run < Any >(). then Apply Ġ{ Ġam Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġamount Ġ= ĠCo erce . to Integer ( am ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( amount Ġ<= Ġ 0 ) Ġerror (" Illegal Ġamount : Ġ$ am ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . take Item ( viewer , Ġamount ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. join () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠHas ( val Ġid Action : ĠParsed Action < Any >, Ġval Ġamount Action : ĠParsed Action < Any >) Ġ: ĠScript Action < Boolean >() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrun ( frame : ĠScript Frame ): ĠCompletableFuture < Boolean > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġviewer Ġ= Ġframe . script (). sender ?. cast S af ely < Player >() Ġ?: Ġerror (" No Ġplayer Ġselected .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġframe . new Frame ( id Action ). run < Any >(). then Apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠZ aph k iel API . registered Item [ it . toString ()] Ġ?: Ġerror (" Illegal Ġbuff Ġid : Ġ$ it . toString () ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġframe . new Frame ( amount Action ). run < Any >(). then Apply Ġ{ Ġam Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġamount Ġ= ĠCo erce . to Integer ( am ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( amount Ġ<= Ġ 0 ) Ġerror (" Illegal Ġamount : Ġ$ am ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . has Item ( viewer , Ġamount ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. join () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Ke ther Parser ([" z aph k iel "], Ġshared Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġfun Ġparser () Ġ= Ġscript Parser Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . switch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcase (" take ") Ġ{ ĠTake ( next Action (), Ġnext Action ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcase (" has ") Ġ{ ĠHas ( next Action (), Ġnext Action ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }