package Ġde . md 5 l uk as . way points . pointer . variants Ċ Ċ import Ġde . md 5 l uk as . way points . Way points Plugin Ċ import Ġde . md 5 l uk as . way points . api . Track able Ċ import Ġde . md 5 l uk as . way points . config . pointers . ActionBar Configuration Ċ import Ġde . md 5 l uk as . way points . pointer . Pointer Ċ import Ġde . md 5 l uk as . way points . util . format Ċ import Ġnet . md _ 5 . b ungee . api . Chat MessageType Ċ import Ġnet . md _ 5 . b ungee . api . chat . Text Component Ċ import Ġorg . bukkit . Location Ċ import Ġorg . bukkit . entity . Player Ċ import Ġkotlin . math . atan 2 Ċ import Ġkotlin . math . round ToInt Ċ Ċ class ĠAction Bar Pointer ( ĊĠĠĠ Ġplugin : ĠWay points Plugin , ĊĠĠĠ Ġprivate Ġval Ġconfig : ĠAction Bar Configuration , Ċ ) Ġ: ĠPointer ( plugin , Ġconfig . interval ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġupdate ( player : ĠPlayer , Ġtrack able : ĠTrack able , Ġtranslated Target : ĠLocation ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġplayer . sp ig ot (). sendMessage ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠChat MessageType . ACTION _ BAR , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ* Text Component . from Legacy Text ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( translated Target Ġ!== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( config . show Distance Enabled Ġ&& Ġplayer . is S ne aking ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplugin . translations . POINTER S _ ACTION _ BAR _ DISTANCE . with Replacement s ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" distance 3 D " Ġto Ġplayer . location . distance ( translated Target ). format (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" height Difference " Ġto Ġ( player . location . y Ġ- Ġtrack able . location . y ). format () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgenerate Direction Indicator ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelta Angle To Target ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . location , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtranslated Target ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplugin . translations . POINTER S _ ACTION _ BAR _ WRONG _ WORLD . with Replacement s ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" current " Ġto Ġplugin . world Translations . get World Name ( player . world ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" correct " Ġto Ġplugin . world Translations . get World Name ( track able . location . world !! ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġgenerate Direction Indicator ( angle : ĠDouble ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( angle Ġ> Ġconfig . range ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ( config . indicator Color Ġ+ Ġconfig . left Arrow ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġconfig . normal Color ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġconfig . section . repeat ( config . amount Of Sections ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġconfig . right Arrow ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(- angle Ġ> Ġconfig . range ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ( config . normal Color Ġ+ Ġconfig . left Arrow ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġconfig . section . repeat ( config . amount Of Sections ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġconfig . indicator Color ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġconfig . right Arrow ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġpercent : ĠDouble Ġ= Ġ-( angle Ġ/ Ġconfig . range ) ĊĊĠĠĠĠĠĠĠ Ġvar Ġnth Section Ġ= Ġ(( config . amount Of Sections Ġ- Ġ 1 ). toDouble () Ġ/ Ġ 2 Ġ* Ġpercent ). round ToInt () ĊĊĠĠĠĠĠĠĠ Ġnth Section Ġ+= Ġ( config . amount Of Sections . toDouble () Ġ/ Ġ 2 ). round ToInt () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġ( config . normal Color Ġ+ Ġconfig . left Arrow ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġconfig . section . repeat ( nth Section Ġ- Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġconfig . indicator Color Ġ+ Ġconfig . section ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġconfig . normal Color Ġ+ Ġconfig . section . repeat ( config . amount Of Sections Ġ- Ġnth Section ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġconfig . right Arrow ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġreturned Ġvalues Ġrange Ġfrom Ġ- 1 8 0 Ġto Ġ 1 8 0 Ġdegrees , Ġwhere Ġas Ġnegative Ġnumbers Ġmean Ġyou Ġlook Ġto Ġmuch Ġleft Ġand ĊĠĠĠĠ Ġ* Ġpositive Ġnumbers Ġyou Ġlook Ġtoo Ġmuch Ġright ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġlocation ĠThe Ġlocation Ġto Ġcalculate Ġthe Ġangle Ġfrom ĊĠĠĠĠ Ġ* Ġ@ param Ġtarget ĠĠ ĠThe Ġtarget Ġwhen Ġlooked Ġat Ġthe Ġangle Ġis Ġ 0 ĊĠĠĠĠ Ġ* Ġ@ return ĠThe Ġdelta Ġangle ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġdelta Angle To Target ( location : ĠLocation , Ġtarget : ĠLocation ): ĠDouble Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġplayer Angle Ġ= Ġ( location . yaw Ġ+ Ġ 9 0 ). toDouble () ĊĊĠĠĠĠĠĠĠ Ġwhile Ġ( player Angle Ġ< Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer Angle Ġ+= Ġ 3 6 0 . 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġvar Ġangle Ġ= Ġplayer Angle Ġ- ĠMath . to Degrees ( atan 2 ( location . z Ġ- Ġtarget . z , Ġlocation . x Ġ- Ġtarget . x )) Ġ+ Ġ 1 8 0 ĊĊĠĠĠĠĠĠĠ Ġwhile Ġ( angle Ġ> Ġ 3 6 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġangle Ġ-= Ġ 3 6 0 . 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( angle Ġ> Ġ 1 8 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġangle Ġ= Ġ-( 3 6 0 Ġ- Ġangle ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġangle ĊĠĠĠ Ġ} Ċ }