Spigot version: git-Spigot-4af49dc-4e19de1 (MC: 1.9.4) I put in crafting a saddle like this but in PrepareItemCraftEvent it doesn't have the lore. My code: Code (Java): public class Horses extends JavaPlugin implements Listener { @Override public void onEnable() { getServer().getPluginManager().registerEvents(this, this); ShapelessRecipe recipe = new ShapelessRecipe(new ItemStack(Material.SADDLE)); recipe.addIngredient(Material.SADDLE); getServer().addRecipe(recipe); } @EventHandler public void onSaddleSign(PrepareItemCraftEvent event) { final Player player = (Player) event.getView().getPlayer(); if (event.getInventory().contains(Material.SADDLE)) { ItemStack saddle = event.getInventory().getContents()[0]; player.sendMessage("hasLore: " + saddle.getItemMeta().hasLore() ); player.sendMessage("lore!=null: " + ( saddle.getItemMeta().getLore() != null ) ); } } }
My guess is that Code (Text): ItemStack saddle = event.getInventory().getContents()[0]; is returning the item in the result slot. Try printing out all of the contents to see which slots contain the ingredients and go from there.