You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Minecraft插件开发:自定义合成配方产物附魔后配方失效如何解决

问题原因

你代码的核心问题是ShapedRecipe.getResult()返回的是配方产物ItemStack的拷贝副本,而非原对象的引用。你对这个副本执行addEnchantment操作不会修改实际绑定到配方的产物属性,相当于附魔操作完全没有生效到配方上,最终导致合成逻辑异常。

正确实现方式

先对要作为产物的ItemStack完成附魔、属性修改等所有操作后,再将其传入ShapedRecipe的构造函数即可,示例代码如下:

// 先创建产物物品
ItemStack item = new ItemStack(Material.PAPER, 1);
// 直接给原物品添加附魔,预先完成所有属性修改
item.addEnchantment(Enchantment.LUCK, 1);

// 再用修改完成的物品创建配方
ShapedRecipe recipe = new ShapedRecipe(item);

recipe.shape("^&^", "%#%", "^%^");
recipe.setIngredient('^', Material.NETHERITE_SCRAP);
recipe.setIngredient('&', Material.DIAMOND);
recipe.setIngredient('%', Material.GOLDEN_APPLE);
recipe.setIngredient('#', Material.NETHERITE_INGOT);

this.getServer().addRecipe(recipe);

内容的提问来源于stack exchange,提问作者Nayef Alhajraf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 13:45:05