package Ġcom . skill w . random item . internal . type Ċ Ċ import Ġcom . skill w . p ou voir . P ou voir Ċ import Ġcom . skill w . p ou voir . util . Calculation Utils . result Double Ċ import Ġcom . skill w . p ou voir . util . Number Utils . format Ċ import Ġcom . skill w . random item . api . variable . type . Base Variable Type Ċ import Ġorg . bukkit . entity . Living Entity Ċ import Ġtab ool ib . common 5 . Co erce Ċ import Ġjava . util . function . Function Ċ Ċ object ĠCalcul ation Type Ġ: ĠBase Variable Type (" Calculation ", ĠFunction Ġ{ ĊĠĠĠ Ġval Ġdata Ġ= Ġit . first ĊĠĠĠ Ġval Ġentity Ġ= Ġdata [" entity "] Ġas ? ĠL iving Entity ? ĊĠĠĠ Ġval Ġcontext Ġ= Ġdata [" ${ it . second }- context "] Ġas ĠMap < *, Ġ*> ĊĠĠĠ Ġval Ġformula Ġ= Ġcontext [" formula "]. toString () ĊĠĠĠ Ġval Ġmin Ġ= ĠCo erce . as Double ( data . handle ( context [" min "] Ġ?: Ġ" no ")) ĊĠĠĠ Ġval Ġmax Ġ= ĠCo erce . as Double ( data . handle ( context [" max "] Ġ?: Ġ" no ")) ĊĠĠĠ Ġval Ġvalue Ġ= Ġdata . handle ( formula ). result Double ( entity ) ĊĠĠĠ Ġval Ġresult Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( min . isPresent Ġ&& Ġvalue Ġ<= Ġmin . get ()) Ġmin . get () Ġelse Ġif Ġ( max . isPresent Ġ&& Ġvalue Ġ>= Ġmax . get ()) Ġmax . get () Ġelse Ġvalue ĊĠĠĠ Ġval Ġformat Ġ= Ġcontext [" format "] Ġas ? ĠString Ġ?: ĠP ou voir . config Manager . number Format ĊĠĠĠ Ġreturn @ Function Ġresult . format ( format ) Ċ })