/* Ċ Ġ* Ġ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 . inventory Ċ Ċ import Ġcom . val ap he e . t esseract . inventory . item . stack . Stack Ċ import Ġcom . val ap he e . t esseract . inventory . item . stack . read Stack Instance Ċ import Ġcom . val ap he e . t esseract . inventory . item . stack . read Stack With Net Id Pre 4 3 1 Ċ import Ġcom . val ap he e . t esseract . inventory . item . stack . write Stack Instance Ċ import Ġcom . val ap he e . t esseract . inventory . item . stack . write Stack With Net Id Pre 4 3 1 Ċ 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 Ċ Ċ /** Ċ Ġ* Ġ@ author ĠKevin ĠL ud w ig Ċ Ġ*/ Ċ @ Restrict ( Restriction . To Client ) Ċ class ĠCreative Inventory Packet ( ĊĠĠĠ Ġval Ġcontent : ĠList < Stack ?> Ċ ) Ġ: ĠPacket () Ġ{ ĊĠĠĠ Ġoverride Ġval Ġid Ġget () Ġ= Ġ 0 x 9 1 ĊĊĠĠĠ Ġoverride Ġfun Ġwrite ( buffer : ĠPacket Buffer , Ġversion : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbuffer . write Var UInt ( content . size ) ĊĠĠĠĠĠĠĠ Ġcontent . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( version Ġ>= Ġ 4 3 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer . write Var UInt ( it ?. net Id Ġ?: Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer . write Stack Instance ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġbuffer . write Stack With Net Id Pre 4 3 1 ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhandle ( handler : ĠPacket Handler ) Ġ= Ġhandler . creative Inventory ( this ) ĊĊĠĠĠ Ġoverride Ġfun ĠtoString () Ġ= Ġ" Creative Inventory Packet ( content =$ content )" Ċ } Ċ Ċ /** Ċ Ġ* Ġ@ author ĠKevin ĠL ud w ig Ċ Ġ*/ Ċ object ĠCreative Inventory Packet Reader Ġ: ĠPacket Reader Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġread ( buffer : ĠPacket Buffer , Ġversion : ĠInt ) Ġ= ĠCreative Inventory Packet ( safe List ( buffer . read Var UInt ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( version Ġ>= Ġ 4 3 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnet Id Ġ= Ġbuffer . read Var UInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer . read Stack Instance (). also Ġ{ Ġit ?. let Ġ{ Ġit . net Id Ġ= Ġnet Id Ġ} Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġbuffer . read Stack With Net Id Pre 4 3 1 () ĊĠĠĠ Ġ}) Ċ } Ċ