@ file : Suppress (" Un stable Api Usage ") Ċ Ċ package Ġcom . github . sh yn ix n . pet blocks . sponge . logic . business . serializer Ċ Ċ import Ġcom . github . sh yn ix n . pet blocks . api . business . serializer . ItemStack Serializer Ċ import Ġcom . google . common . reflect . Type Token Ċ import Ġn inja . le aping . configur ate . ho con . Ho con Configuration Loader Ċ import Ġorg . spongepowered . api . item . inventory . ItemStack Ċ import Ġjava . io . BufferedReader Ċ import Ġjava . io . Buffered Writer Ċ import Ġjava . io . String Reader Ċ import Ġjava . io . String Writer Ċ import Ġjava . lang . RuntimeException Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠSh yn ix n Ġ 2 0 1 9 . Ċ Ġ* Ġ< p > Ċ Ġ* ĠVersion Ġ 1 . 2 Ċ Ġ* Ġ< p > Ċ Ġ* ĠMIT ĠLicense Ċ Ġ* Ġ< p > Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 9 Ġby ĠSh yn ix n Ċ Ġ* Ġ< p > Ċ Ġ* Ġ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 : Ċ Ġ* Ġ< p > Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ċ Ġ* Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ġ< p > Ċ Ġ* Ġ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 . Ċ Ġ*/ Ċ class ĠItemStack Serializer Impl Ġ: ĠItemStack Serializer Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġcalled Ġon Ġserialization . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Serialization ( item : ĠAny ): ĠAny Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsink Ġ= ĠString Writer () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġloader Ġ= ĠHo con Configuration Loader . builder (). set Sink Ġ{ ĠBuffered Writer ( sink ) Ġ}. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnode Ġ= Ġloader . create Empty Node () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnode . setValue < ItemStack >( Type Token . of ( ItemStack :: class . java ), Ġitem Ġas ĠItemStack ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġloader . save ( node ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmap Ġ= ĠHashMap < String , ĠAny >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap [" item "] Ġ= Ġsink . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġmap ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRuntimeException ( e ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġcalled Ġon ĠDeserial ization . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Deserialization ( item : ĠAny ): ĠAny Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire ( item Ġis ĠMap < *, Ġ* >) ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= ĠString Reader ( item [" item "] Ġas ĠString ) ĊĠĠĠĠĠĠĠ Ġval Ġloader Ġ= ĠHo con Configuration Loader . builder (). set Source Ġ{ ĠBufferedReader ( source ) Ġ}. build () ĊĠĠĠĠĠĠĠ Ġval Ġnode Ġ= Ġloader . load () ĊĠĠĠĠĠĠĠ Ġreturn Ġnode . getValue ( Type Token . of ( ItemStack :: class . java )) !! ĊĠĠĠ Ġ} Ċ }