/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 8 Ġ- Ġ 2 0 1 9 ĠC ub x ity , Ġsuper bl a ube ere 2 7 Ġand ĠK od ing King 1 Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE ĠSOFTWARE . Ċ Ġ*/ Ċ Ċ package Ġdev . cub x ity . mc . protocol . packets . game . server . entity . player Ċ Ċ import Ġdev . cub x ity . mc . protocol . Protocol Version Ċ import Ġdev . cub x ity . mc . protocol . data . magic . Magic Registry Ċ import Ġdev . cub x ity . mc . protocol . data . magic . Position Element Ċ import Ġdev . cub x ity . mc . protocol . net . io . Net Input Ċ import Ġdev . cub x ity . mc . protocol . net . io . Net Output Ċ import Ġdev . cub x ity . mc . protocol . packets . Packet ĊĊ Ċ class ĠServer Player Position Look Packet ( ĊĠĠĠ Ġvar Ġx : ĠDouble , ĊĠĠĠ Ġvar Ġy : ĠDouble , ĊĠĠĠ Ġvar Ġz : ĠDouble , ĊĠĠĠ Ġvar Ġyaw : ĠFloat , ĊĠĠĠ Ġvar Ġpitch : ĠFloat , ĊĠĠĠ Ġvar Ġrelative : ĠArray < Position Element >, ĊĠĠĠ Ġvar Ġtele port Id : ĠInt Ċ ) Ġ: ĠPacket () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġread ( buf : ĠNet Input , Ġtarget : ĠProtocol Version ) Ġ{ ĊĠĠĠĠĠĠĠ Ġx Ġ= Ġbuf . read Double () ĊĠĠĠĠĠĠĠ Ġy Ġ= Ġbuf . read Double () ĊĠĠĠĠĠĠĠ Ġz Ġ= Ġbuf . read Double () ĊĠĠĠĠĠĠĠ Ġyaw Ġ= Ġbuf . read Float () ĊĠĠĠĠĠĠĠ Ġpitch Ġ= Ġbuf . read Float () ĊĠĠĠĠĠĠĠ Ġrelative Ġ= ĠarrayOf () ĊĊĠĠĠĠĠĠĠ Ġval Ġflags Ġ= Ġbuf . read Unsigned Byte () ĊĠĠĠĠĠĠĠ Ġfor Ġ( element Ġin ĠPosition Element . values ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbit Ġ= Ġ 1 Ġshl ĠMagic Registry . lookup Value ( target , Ġelement ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( flags Ġand Ġbit Ġ== Ġbit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrelative Ġ+= Ġelement ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtele port Id Ġ= Ġbuf . read Var Int () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġwrite ( out : ĠNet Output , Ġtarget : ĠProtocol Version ) Ġ{ ĊĠĠĠĠĠĠĠ Ġout . write Double ( x ) ĊĠĠĠĠĠĠĠ Ġout . write Double ( y ) ĊĠĠĠĠĠĠĠ Ġout . write Double ( z ) ĊĠĠĠĠĠĠĠ Ġout . write Float ( yaw ) ĊĠĠĠĠĠĠĠ Ġout . write Float ( pitch ) ĊĊĠĠĠĠĠĠĠ Ġvar Ġflags Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġfor Ġ( element Ġin Ġrelative ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġflags Ġ= Ġflags Ġor Ġ( 1 Ġshl ĠMagic Registry . lookup Value ( target , Ġelement )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġout . write Byte ( flags ) ĊĠĠĠĠĠĠĠ Ġout . write Var Int ( tele port Id ) ĊĠĠĠ Ġ} Ċ }