package Ġme . ste ven . ind rev . recipes Ċ Ċ import Ġcom . google . gson . JsonObject Ċ import Ġme . ste ven . ind rev . utils . identifier Ċ import Ġnet . minecraft . inventory . Craft ing Inventory Ċ import Ġnet . minecraft . item . Item Ċ import Ġnet . minecraft . item . ItemStack Ċ import Ġnet . minecraft . network . Packet Byte Buf Ċ import Ġnet . minecraft . recipe . Ingredient Ċ import Ġnet . minecraft . recipe . Recipe Serializer Ċ import Ġnet . minecraft . recipe . Sh aped Recipe Ċ import Ġnet . minecraft . util . Identifier Ċ import Ġnet . minecraft . util . Json Helper Ċ import Ġnet . minecraft . util . collection . Default edList Ċ import Ġnet . minecraft . util . registry . Registry Ċ Ċ class ĠCopy NBT Sh aped Recipe ( ĊĠĠĠ Ġid : ĠIdentifier , ĊĠĠĠ Ġgroup : ĠString , ĊĠĠĠ Ġwidth : ĠInt , ĊĠĠĠ Ġheight : ĠInt , ĊĠĠĠ Ġingredients : ĠDefault edList < Ingredient >, ĊĠĠĠ Ġoutput : ĠItemStack , ĊĠĠĠ Ġprivate Ġval Ġcopy From : ĠItem Ċ ): ĠSh aped Recipe ( id , Ġgroup , Ġwidth , Ġheight , Ġingredients , Ġoutput ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġcraft ( craft ing Inventory : ĠCraft ing Inventory ): ĠItemStack Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstack Ġ= Ġsuper . craft ( craft ing Inventory ) ĊĠĠĠĠĠĠĠ Ġ( 0 Ġuntil Ġcraft ing Inventory . size ()). map Ġ{ Ġcraft ing Inventory . get Stack ( it ) Ġ}. first OrNull Ġ{ Ġit . item Ġ== Ġcopy From Ġ} ?. also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstack . tag Ġ= Ġit . tag ?. copy () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġstack ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Serializer (): ĠRecipe Serializer < *> Ġ= ĠSERIAL IZER ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠIDENT IFIER Ġ= Ġidentifier (" copy _ nbt _ craft ing _ sh aped ") ĊĠĠĠĠĠĠĠ Ġval ĠSERIAL IZER Ġ= ĠSerializer () ĊĠĠĠĠĠĠĠ Ġclass ĠSerializer Ġ: ĠSh aped Recipe . Serializer () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġread ( identifier : ĠIdentifier ?, ĠjsonObject : ĠJsonObject ?): ĠCopy NBT Sh aped Recipe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsh aped Ġ= Ġsuper . read ( identifier , ĠjsonObject ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcopy N bt From Ġ= ĠJson Helper . getString ( jsonObject ?. getAs JsonObject (" result "), Ġ" copy N bt ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgroup Ġ= ĠJson Helper . getString ( jsonObject , Ġ" group ", Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠRegistry . ITEM . get ( Identifier ( copy N bt From )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠCopy NBT Sh aped Recipe ( sh aped . id , Ġgroup , Ġsh aped . width , Ġsh aped . height , Ġsh aped . preview Inputs , Ġsh aped . output , Ġitem ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġwrite ( packet Byte Buf : ĠPacket Byte Buf ?, Ġsh aped Recipe : ĠSh aped Recipe ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . write ( packet Byte Buf , Ġsh aped Recipe ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpacket Byte Buf ?. write Identifier ( Registry . ITEM . getId (( sh aped Recipe Ġas ĠCopy NBT Sh aped Recipe ). copyFrom )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġread ( identifier : ĠIdentifier ?, Ġpacket Byte Buf : ĠPacket Byte Buf ): ĠCopy NBT Sh aped Recipe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsh aped Ġ= Ġsuper . read ( identifier , Ġpacket Byte Buf ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcopy N bt From Ġ= Ġpacket Byte Buf . read Identifier () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠRegistry . ITEM . get ( copy N bt From ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠCopy NBT Sh aped Recipe ( sh aped . id , Ġsh aped . group , Ġsh aped . width , Ġsh aped . height , Ġsh aped . preview Inputs , Ġsh aped . output , Ġitem ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }