Skip to content

Commit 23c7dfc

Browse files
authored
Merge pull request #767 from pylonmc/human/fix-crafting
Fix Crafting in 26.1.2
2 parents b65c5e4 + a2800eb commit 23c7dfc

1 file changed

Lines changed: 12 additions & 4 deletions

File tree

nms/src/main/kotlin/io/github/pylonmc/rebar/i18n/packet/PlayerPacketHandler.kt

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import io.github.pylonmc.rebar.resourcepack.armor.ArmorTextureEngine
88
import io.netty.channel.ChannelDuplexHandler
99
import io.netty.channel.ChannelHandlerContext
1010
import io.netty.channel.ChannelPromise
11+
import net.minecraft.commands.arguments.SlotsArgument.slots
1112
import net.minecraft.network.HashedPatchMap
1213
import net.minecraft.network.HashedStack
1314
import net.minecraft.network.protocol.Packet
@@ -18,8 +19,10 @@ import net.minecraft.server.level.ServerPlayer
1819
import net.minecraft.util.HashOps
1920
import net.minecraft.world.item.ItemStack
2021
import net.minecraft.world.item.ItemStackTemplate
22+
import net.minecraft.world.item.crafting.Ingredient
2123
import net.minecraft.world.item.crafting.display.*
2224
import org.bukkit.craftbukkit.inventory.CraftItemStack
25+
import java.util.Optional
2326
import java.util.logging.Level
2427
import 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

Comments
 (0)