Minecraft has changed how recipes were handled rather frequently recently, necessitating QuickBench to be updated manually each time.
To reduce the load or need of updating and porting, it may be worth while to go ahead and inject to already fairly optimised vanilla paths to just omit the manually sent packet, than to reimplement what is just Vanilla's minus 2 function calls.
This would also improve mod compatibility, as mods that inject into the crafting logic won't have to deal with an unexpected edgecase of QuickBench or *FastBench colliding or simply not calling their functions.
Functions to investigate:
Minecraft has changed how recipes were handled rather frequently recently, necessitating QuickBench to be updated manually each time.
To reduce the load or need of updating and porting, it may be worth while to go ahead and inject to already fairly optimised vanilla paths to just omit the manually sent packet, than to reimplement what is just Vanilla's minus 2 function calls.
This would also improve mod compatibility, as mods that inject into the crafting logic won't have to deal with an unexpected edgecase of QuickBench or *FastBench colliding or simply not calling their functions.
Functions to investigate:
net.minecraft.world.inventory.CraftingMenu#slotChangedCraftingGridnet.minecraft.world.inventory.CraftingMenu#quickMoveStacknet.minecraft.world.inventory.ResultSlot#onQuickCraft