/* Ċ Ġ* ĠMIT ĠLicense Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 1 , ĠVal ap he e . Ċ Ġ* Ċ Ġ* Ġ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 . val ap he e . t esseract . pack Ċ Ċ import Ġcom . val ap he e . t esseract . net . Packet Ċ import Ġcom . val ap he e . t esseract . net . Packet Buffer Ċ import Ġcom . val ap he e . t esseract . net . Packet Handler Ċ import Ġcom . val ap he e . t esseract . net . Packet Reader Ċ import Ġcom . val ap he e . t esseract . net . Restrict Ċ import Ġcom . val ap he e . t esseract . net . Restriction Ċ import Ġcom . val ap he e . t esseract . util . safe List Ċ import Ġjava . util . UUID Ċ Ċ /** Ċ Ġ* Ġ@ author ĠKevin ĠL ud w ig Ċ Ġ*/ Ċ @ Restrict ( Restriction . To Client ) Ċ class ĠPack s Packet ( ĊĠĠĠ Ġval Ġforced To Accept : ĠBoolean , ĊĠĠĠ Ġval Ġscripting Enabled : ĠBoolean , ĊĠĠĠ Ġval Ġforcing Server Pack s Enabled : ĠBoolean , ĊĠĠĠ Ġval Ġbehavior Pack s : ĠList < Pack >, ĊĠĠĠ Ġval Ġresource Pack s : ĠList < Pack > Ċ ) Ġ: ĠPacket () Ġ{ ĊĠĠĠ Ġdata Ġclass ĠPack ( ĊĠĠĠĠĠĠĠ Ġval Ġid : ĠUUID , ĊĠĠĠĠĠĠĠ Ġval Ġversion : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġsize : ĠLong , ĊĠĠĠĠĠĠĠ Ġval Ġencryption Key : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġsub Pack Name : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġcontent Id : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġscripting : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġval Ġray tracing Cap able : ĠBoolean Ġ= Ġfalse ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġval Ġid Ġget () Ġ= Ġ 0 x 0 6 ĊĊĠĠĠ Ġoverride Ġfun Ġwrite ( buffer : ĠPacket Buffer , Ġversion : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbuffer . write Boolean ( forced To Accept ) ĊĠĠĠĠĠĠĠ Ġbuffer . write Boolean ( script ing Enabled ) ĊĠĠĠĠĠĠĠ Ġif Ġ( version Ġ>= Ġ 4 4 8 ) Ġbuffer . write Boolean ( for cing Server Pack s Enabled ) ĊĠĠĠĠĠĠĠ Ġbuffer . write Short LE ( behavior Pack s . size ) ĊĠĠĠĠĠĠĠ Ġbehavior Pack s . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer . writeString ( it . id . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer . writeString ( it . version ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer . write Long LE ( it . size ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer . writeString ( it . encryption Key ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer . writeString ( it . sub Pack Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer . writeString ( it . content Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer . write Boolean ( it . script ing ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbuffer . write Short LE ( resource Pack s . size ) ĊĠĠĠĠĠĠĠ Ġresource Pack s . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer . writeString ( it . id . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer . writeString ( it . version ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer . write Long LE ( it . size ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer . writeString ( it . encryption Key ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer . writeString ( it . sub Pack Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer . writeString ( it . content Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer . write Boolean ( it . script ing ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( version Ġ>= Ġ 4 2 2 ) Ġbuffer . write Boolean ( it . ray tracing Cap able ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhandle ( handler : ĠPacket Handler ) Ġ= Ġhandler . packs ( this ) ĊĊĠĠĠ Ġoverride Ġfun ĠtoString () Ġ= Ġ" Pack s Packet ( forced To Accept =$ forced To Accept , Ġscripting Enabled =$ script ing Enabled , Ġforcing Server Pack s Enabled =$ for cing Server Pack s Enabled , Ġbehavior Pack s =$ behavior Pack s , Ġresource Pack s =$ resource Pack s )" Ċ } Ċ Ċ /** Ċ Ġ* Ġ@ author ĠKevin ĠL ud w ig Ċ Ġ*/ Ċ object ĠPack s Packet Reader Ġ: ĠPacket Reader Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġread ( buffer : ĠPacket Buffer , Ġversion : ĠInt ) Ġ= ĠPack s Packet ( ĊĠĠĠĠĠĠĠ Ġbuffer . read Boolean (), ĊĠĠĠĠĠĠĠ Ġbuffer . read Boolean (), ĊĠĠĠĠĠĠĠ Ġif Ġ( version Ġ>= Ġ 4 4 8 ) Ġbuffer . read Boolean () Ġelse Ġfalse , ĊĠĠĠĠĠĠĠ Ġsafe List ( buffer . read Unsigned Short LE ()) Ġ{ ĠPack s Packet . Pack ( UUID . fromString ( buffer . readString ()), Ġbuffer . readString (), Ġbuffer . read Long LE (), Ġbuffer . readString (), Ġbuffer . readString (), Ġbuffer . readString (), Ġbuffer . read Boolean ()) Ġ}, ĊĠĠĠĠĠĠĠ Ġsafe List ( buffer . read Unsigned Short LE ()) Ġ{ ĠPack s Packet . Pack ( UUID . fromString ( buffer . readString ()), Ġbuffer . readString (), Ġbuffer . read Long LE (), Ġbuffer . readString (), Ġbuffer . readString (), Ġbuffer . readString (), Ġbuffer . read Boolean (), Ġif Ġ( version Ġ>= Ġ 4 2 2 ) Ġbuffer . read Boolean () Ġelse Ġfalse ) Ġ} ĊĠĠĠ Ġ) Ċ } Ċ