diff --git a/src/main/java/adris/altoclef/tasks/CraftGenericTask.java b/src/main/java/adris/altoclef/tasks/CraftGenericTask.java index 54239512b..05238428d 100644 --- a/src/main/java/adris/altoclef/tasks/CraftGenericTask.java +++ b/src/main/java/adris/altoclef/tasks/CraftGenericTask.java @@ -15,8 +15,6 @@ import adris.altoclef.util.slots.Slot; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; -import net.minecraft.screen.CraftingScreenHandler; -import net.minecraft.screen.PlayerScreenHandler; import net.minecraft.screen.slot.SlotActionType; import java.util.Optional; @@ -42,15 +40,13 @@ protected void onStart(AltoClef mod) { @Override protected Task onTick(AltoClef mod) { - boolean bigCrafting = (mod.getPlayer().currentScreenHandler instanceof CraftingScreenHandler); + boolean bigCrafting = StorageHelper.isBigCraftingOpen(); - if (!bigCrafting) { - if (!(mod.getPlayer().currentScreenHandler instanceof PlayerScreenHandler)) { - // Make sure we're not in another screen before we craft, - // otherwise crafting won't work - StorageHelper.closeScreen(); - // Just to be safe - } + if (!bigCrafting && !StorageHelper.isPlayerInventoryOpen()) { + // Make sure we're not in another screen before we craft, + // otherwise crafting won't work + StorageHelper.closeScreen(); + // Just to be safe } // For each slot in table diff --git a/src/main/java/adris/altoclef/tasks/CraftInInventoryTask.java b/src/main/java/adris/altoclef/tasks/CraftInInventoryTask.java index caf03afc9..efef58947 100644 --- a/src/main/java/adris/altoclef/tasks/CraftInInventoryTask.java +++ b/src/main/java/adris/altoclef/tasks/CraftInInventoryTask.java @@ -42,13 +42,16 @@ protected boolean shouldAvoidPickingUp(AltoClef mod) { @Override protected void onResourceStart(AltoClef mod) { _fullCheckFailed = false; + StorageHelper.closeScreen(); // Just to be safe I guess } @Override protected Task onResourceTick(AltoClef mod) { // Grab from output FIRST - if (StorageHelper.getItemStackInCursorSlot().isEmpty() && Arrays.stream(_itemTargets).anyMatch(target -> target.matches(StorageHelper.getItemStackInSlot(PlayerSlot.CRAFT_OUTPUT_SLOT).getItem()))) { - return new ClickSlotTask(PlayerSlot.CRAFT_OUTPUT_SLOT, 0, SlotActionType.PICKUP); + if (StorageHelper.isPlayerInventoryOpen()) { + if (StorageHelper.getItemStackInCursorSlot().isEmpty() && Arrays.stream(_itemTargets).anyMatch(target -> target.matches(StorageHelper.getItemStackInSlot(PlayerSlot.CRAFT_OUTPUT_SLOT).getItem()))) { + return new ClickSlotTask(PlayerSlot.CRAFT_OUTPUT_SLOT, 0, SlotActionType.PICKUP); + } } ItemTarget toGet = _itemTargets[0];