@@ -8,6 +8,7 @@ import io.github.pylonmc.rebar.resourcepack.armor.ArmorTextureEngine
88import io.netty.channel.ChannelDuplexHandler
99import io.netty.channel.ChannelHandlerContext
1010import io.netty.channel.ChannelPromise
11+ import net.minecraft.commands.arguments.SlotsArgument.slots
1112import net.minecraft.network.HashedPatchMap
1213import net.minecraft.network.HashedStack
1314import net.minecraft.network.protocol.Packet
@@ -18,8 +19,10 @@ import net.minecraft.server.level.ServerPlayer
1819import net.minecraft.util.HashOps
1920import net.minecraft.world.item.ItemStack
2021import net.minecraft.world.item.ItemStackTemplate
22+ import net.minecraft.world.item.crafting.Ingredient
2123import net.minecraft.world.item.crafting.display.*
2224import org.bukkit.craftbukkit.inventory.CraftItemStack
25+ import java.util.Optional
2326import java.util.logging.Level
2427import kotlin.jvm.optionals.getOrNull
2528
@@ -85,8 +88,12 @@ class PlayerPacketHandler(private val player: ServerPlayer, val handler: PlayerT
8588 handleRecipeDisplay(it.contents.display),
8689 it.contents.group,
8790 it.contents.category,
88- it.contents.craftingRequirements.apply {
89- getOrNull()?.forEach { ingredient -> ingredient.itemStacks()?.forEach { item -> translate(item) } }
91+ it.contents.craftingRequirements.map { ingredients ->
92+ ingredients.map { ingredient ->
93+ ingredient.itemStacks()?.let { stacks ->
94+ Ingredient .ofStacks(stacks.map { item -> translate(item.copy()) })
95+ } ? : ingredient
96+ }
9097 }
9198 ),
9299 it.flags
@@ -243,8 +250,8 @@ class PlayerPacketHandler(private val player: ServerPlayer, val handler: PlayerT
243250 }
244251 }
245252
246- private fun translate (item : ItemStack ) {
247- if (item.isEmpty) return
253+ private fun translate (item : ItemStack ): ItemStack {
254+ if (item.isEmpty) return item
248255 try {
249256 handler.handleItem(CraftItemStack .asCraftMirror(item))
250257 } catch (e: Throwable ) {
@@ -256,6 +263,7 @@ class PlayerPacketHandler(private val player: ServerPlayer, val handler: PlayerT
256263 e
257264 )
258265 }
266+ return item
259267 }
260268
261269 companion object {
0 commit comments