package net.glowstone.inventory.crafting; import org.bukkit.Material; import org.bukkit.inventory.ItemMatcher; import org.bukkit.inventory.ItemStack; public class GlowMapCopyMatcher extends ItemMatcher { @Override public ItemStack getResult(ItemStack[] matrix) { ItemStack original = null; int copies = 1; for (ItemStack item : matrix) { if (item == null) continue; switch (item.getType()) { case MAP: if (original != null) return null; // More than one original original = item; break; case EMPTY_MAP: copies += 1; break; default: return null; // Non-map item } } if (original == null || copies == 1) return null; // Not copying int mapId = original.getDurability(); return new ItemStack(Material.MAP, copies, (short) mapId); } }