package Ġme . ge ek . tom . s lime for fabric Ċ Ċ import Ġnet . minecraft . nbt . Compound Tag Ċ import Ġnet . minecraft . nbt . List Tag Ċ import Ġnet . minecraft . nbt . N bt Io Ċ import Ġnet . minecraft . server . world . Server World Ċ import Ġnet . minecraft . util . math . Chunk Pos Ċ import Ġnet . minecraft . world . Height map Ċ import Ġnet . minecraft . world . chunk . Chunk Ċ import Ġok io .* Ċ import Ġjava . io . ByteArray InputStream Ċ import Ġjava . io . ByteArray OutputStream Ċ import Ġjava . io . Data InputStream Ċ import Ġjava . io . Data OutputStream Ċ import Ġjava . nio . file . Path Ċ import Ġjava . util . function . Consumer Ċ import Ġkotlin . io . use ĊĊ Ċ //@ Experimental Unsigned Types Ċ // private Ġfun Ġto HexString ( a : ĠByteArray ): ĠString Ġ{ Ċ // ĠĠĠ Ġval Ġbuilder Ġ= ĠStringBuilder () Ċ // ĠĠĠ Ġfor Ġ( byte Ġin Ġa ) Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġbuilder . append ( byte . to U Byte (). toString ( 1 6 )) Ċ // ĠĠĠ Ġ} Ċ // ĠĠĠ Ġreturn Ġbuilder . toString () Ċ //} Ċ Ċ fun ĠServer World . get Chunk ( pos : ĠChunk Pos ): ĠChunk Ġ{ ĊĠĠĠ Ġreturn Ġthis . get Chunk ( pos . x , Ġpos . z ) Ċ } Ċ Ċ fun ĠChunk . isEmpty (): ĠBoolean Ġ{ ĊĠĠĠ Ġval Ġhm Ġ= Ġthis . getHeight map ( Height map . Type . WORLD _ SURFACE ) ĊĠĠĠ Ġreturn Ġhm . as Long Array (). none Ġ{ Ġit Ġ!= Ġ 0 L Ġ} Ċ } Ċ Ċ fun ĠData OutputStream . write List Tag ( tag : ĠList Tag ) Ġ{ ĊĠĠĠ Ġval Ġtg Ġ= ĠCompound Tag () ĊĠĠĠ Ġtg . put (" Data ", Ġtag ) ĊĠĠĠ Ġval Ġba os Ġ= ĠByteArrayOutputStream () ĊĠĠĠ Ġval Ġoutput Ġ= ĠData OutputStream ( ba os ) ĊĠĠĠ ĠNbt Io . write ( tg , Ġoutput ) ĊĠĠĠ Ġval Ġbytes Ġ= Ġba os . toByteArray () ĊĠĠĠ Ġthis . writeInt ( bytes . size ) ĊĠĠĠ Ġthis . write ( bytes ) Ċ } Ċ Ċ fun ĠBuffer . read N bt (): ĠCompound Tag Ġ{ ĊĠĠĠ Ġval Ġlength Ġ= Ġthis . readInt () ĊĠĠĠ Ġval Ġb ais Ġ= ĠByteArrayInputStream ( this . read ByteArray ( length . to Long ())) ĊĠĠĠ Ġval Ġinput Ġ= ĠData InputStream ( ba is ) ĊĠĠĠ Ġreturn ĠNbt Io . read ( input ) Ċ } Ċ Ċ fun ĠBuffer . read Long Array ( length : ĠInt ): ĠLong Array Ġ{ ĊĠĠĠ Ġval Ġlong s Ġ= ĠLong Array ( length ) ĊĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġlength ) Ġlong s [ i ] Ġ= Ġread Long () ĊĠĠĠ Ġreturn Ġlong s Ċ } Ċ Ċ fun Ġwrite ( path : ĠPath , Ġoutput : ĠConsumer < Buffered Sink >) Ġ{ ĊĠĠĠ Ġpath . sink (). use Ġ{ ĊĠĠĠĠĠĠĠ Ġit . buffer (). use Ġ{ Ġbuffer Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutput . accept ( buffer ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġread ( path : ĠPath , Ġinput : ĠConsumer < Buffered Source >) Ġ{ ĊĠĠĠ Ġpath . source (). use Ġ{ ĊĠĠĠĠĠĠĠ Ġit . buffer (). use Ġ{ Ġbuffer Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput . accept ( buffer ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ