package Ġnet . star legacy . feature . space Ċ Ċ import Ġnet . star legacy . PLUGIN Ċ import Ġorg . bukkit . World Ċ import Ġkotlin . math . cos Ċ import Ġkotlin . math . pow Ċ import Ġkotlin . math . sqrt Ċ Ċ data Ġclass ĠS ector ( val Ġangle : ĠInt , Ġval Ġdistance : ĠInt ) Ġ{ Ċ ĉ comp anion Ġobject Ġ{ Ċĉ ĉ val Ġletters Ġ= Ġ" abcdefgh ijkl mnopqrst uvw xyz ". toCharArray () Ċĉ ĉ val Ġletter Indices : ĠMap < Char , ĠInt > Ġ= Ġletters . with Index (). associate Ġ{ Ġit . value Ġto Ġit . index Ġ} ĊĊĉ ĉ private Ġfun Ġget Distance ( char : ĠChar ) Ġ= Ġ 2 6 Ġ- Ġletter Indices . get OrDefault ( char , Ġ 2 ) ĊĊĉ ĉ fun Ġget Sector ( world : ĠWorld ): ĠS ector Ġ{ Ċĉĉ ĉ return Ġget Sector ( world . name ) Ċĉ ĉ } ĊĊĉ ĉ fun Ġget Sector ( world Name : ĠString ): ĠS ector Ġ{ Ċĉĉ ĉ val Ġplanet Ġ= ĠSpace . get Planet ( world Name ) Ċĉĉ ĉ if Ġ( planet Ġ!= Ġnull ) Ġ{ Ċĉĉĉ ĉ return Ġget Sector ( planet . space World Name ) Ċĉĉ ĉ } ĊĊĉĉ ĉ var Ġstring Ġ= Ġworld Name ĊĊĉĉ ĉ if Ġ( string . length Ġ> Ġ 9 ) Ġ{ Ċĉĉĉ ĉ string Ġ= Ġstring . substring ( 9 ) Ġ// Ġremove ĠAnd rome da Ġprefix Ċĉĉĉ ĉ val Ġletter Ġ= Ġstring [ string . last Index ] Ġ// Ġget Ġthe Ġletter Ġat Ġthe Ġend Ċĉĉĉ ĉ val Ġdistance Ġ= Ġget Distance ( letter ) Ġ// Ġletter Ġrepresents Ġdistance Ġfrom Ġcore Ċĉĉĉ ĉ string Ġ= Ġstring . substring ( 0 , Ġstring . last Index ) Ġ// Ġremove Ġthe Ġletter Ċĉĉĉ ĉ val Ġangle Ġ= Ġstring . toInt OrNull () Ġ// Ġget Ġthe Ġangle Ġas Ġan Ġinteger Ċĉĉĉ ĉ if Ġ( angle Ġ!= Ġnull ) Ġ{ Ċĉĉĉĉ ĉ return ĠS ector ( angle , Ġdistance ) Ċĉĉĉ ĉ } Ċĉĉ ĉ } ĊĊĉĉ ĉ if Ġ( string Ġ!= Ġ" And rome da ") Ġ{ Ċĉĉĉ ĉ PLUGIN . logger . warning (" Invalid Ġsector Ġ$ world Name , Ġdefault ing Ġto Ġ 7 b ") Ċĉĉ ĉ } ĊĊĉĉ ĉ return ĠS ector ( 7 , Ġget Distance (' b ')) Ċĉ ĉ } Ċ ĉ } ĊĊ ĉ fun Ġdistance ( other : ĠS ector ): ĠDouble Ġ{ Ċĉ ĉ val Ġd 1 Ġ= Ġdistance . toDouble () Ġ+ Ġ 0 . 5 Ċĉ ĉ val Ġd 2 Ġ= Ġother . distance . toDouble () Ġ+ Ġ 0 . 5 Ċĉ ĉ val Ġangle Ġ= ĠMath . to Radians (( angle Ġ- Ġother . angle ). toDouble () Ġ* Ġ 1 0 . 0 ) Ċĉ ĉ return Ġsqrt ( d 1 . pow ( 2 ) Ġ+ Ġd 2 . pow ( 2 ) Ġ- Ġ 2 Ġ* Ġd 1 Ġ* Ġd 2 Ġ* Ġcos ( angle )) Ċ ĉ } ĊĊ ĉ override Ġfun ĠtoString (): ĠString Ġ{ Ċĉ ĉ return Ġ" And rome da ĠS ector Ġ$ angle ${ letters [ distance ]}" Ċ ĉ } Ċ } Ċ