颅内开灯
本帖最后由 颅内开灯 于 2021-6-1 23:44 编辑

想要把设置好的物品,替换到CraftItemEvent,也就是想让合成出来的物品自带Lore。请问有大佬能指教一下吗
@EventHandler
    public void Crafts(CraftItemEvent event){
        //获取事件物品
        ItemStack itemStack = event.getRecipe().getResult();
        if (itemStack != null && !itemStack.getType().equals(Material.AIR)){

            Iterator keys = Config.getCraftItemLore().keySet().iterator();

            while (keys.hasNext()){
                String key = (String)keys.next();
                //判断是否存在
                if (itemStack.getType().toString().equalsIgnoreCase(key)){
                    System.out.println("执行");

                   //到这里都是可允许并且达到预期的,问题就是下面
                    ItemMeta itemMeta = itemStack.getItemMeta();
                    String ConfigLore = Config.getCraftItemLore().get(key);
                    List<String> lores = new ArrayList<>();
                    lores.add(ConfigLore);
                    itemMeta.setLore(lores);
                    itemStack.setItemMeta(itemMeta);
                    //
如何把这里的itemStack设置为合成出来的物品呢?
                    return;
                }
            }
        }
    }
}












鬼畜畜
@EventHandler
public void playerCraftItem(PrepareItemCraftEvent event) {
    ItemStack itemStack; //准备你的物品
    event.getInventory().setResult(itemStack); //设置合成结果
    event.getViewers().forEach(human-&gt;((Player)human).updateInventory()); //更新客户端显示
}