package Ġdev . the code war ri or . libr arian lib . features . saving . serializers . builtin . gener ics ĊĊ Ċ import Ġdev . the code war ri or . libr arian lib . features . autore gister . Serializer Factory Register Ċ import Ġdev . the code war ri or . libr arian lib . features . kotlin . forEach Ċ import Ġdev . the code war ri or . libr arian lib . features . kotlin . read Boolean Array Ċ import Ġdev . the code war ri or . libr arian lib . features . kotlin . safe Cast Ċ import Ġdev . the code war ri or . libr arian lib . features . kotlin . write Boolean Array Ċ import Ġdev . the code war ri or . libr arian lib . features . method handles . Method Handle Helper Ċ import Ġdev . the code war ri or . libr arian lib . features . saving . FieldType Ċ import Ġdev . the code war ri or . libr arian lib . features . saving . FieldType Generic Ċ import Ġdev . the code war ri or . libr arian lib . features . saving . serializers . Serializer Ċ import Ġdev . the code war ri or . libr arian lib . features . saving . serializers . Serializer Factory Ċ import Ġdev . the code war ri or . libr arian lib . features . saving . serializers . Serializer Factory Match Ċ import Ġdev . the code war ri or . libr arian lib . features . saving . serializers . Serializer Registry Ċ import Ġio . netty . buffer . Byte Buf Ċ import Ġnet . minecraft . nbt . NBT Base Ċ import Ġnet . minecraft . nbt . NBT Tag Compound Ċ import Ġnet . minecraft . nbt . NBT Tag List Ċ import Ġnet . minecraftforge . fml . rel a unch er . Reflection Helper Ċ import Ġjava . util .* Ċ Ċ @ Serializer Factory Register Ċ object ĠSerialize Deque Factory Ġ: ĠSerializer Factory (" Deque ") Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġcan Apply ( type : ĠFieldType ): ĠSerializer Factory Match Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( can Apply Subclass ( type , ĠList :: class . java ) Ġ!= ĠSerializer Factory Match . NONE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSerializer Factory Match . NONE ĊĠĠĠĠĠĠĠ Ġreturn Ġcan Apply Subclass ( type , ĠDe que :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate ( type : ĠFieldType ): ĠSerializer < *> Ġ{ ĊĠĠĠĠĠĠĠ Ġtype Ġas ĠFieldType Generic ĊĠĠĠĠĠĠĠ Ġreturn ĠSerialize Deque ( type , Ġtype . resolve Generic ( Deque :: class . java , Ġ 0 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠSerialize Deque ( type : ĠFieldType , Ġval Ġcomponent Type : ĠFieldType ) Ġ: ĠSerializer < Deque < Any ?> >( type ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetDefault (): ĠDe que < Any ?> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġconstructor () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġser Component : ĠSerializer < Any > Ġby ĠSerializer Registry . lazy ( component Type ) ĊĠĠĠĠĠĠĠ Ġval Ġconstructor Ġ= Ġcreate Constructor MH () ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġread NBT ( nbt : ĠN BT Base , Ġexisting : ĠDe que < Any ?> ?, Ġsync ing : ĠBoolean ): ĠDe que < Any ?> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġn bt . safe Cast ( NBT Tag List :: class . java ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdeque Ġ= Ġexisting Ġ?: ĠgetDefault () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdeque . clear () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . forEach < NBT Tag Compound > Ġ{ Ġcontainer Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtag Ġ= Ġcontainer . getTag ("- ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdeque . push ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġser Component . read ( tag , Ġnull , Ġsync ing ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġdeque ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġwrite NBT ( value : ĠDe que < Any ? >, Ġsync ing : ĠBoolean ): ĠN BT Base Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist Ġ= ĠN BT Tag List () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( v Ġin Ġvalue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontainer Ġ= ĠN BT Tag Compound () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist . append Tag ( container ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( v Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer . setTag ("- ", Ġser Component . write ( v , Ġsync ing )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġlist ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġread Bytes ( buf : ĠByte Buf , Ġexisting : ĠDe que < Any ?> ?, Ġsync ing : ĠBoolean ): ĠDe que < Any ?> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnull sig Ġ= Ġbuf . read Boolean Array () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdeque Ġ= Ġexisting Ġ?: ĠgetDefault () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdeque . clear () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. null sig . size Ġ- Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdeque . push ( if Ġ( null sig [ i ]) Ġnull Ġelse Ġser Component . read ( buf , Ġnull , Ġsync ing )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġdeque ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġwrite Bytes ( buf : ĠByte Buf , Ġvalue : ĠDe que < Any ? >, Ġsync ing : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnull sig Ġ= Ġvalue . map Ġ{ Ġit Ġ== Ġnull Ġ}. to Typed Array (). to Boolean Array () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . write Boolean Array ( null sig ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( v Ġin Ġvalue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( v Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġser Component . write ( buf , Ġv , Ġsync ing ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġcreate Constructor MH (): Ġ() Ġ-> ĠDe que < Any ?> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( type . clazz Ġ== ĠDe que :: class . java ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ{ ĠArray Deque () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm h Ġ= ĠMethod Handle Helper . wrapper For Constructor < Deque < Any ?> >( type . clazz ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ{ Ġm h ( array Of ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch ( e : ĠReflection Helper . Unable To FindMethod Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ{ Ġthrow ĠUnsupportedOperationException (" Could Ġnot Ġfind Ġzero - argument Ġconstructor Ġfor Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype . clazz . simple Name , Ġe ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ