`CraftItemEvent` does not fire for each item when multiple items are crafted in one click
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 12.7k
- Forks
- 3.5k
- Avg merge
- 3d 13h
- Merged PRs (30d)
- 11
Description
Expected behavior
If a player crafts multiple items in a single click (for example, places stacks of iron in a crafting grid to make shears, and then shift-clicks the result to get multiple shears), either the event should fire that same number of times, or it should fire a single time and we should get access to a List<ItemStack> (or similar) containing the items that were crafted, instead of just CraftItemEvent#getCurrentItem, which only gives us the first item that gets crafted, ignoring the subsequent ones.
Observed/Actual behavior
The event only fires once, even if multiple items are crafted in a single click, and we don't get access to any of the subsequent items.
Steps/models to reproduce
- Create a plugin that has a listener for
CraftItemEventthat prints a debug message when called. - Place more than 1 iron ingot in a crafting grid slot, and then more than 1 iron ingot in another crafting slot in a way that would craft shears, and then shift-click the result slot.
- Observe as multiple shears get crafted in a single click, but the debug message only gets printed once.
Plugin and Datapack List
N/A - happens with plain Paper.
Paper version
This server is running Paper version 1.21.11-127-main@bd74bf6 (2026-03-10T02:55:23Z) (Implementing API version 1.21.11-R0.1-SNAPSHOT)
Other
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing CraftItemEvent from the crafting result click described in the reproduction, focusing on how shift-click crafting handles multiple output items. Confirm the behavior with a listener that logs each event and determine whether completion should mean one event per crafted item or one event exposing all crafted items; verify the chosen behavior with a regression test.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- api
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100