diff options
Diffstat (limited to 'src/main/java/me/shedaniel/rei/plugin/autocrafting/AutoSmokerBookHandler.java')
| -rw-r--r-- | src/main/java/me/shedaniel/rei/plugin/autocrafting/AutoSmokerBookHandler.java | 34 |
1 files changed, 15 insertions, 19 deletions
diff --git a/src/main/java/me/shedaniel/rei/plugin/autocrafting/AutoSmokerBookHandler.java b/src/main/java/me/shedaniel/rei/plugin/autocrafting/AutoSmokerBookHandler.java index 2c768ab3a..6a1ff6b23 100644 --- a/src/main/java/me/shedaniel/rei/plugin/autocrafting/AutoSmokerBookHandler.java +++ b/src/main/java/me/shedaniel/rei/plugin/autocrafting/AutoSmokerBookHandler.java @@ -5,35 +5,31 @@ package me.shedaniel.rei.plugin.autocrafting; -import me.shedaniel.rei.api.AutoCraftingHandler; -import me.shedaniel.rei.api.RecipeDisplay; +import me.shedaniel.rei.api.AutoTransferHandler; import me.shedaniel.rei.client.ScreenHelper; -import me.shedaniel.rei.gui.ContainerScreenOverlay; import me.shedaniel.rei.listeners.RecipeBookGuiHooks; import me.shedaniel.rei.plugin.smoking.DefaultSmokingDisplay; -import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.screen.Screen; -import net.minecraft.client.gui.screen.ingame.AbstractContainerScreen; import net.minecraft.client.gui.screen.ingame.SmokerScreen; import net.minecraft.container.SmokerContainer; -import java.util.function.Supplier; - -public class AutoSmokerBookHandler implements AutoCraftingHandler { +public class AutoSmokerBookHandler implements AutoTransferHandler { @Override - public boolean handle(Supplier<RecipeDisplay> displaySupplier, MinecraftClient minecraft, Screen recipeViewingScreen, AbstractContainerScreen<?> parentScreen, ContainerScreenOverlay overlay) { - DefaultSmokingDisplay display = (DefaultSmokingDisplay) displaySupplier.get(); - SmokerScreen smokerScreen = (SmokerScreen) parentScreen; - minecraft.openScreen(smokerScreen); + public Result handle(Context context) { + if (!(context.getContainerScreen() instanceof SmokerScreen) || !(context.getRecipe() instanceof DefaultSmokingDisplay)) + return Result.createNotApplicable(); + if (!((DefaultSmokingDisplay) context.getRecipe()).getOptionalRecipe().isPresent() || !context.getMinecraft().player.getRecipeBook().contains(((DefaultSmokingDisplay) context.getRecipe()).getOptionalRecipe().get())) + return Result.createNotApplicable(); + if (!context.isActuallyCrafting()) + return Result.createSuccessful(); + + DefaultSmokingDisplay display = (DefaultSmokingDisplay) context.getRecipe(); + SmokerScreen smokerScreen = (SmokerScreen) context.getContainerScreen(); + context.getMinecraft().openScreen(smokerScreen); ((RecipeBookGuiHooks) smokerScreen.getRecipeBookGui()).rei_getGhostSlots().reset(); SmokerContainer container = smokerScreen.getContainer(); - minecraft.interactionManager.clickRecipe(container.syncId, display.getOptionalRecipe().get(), Screen.hasShiftDown()); + context.getMinecraft().interactionManager.clickRecipe(container.syncId, display.getOptionalRecipe().get(), Screen.hasShiftDown()); ScreenHelper.getLastOverlay().init(); - return true; - } - - @Override - public boolean canHandle(Supplier<RecipeDisplay> displaySupplier, MinecraftClient minecraft, Screen recipeViewingScreen, AbstractContainerScreen<?> parentScreen, ContainerScreenOverlay overlay) { - return parentScreen instanceof SmokerScreen && displaySupplier.get() instanceof DefaultSmokingDisplay && ((DefaultSmokingDisplay) displaySupplier.get()).getOptionalRecipe().isPresent() && minecraft.player.getRecipeBook().contains(((DefaultSmokingDisplay) displaySupplier.get()).getOptionalRecipe().get()); + return Result.createSuccessful(); } } |
