/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 1 - 2 0 2 2 , ĠVal ap he e . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . val ap he e . net code . mc be . network . packet Ċ Ċ import Ġcom . fasterxml . jackson . module . kotlin . readValue Ċ import Ġcom . val ap he e . net code . mc be . network . Packet Ċ import Ġcom . val ap he e . net code . mc be . network . Packet Buffer Ċ import Ġcom . val ap he e . net code . mc be . network . Packet Handler Ċ import Ġcom . val ap he e . net code . mc be . network . Packet Reader Ċ import Ġcom . val ap he e . net code . mc be . network . Restrict Ċ import Ġcom . val ap he e . net code . mc be . network . Restriction Ċ import Ġio . netty . buffer . Byte Buf InputStream Ċ import Ġio . netty . buffer . Byte Buf OutputStream Ċ import Ġjava . io . OutputStream Ċ Ċ /** Ċ Ġ* Ġ@ author ĠKevin ĠL ud w ig Ċ Ġ*/ Ċ @ Restrict ( Restriction . To Client ) Ċ class ĠStructure Template Data Export Response Packet ( ĊĠĠĠ Ġval Ġname : ĠString , ĊĠĠĠ Ġval Ġsave : ĠBoolean , ĊĠĠĠ Ġval Ġdata : ĠAny ?, ĊĠĠĠ Ġval Ġtype : ĠType Ċ ) Ġ: ĠPacket () Ġ{ ĊĠĠĠ Ġenum Ġclass ĠType Ġ{ ĊĠĠĠĠĠĠĠ ĠNone , ĠExport , ĠQuery ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġid Ġget () Ġ= Ġ 0 x 8 5 ĊĊĠĠĠ Ġoverride Ġfun Ġwrite ( buffer : ĠPacket Buffer , Ġversion : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbuffer . writeString ( name ) ĊĠĠĠĠĠĠĠ Ġbuffer . write Boolean ( save ) ĊĠĠĠĠĠĠĠ Ġif Ġ( save ) Ġbuffer . nbt Var Int ObjectMapper . writeValue ( Byte Buf OutputStream ( buffer ) Ġas ĠOutputStream , Ġdata ) ĊĠĠĠĠĠĠĠ Ġbuffer . write Byte ( type . ordinal ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhandle ( handler : ĠPacket Handler ) Ġ= Ġhandler . structure Template Data Export Response ( this ) ĊĊĠĠĠ Ġoverride Ġfun ĠtoString () Ġ= Ġ" Structure Template Data Export Response Packet ( name ='$ name ', Ġsave =$ save , Ġdata =$ data , Ġtype =$ type )" Ċ } Ċ Ċ /** Ċ Ġ* Ġ@ author ĠKevin ĠL ud w ig Ċ Ġ*/ Ċ object ĠStructure Template Data Export Response Packet Reader Ġ: ĠPacket Reader Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġread ( buffer : ĠPacket Buffer , Ġversion : ĠInt ): ĠStructure Template Data Export Response Packet Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġbuffer . readString () ĊĠĠĠĠĠĠĠ Ġval Ġsave Ġ= Ġbuffer . read Boolean () ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġif Ġ( save ) Ġbuffer . nbt Var Int ObjectMapper . readValue < Any ? >( Byte Buf InputStream ( buffer )) Ġelse Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġtype Ġ= ĠStructure Template Data Export Response Packet . Type . values ()[ buffer . read Unsigned Byte (). toInt ()] ĊĠĠĠĠĠĠĠ Ġreturn ĠStructure Template Data Export Response Packet ( name , Ġsave , Ġdata , Ġtype ) ĊĠĠĠ Ġ} Ċ } Ċ