Tfarcenim/FabricFastBench

Active in-inventory autocrafters such as Botania's Manufactory Halo blanks output slot in crafting tables

Ampflower opened this issue · 3 comments

Minimal mods found:

  • Quilt Loader 0.18.1-beta.10
  • Quilted Fabric API 4.0.0-beta.19+0.64.0-1.19.2.jar
  • Botania 1.19.2-436-FABRIC-SNAPSHOT + dependencies
  • Minecraft 1.19.2

Items/blocks required:

  • Manufactory Halo
  • Crafting Table
  • Materials for a crafting recipe

Notes:

  • The Black Hole Talisman doesn't cause this issue despite constant polling.
  • The Manufactory Halo does not show this bug when it is in hand.
  • The Manufactory Halo also does not show this bug when there's no possible recipe registered.

Steps to reproduce

  • Obtain a Manufactory Halo.
  • Craft anything that can be saved using the Manufactory Halo.
    • Coal block recipe is likely a good start.
  • While holding the halo, right click the recipe into any slot.
  • Using an independent crafting table, or moving the halo outside of your hand after reopening its crafting table, try to craft anything. Better luck has been seen with a recipe with a custom code implementation, such as the following:
    • Armour or tool repair (Vanilla)
    • Various suspicious stews (Vanilla)
    • Copying written books (Vanilla)
    • Mana Blaster lens removal & addition (Botania)
    • Phantom Ink addition (Botania)
    • Cosmetic trinket addition to other Botania trinkets (Botania)
    • Extracting blocks from a Black Hole Talisman (Botania)
    • Crafting Wand of the Forest (Botania)

Additional notes:

  • The crafting recipe can still be clicked.
  • The output may momentarily blink into existence, then return to air.
  • This might end up being Botania-specific, I don't know of any other in-inventory autocrafters on Fabric/Quilt at the moment.

It appears to be caused by the manufactory halo constantly hitting the crafting path regardless of if the GUI is open and that there's valid recipes; using Gadget to examine packets show that there's a constant stream of the custom packet fastbench:sync_recipe.

Looking at the menu field on the CraftingInventory via the debugger, there is a way to tell by the access field and the container ID being less than 0.

By checking the container ID, it does prevent the blanking out bug. Tho, removing the custom sync packet and letting the results slot seems to work fine in the mod on the client does seem to behave correctly, regardless of having this mod on the client, contrary to what has been said in #8. Although, this may be because logic has changed since then in Minecraft that manages to make this work when this mod originally would have broken it.