/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 8 ĠJo z se f ĠAug us zt iny Ċ Ġ* Ċ Ġ* Ġ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 Ġcom . jo zu fo zu . yo y os . network Ċ Ċ import Ġcom . jo zu fo zu . yo y os . common . Yo yo Entity Ċ import Ġcom . jo zu fo zu . yo y os . compat . bot ania . Ch aser Yo yo Entity Ċ import Ġnet . minecraft . client . Minecraft Ċ import Ġnet . minecraft . entity . Entity Ċ import Ġnet . minecraft . item . Item Ċ import Ġnet . minecraft . item . ItemStack Ċ import Ġnet . minecraft . nbt . Compound NBT Ċ import Ġnet . minecraft . network . Packet Buffer Ċ import Ġnet . minecraftforge . fml . network . Network Event Ċ import Ġjava . util . function . Supplier Ċ Ċ class ĠC Update Target Packet Ġ{ ĊĠĠĠ Ġprivate Ġval Ġyo yo ID : ĠInt ĊĠĠĠ Ġprivate Ġval Ġtarget ID : ĠInt ĊĊĠĠĠ Ġconstructor ( yo yo : ĠYo yo Entity , Ġtarget : ĠEntity ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġyo yo ID Ġ= Ġyo yo . entityId ĊĠĠĠĠĠĠĠ Ġtarget ID Ġ= Ġtarget ?. entityId Ġ?: Ġ- 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( buf : ĠPacket Buffer ) Ġ{ ĊĠĠĠĠĠĠĠ Ġyo yo ID Ġ= Ġbuf . readInt () ĊĠĠĠĠĠĠĠ Ġtarget ID Ġ= Ġbuf . readInt () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġencode ( buf : ĠPacket Buffer ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbuf . writeInt ( yo yo ID ) ĊĠĠĠĠĠĠĠ Ġbuf . writeInt ( target ID ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Message ( ctx : ĠSupplier < Network Event . Context >) Ġ{ ĊĠĠĠĠĠĠĠ Ġctx . get (). enqueue Work Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġworld Ġ= ĠMinecraft . getInstance (). world ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmaybe Yo yo Ġ= Ġworld . getEntity ByID ( yo yo ID ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( maybe Yo yo Ġis ĠCh aser Yo yo Entity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmaybe Yo yo . target Ġ= Ġif Ġ( target ID Ġ== Ġ- 1 ) Ġnull Ġelse Ġworld . getEntity ByID ( target ID ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġctx . get (). packet Handled Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġwrite Big ItemStack ( buf : ĠPacket Buffer , Ġstack : ĠItemStack ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( stack . isEmpty ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . write Boolean ( false ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . write Boolean ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġstack . item ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . write Var Int ( Item . getId From Item ( item )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . write Var Int ( stack . count ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcompound nbt : ĠCompound NBT ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item . is Damage able Ġ|| Ġitem . should Sync Tag ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompound nbt Ġ= Ġstack . share Tag ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . write Compound Tag ( compound nbt ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġread Big ItemStack ( buf : ĠPacket Buffer ): ĠItemStack Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ(! buf . read Boolean ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠItemStack . EMPTY ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġbuf . read Var Int () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcount Ġ= Ġbuf . read Var Int () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem stack Ġ= ĠItemStack ( Item . getItem ById ( id ), Ġcount ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem stack . read Share Tag ( buf . read Compound Tag ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem stack ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ