package net.glowstone.inventory.crafting; import org.bukkit.Material; import org.bukkit.inventory.ItemMatcher; import org.bukkit.inventory.ItemStack; public class GlowBookCopyMatcher extends ItemMatcher { @Override public ItemStack getResult(ItemStack[] matrix) { ItemStack original = null; int copies = 0; for (ItemStack item : matrix) { if (item == null) continue; switch (item.getType()) { case WRITTEN_BOOK: if (original != null) return null; // Only one original allowed original = item; break; case BOOK_AND_QUILL: copies += 1; break; default: return null; // Wrong item in matrix } } if (original == null || copies == 0) return null; ItemStack ret = new ItemStack(Material.WRITTEN_BOOK, copies); ret.setItemMeta(original.getItemMeta()); return ret; } //TODO: Keep old book in matrix }