/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 1 ĠPhil ipp ĠE istr ach Ċ Ġ* Ċ Ġ* Ġ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 Ġde . fl lip . entity . plugin . entity . armor stand Ċ Ċ import Ġcom . google . inject . Inject Ċ import Ġcom . google . inject . ass isted inject . Ass isted Ċ import Ġde . fl lip . entity . api . entity . armor stand . Armor Stand Entity Ċ import Ġde . fl lip . entity . api . entity . armor stand . Armor Stand Entity Configuration Adapter Ċ import Ġde . fl lip . entity . api . entity . configuration . Entity Configuration Adapter Ċ import Ġde . fl lip . entity . api . entity . item . Equipment Item Ċ import Ġde . fl lip . entity . plugin . Entity Plugin Ċ import Ġde . fl lip . entity . plugin . entity . packet .* Ċ import Ġde . fl lip . entity . plugin . renderer . Default Entity Renderer Ċ import Ġorg . bukkit . entity . EntityType Ċ import Ġorg . bukkit . entity . Player Ċ import Ġjava . util .* Ċ import Ġjava . util . concurrent . Thread Local Random Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠIntelliJ ĠIDEA . Ċ Ġ* ĠUser : ĠPhil ipp . E istr ach Ċ Ġ* ĠDate : Ġ 2 3 . 0 4 . 2 0 2 1 Ċ Ġ* ĠTime : Ġ 1 4 : 5 3 Ċ Ġ*/ Ċ class ĠDefault Armor Stand Entity Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġ@ Ass isted Ġprivate Ġval Ġconfiguration Adapter : ĠArm or Stand Entity Configuration Adapter , ĊĠĠĠ Ġprivate Ġval Ġentity Renderer : ĠDefault Entity Renderer , ĊĠĠĠ Ġprivate Ġval Ġspawn Packet Creator : ĠSpawn Packet Creator , ĊĠĠĠ Ġprivate Ġval Ġmetadata Packet Creator : ĠMetadata Packet Creator , ĊĠĠĠ Ġprivate Ġval Ġhead Rotation Packet Creator : ĠHead Rotation Packet Creator , ĊĠĠĠ Ġprivate Ġval Ġequipment Packet Creator : ĠE quipment Packet Creator , ĊĠĠĠ Ġprivate Ġval Ġdestroy Packet Creator : ĠDestroy Packet Creator , Ċ ) Ġ: ĠAbstract Entity Packet Sender ( entity Renderer ), ĠArm or Stand Entity Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġget Entity Configuration (): ĠEntity Configuration Adapter Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġconfiguration Adapter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġspawn ( player : ĠPlayer ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlocation Ġ= Ġconfiguration Adapter . getLocation () Ġ?: Ġreturn ĊĊĠĠĠĠĠĠĠ Ġval Ġentity Id Ġ= Ġget EntityId () ĊĠĠĠĠĠĠĠ Ġval Ġhead Rotation Container Ġ= Ġhead Rotation Packet Creator . create ( entityId , Ġlocation ) ĊĠĠĠĠĠĠĠ Ġsend Packets ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġspawn Packet Creator . create ( this , ĠEntityType . ARM OR _ STAND ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmetadata Packet Creator . create Visible Metadata ( this , Ġplayer ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhead Rotation Container . first , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhead Rotation Container . second , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġequipment Packet Creator . create ( entityId , Ġconfiguration Adapter . get Equipment Items ()) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġde spawn ( player : ĠPlayer ) Ġ{ ĊĠĠĠĠĠĠĠ Ġentity Renderer . remove Player From Render List ( this , Ġplayer ) ĊĠĠĠĠĠĠĠ Ġsend Packets ( player , Ġdestroy Packet Creator . create ( getEntity Id ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate DisplayName ( player : ĠPlayer ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsend Packet ( player , Ġmetadata Packet Creator . create Name Metadata ( this , Ġplayer )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate Equipment ( player : ĠPlayer , Ġequipment Items : ĠList < Equipment Item >) Ġ{ ĊĠĠĠĠĠĠĠ Ġsend Packet ( player , Ġequipment Packet Creator . create ( getEntity Id (), Ġequipment Items )) ĊĠĠĠ Ġ} Ċ }