aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorUnknown <shekwancheung0528@gmail.com>2019-01-05 22:14:37 +0800
committerUnknown <shekwancheung0528@gmail.com>2019-01-05 22:14:37 +0800
commit63fdcc76da7e2d7cbd79d327c6dd72404708f64f (patch)
tree7d95f69850beb2935856253db1d8515493717d1a /src/main/java
parent418ee1e13fb66ef30c9473e0069695d89967124f (diff)
downloadRoughlyEnoughItems-63fdcc76da7e2d7cbd79d327c6dd72404708f64f.tar.gz
RoughlyEnoughItems-63fdcc76da7e2d7cbd79d327c6dd72404708f64f.tar.bz2
RoughlyEnoughItems-63fdcc76da7e2d7cbd79d327c6dd72404708f64f.zip
Buggy Autocrafting
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/me/shedaniel/api/DisplayCategoryCraftable.java19
-rwxr-xr-xsrc/main/java/me/shedaniel/api/IRecipe.java1
-rwxr-xr-xsrc/main/java/me/shedaniel/gui/RecipeGui.java20
-rwxr-xr-xsrc/main/java/me/shedaniel/gui/widget/Button.java2
-rw-r--r--src/main/java/me/shedaniel/gui/widget/SmallButton.java61
-rwxr-xr-xsrc/main/java/me/shedaniel/impl/REIRecipeManager.java14
-rw-r--r--src/main/java/me/shedaniel/listenerdefinitions/IMixinRecipeBookGui.java9
-rw-r--r--src/main/java/me/shedaniel/mixins/MixinBrewingRecipeRegistry.java2
-rw-r--r--src/main/java/me/shedaniel/mixins/MixinRecipeBookGui.java20
-rwxr-xr-xsrc/main/java/me/shedaniel/plugin/VanillaPlugin.java40
-rwxr-xr-xsrc/main/java/me/shedaniel/plugin/crafting/VanillaCraftingCategory.java42
-rwxr-xr-xsrc/main/java/me/shedaniel/plugin/crafting/VanillaCraftingRecipe.java3
-rwxr-xr-xsrc/main/java/me/shedaniel/plugin/crafting/VanillaShapedCraftingRecipe.java6
-rwxr-xr-xsrc/main/java/me/shedaniel/plugin/crafting/VanillaShapelessCraftingRecipe.java6
14 files changed, 205 insertions, 40 deletions
diff --git a/src/main/java/me/shedaniel/api/DisplayCategoryCraftable.java b/src/main/java/me/shedaniel/api/DisplayCategoryCraftable.java
new file mode 100644
index 000000000..c0be7bd11
--- /dev/null
+++ b/src/main/java/me/shedaniel/api/DisplayCategoryCraftable.java
@@ -0,0 +1,19 @@
+package me.shedaniel.api;
+
+import me.shedaniel.api.IDisplayCategory;
+import me.shedaniel.api.IRecipe;
+import me.shedaniel.gui.RecipeGui;
+import me.shedaniel.gui.widget.Control;
+import net.minecraft.client.gui.Gui;
+
+import java.util.List;
+
+public interface DisplayCategoryCraftable<T extends IRecipe> extends IDisplayCategory<T> {
+
+ public boolean canAutoCraftHere(Class<? extends Gui> guiClass, T recipe);
+
+ public boolean performAutoCraft(Gui gui, T recipe);
+
+ public void registerAutoCraftButton(List<Control> control, RecipeGui recipeGui, Gui parentGui, T recipe, int number);
+
+}
diff --git a/src/main/java/me/shedaniel/api/IRecipe.java b/src/main/java/me/shedaniel/api/IRecipe.java
index 6359c351a..84cce4c79 100755
--- a/src/main/java/me/shedaniel/api/IRecipe.java
+++ b/src/main/java/me/shedaniel/api/IRecipe.java
@@ -12,4 +12,5 @@ public interface IRecipe<T> {
public List<T> getOutput();
public List<List<T>> getInput();
+
}
diff --git a/src/main/java/me/shedaniel/gui/RecipeGui.java b/src/main/java/me/shedaniel/gui/RecipeGui.java
index cf2c87572..7f655c23f 100755
--- a/src/main/java/me/shedaniel/gui/RecipeGui.java
+++ b/src/main/java/me/shedaniel/gui/RecipeGui.java
@@ -1,6 +1,7 @@
package me.shedaniel.gui;
import com.mojang.blaze3d.platform.GlStateManager;
+import me.shedaniel.api.DisplayCategoryCraftable;
import me.shedaniel.api.IDisplayCategory;
import me.shedaniel.api.IRecipe;
import me.shedaniel.gui.widget.Button;
@@ -53,6 +54,10 @@ public class RecipeGui extends ContainerGui {
setupCategories();
}
+ public Gui getPrevScreen() {
+ return prevScreen;
+ }
+
private void setupCategories() {
for(IDisplayCategory adapter : REIRecipeManager.instance().getDisplayAdapters())
if (recipes.containsKey(adapter))
@@ -101,9 +106,7 @@ public class RecipeGui extends ContainerGui {
}
private void updateRecipe() {
- int categoryPointer = categories.indexOf(selectedCategory);
-
- IRecipe recipe = recipes.get(categories.get(categoryPointer)).get(recipePointer);
+ IRecipe recipe = recipes.get(selectedCategory).get(recipePointer);
selectedCategory.resetRecipes();
selectedCategory.addRecipe(recipe);
slots = selectedCategory.setupDisplay(0);
@@ -161,9 +164,14 @@ public class RecipeGui extends ContainerGui {
controls.add(btnRecipeRight);
List<Control> newControls = new LinkedList<>();
- categories.get(categoryPointer).addWidget(newControls, 0);
- if (recipes.get(categories.get(categoryPointer)).size() >= recipePointer + 2)
- categories.get(categoryPointer).addWidget(newControls, 1);
+ selectedCategory.addWidget(newControls, 0);
+ if (selectedCategory instanceof DisplayCategoryCraftable)
+ ((DisplayCategoryCraftable) selectedCategory).registerAutoCraftButton(newControls, this, getPrevScreen(), recipe, 0);
+ if (recipes.get(selectedCategory).size() >= recipePointer + 2) {
+ selectedCategory.addWidget(newControls, 1);
+ if (selectedCategory instanceof DisplayCategoryCraftable)
+ ((DisplayCategoryCraftable) selectedCategory).registerAutoCraftButton(newControls, this, getPrevScreen(), recipes.get(selectedCategory).get(recipePointer + 1), 1);
+ }
newControls.forEach(f -> f.move(left, top));
controls.addAll(newControls);
diff --git a/src/main/java/me/shedaniel/gui/widget/Button.java b/src/main/java/me/shedaniel/gui/widget/Button.java
index 0c23a91db..e4339fd64 100755
--- a/src/main/java/me/shedaniel/gui/widget/Button.java
+++ b/src/main/java/me/shedaniel/gui/widget/Button.java
@@ -13,6 +13,7 @@ import java.awt.*;
* Created by James on 7/29/2018.
*/
public class Button extends Control {
+
private String buttonText;
protected static final Identifier BUTTON_TEXTURES = new Identifier("textures/gui/widgets.png");
@@ -61,5 +62,4 @@ public class Button extends Control {
GlStateManager.popMatrix();
}
-
}
diff --git a/src/main/java/me/shedaniel/gui/widget/SmallButton.java b/src/main/java/me/shedaniel/gui/widget/SmallButton.java
new file mode 100644
index 000000000..5eff8d206
--- /dev/null
+++ b/src/main/java/me/shedaniel/gui/widget/SmallButton.java
@@ -0,0 +1,61 @@
+package me.shedaniel.gui.widget;
+
+import com.mojang.blaze3d.platform.GlStateManager;
+import me.shedaniel.gui.REIRenderHelper;
+import net.minecraft.client.MinecraftClient;
+import net.minecraft.client.font.FontRenderer;
+import net.minecraft.client.gui.ContainerGui;
+import net.minecraft.util.Identifier;
+
+import java.awt.*;
+
+public class SmallButton extends Control {
+
+ private String buttonText;
+ protected static final Identifier BUTTON_TEXTURES = new Identifier("roughlyenoughitems", "textures/gui/recipecontainer.png");
+
+
+ public SmallButton(int x, int y, int width, int height, String buttonText) {
+ super(x, y, width, height);
+ this.buttonText = buttonText;
+ }
+
+ public SmallButton(Rectangle rect, String buttonText) {
+ super(rect);
+ this.buttonText = buttonText;
+ }
+
+ public void setString(String text) {
+ buttonText = text;
+ }
+
+
+ @Override
+ public void draw() {
+ GlStateManager.pushMatrix();
+ GlStateManager.disableLighting();
+ ContainerGui gui = REIRenderHelper.getOverlayedGui();
+ MinecraftClient lvt_4_1_ = MinecraftClient.getInstance();
+ FontRenderer lvt_5_1_ = lvt_4_1_.fontRenderer;
+ lvt_4_1_.getTextureManager().bindTexture(BUTTON_TEXTURES);
+ GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+ int hoverState = (byte) 0;
+ if (this.isEnabled()) {
+ if (!this.isHighlighted())
+ hoverState = (byte) 1;
+ else
+ hoverState = (byte) 2;
+ }
+
+ GlStateManager.enableBlend();
+ GlStateManager.blendFuncSeparate(GlStateManager.SrcBlendFactor.SRC_ALPHA, GlStateManager.DstBlendFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SrcBlendFactor.ONE, GlStateManager.DstBlendFactor.ZERO);
+ GlStateManager.blendFunc(GlStateManager.SrcBlendFactor.SRC_ALPHA, GlStateManager.DstBlendFactor.ONE_MINUS_SRC_ALPHA);
+ gui.drawTexturedRect(rect.x, rect.y, 18 + 44, 222 + hoverState * 10, rect.width, rect.height);
+ int lvt_7_1_ = 14737632;
+
+ gui.drawStringCentered(lvt_5_1_, this.buttonText, rect.x + rect.width / 2, rect.y + (rect.height - 8) / 2, lvt_7_1_);
+ GlStateManager.enableLighting();
+ GlStateManager.popMatrix();
+ }
+
+}
diff --git a/src/main/java/me/shedaniel/impl/REIRecipeManager.java b/src/main/java/me/shedaniel/impl/REIRecipeManager.java
index a7196adb4..78ff9c153 100755
--- a/src/main/java/me/shedaniel/impl/REIRecipeManager.java
+++ b/src/main/java/me/shedaniel/impl/REIRecipeManager.java
@@ -11,12 +11,10 @@ import net.minecraft.client.gui.Gui;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.recipe.RecipeManager;
-import net.minecraft.util.BooleanBiFunction;
import java.awt.*;
import java.util.*;
import java.util.List;
-import java.util.function.BooleanSupplier;
import java.util.function.Function;
/**
@@ -165,7 +163,11 @@ public class REIRecipeManager implements IRecipeManager {
Map<IDisplayCategory, List<IRecipe>> recipes = REIRecipeManager.instance().getRecipesFor(stack);
if (recipes.isEmpty())
return;
- RecipeGui gui = new RecipeGui(null, MinecraftClient.getInstance().currentGui, recipes);
+ RecipeGui gui;
+ if (MinecraftClient.getInstance().currentGui instanceof RecipeGui)
+ gui = new RecipeGui(null, ((RecipeGui) MinecraftClient.getInstance().currentGui).getPrevScreen(), recipes);
+ else
+ gui = new RecipeGui(null, MinecraftClient.getInstance().currentGui, recipes);
MinecraftClient.getInstance().openGui(gui);
}
@@ -173,7 +175,11 @@ public class REIRecipeManager implements IRecipeManager {
Map<IDisplayCategory, List<IRecipe>> recipes = REIRecipeManager.instance().getUsesFor(stack);
if (recipes.isEmpty())
return;
- RecipeGui gui = new RecipeGui(null, MinecraftClient.getInstance().currentGui, recipes);
+ RecipeGui gui;
+ if (MinecraftClient.getInstance().currentGui instanceof RecipeGui)
+ gui = new RecipeGui(null, ((RecipeGui) MinecraftClient.getInstance().currentGui).getPrevScreen(), recipes);
+ else
+ gui = new RecipeGui(null, MinecraftClient.getInstance().currentGui, recipes);
MinecraftClient.getInstance().openGui(gui);
}
}
diff --git a/src/main/java/me/shedaniel/listenerdefinitions/IMixinRecipeBookGui.java b/src/main/java/me/shedaniel/listenerdefinitions/IMixinRecipeBookGui.java
new file mode 100644
index 000000000..a9e63261d
--- /dev/null
+++ b/src/main/java/me/shedaniel/listenerdefinitions/IMixinRecipeBookGui.java
@@ -0,0 +1,9 @@
+package me.shedaniel.listenerdefinitions;
+
+import net.minecraft.client.gui.widget.RecipeBookGhostSlots;
+
+public interface IMixinRecipeBookGui {
+
+ public RecipeBookGhostSlots getGhostSlots();
+
+}
diff --git a/src/main/java/me/shedaniel/mixins/MixinBrewingRecipeRegistry.java b/src/main/java/me/shedaniel/mixins/MixinBrewingRecipeRegistry.java
index bc36c8315..e34a2682e 100644
--- a/src/main/java/me/shedaniel/mixins/MixinBrewingRecipeRegistry.java
+++ b/src/main/java/me/shedaniel/mixins/MixinBrewingRecipeRegistry.java
@@ -13,7 +13,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(BrewingRecipeRegistry.class)
public class MixinBrewingRecipeRegistry {
- @Inject(method = "registerPotionRecipe", at = @At("RETURN"))
+ @Inject(method = "registerPotionRecipe", at = @At("HEAD"))
private static void registerPotionRecipe(Potion potion_1, Item item_1, Potion potion_2, CallbackInfo info) {
Core.getListeners(PotionCraftingAdder.class).forEach(potionCraftingAdder -> potionCraftingAdder.addPotionRecipe(potion_1, item_1, potion_2));
}
diff --git a/src/main/java/me/shedaniel/mixins/MixinRecipeBookGui.java b/src/main/java/me/shedaniel/mixins/MixinRecipeBookGui.java
new file mode 100644
index 000000000..d685ba1e6
--- /dev/null
+++ b/src/main/java/me/shedaniel/mixins/MixinRecipeBookGui.java
@@ -0,0 +1,20 @@
+package me.shedaniel.mixins;
+
+import me.shedaniel.listenerdefinitions.IMixinRecipeBookGui;
+import net.minecraft.client.gui.recipebook.RecipeBookGui;
+import net.minecraft.client.gui.widget.RecipeBookGhostSlots;
+import org.spongepowered.asm.mixin.Final;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.Shadow;
+
+@Mixin(RecipeBookGui.class)
+public class MixinRecipeBookGui implements IMixinRecipeBookGui {
+
+ @Shadow @Final protected RecipeBookGhostSlots ghostSlots;
+
+ @Override
+ public RecipeBookGhostSlots getGhostSlots() {
+ return ghostSlots;
+ }
+
+}
diff --git a/src/main/java/me/shedaniel/plugin/VanillaPlugin.java b/src/main/java/me/shedaniel/plugin/VanillaPlugin.java
index 5b0bb9e82..a9cebf134 100755
--- a/src/main/java/me/shedaniel/plugin/VanillaPlugin.java
+++ b/src/main/java/me/shedaniel/plugin/VanillaPlugin.java
@@ -30,8 +30,6 @@ import net.minecraft.recipe.smelting.SmeltingRecipe;
import net.minecraft.recipe.smelting.SmokingRecipe;
import net.minecraft.util.registry.Registry;
-import java.lang.reflect.Array;
-import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import java.util.stream.Collectors;
@@ -39,13 +37,13 @@ import java.util.stream.Collectors;
public class VanillaPlugin implements IREIPlugin, PotionCraftingAdder {
private List<VanillaPotionRecipe> potionRecipes = new LinkedList<>();
+ private List<VanillaCraftingRecipe> recipes = new LinkedList<>();
+ private List<VanillaFurnaceRecipe> furnaceRecipes = new LinkedList<>();
+ private List<VanillaSmokerRecipe> smokerRecipes = new LinkedList<>();
+ private List<VanillaBlastFurnaceRecipe> blastFurnaceRecipes = new LinkedList<>();
@Override
- public void register() {
- List<VanillaCraftingRecipe> recipes = new LinkedList<>();
- List<VanillaFurnaceRecipe> furnaceRecipes = new LinkedList<>();
- List<VanillaSmokerRecipe> smokerRecipes = new LinkedList<>();
- List<VanillaBlastFurnaceRecipe> blastFurnaceRecipes = new LinkedList<>();
+ public void registerCategories() {
REIRecipeManager.instance().addDisplayAdapter(new VanillaCraftingCategory());
REIRecipeManager.instance().addDisplayAdapter(new VanillaFurnaceCategory());
REIRecipeManager.instance().addDisplayAdapter(new VanillaSmokerCategory());
@@ -56,25 +54,21 @@ public class VanillaPlugin implements IREIPlugin, PotionCraftingAdder {
// REIRecipeManager.instance().addDisplayAdapter(new TestRandomCategory("c", new ItemStack(Items.ITEM_FRAME)));
// REIRecipeManager.instance().addDisplayAdapter(new TestRandomCategory("d", new ItemStack(Items.ITEM_FRAME)));
// REIRecipeManager.instance().addDisplayAdapter(new TestRandomCategory("e", new ItemStack(Items.ITEM_FRAME)));
-
-
- for(Recipe recipe : REIRecipeManager.instance().recipeManager.values()) {
- if (recipe instanceof ShapelessRecipe) {
+ }
+
+ @Override
+ public void registerRecipes() {
+ for(Recipe recipe : REIRecipeManager.instance().recipeManager.values())
+ if (recipe instanceof ShapelessRecipe)
recipes.add(new VanillaShapelessCraftingRecipe((ShapelessRecipe) recipe));
- }
- if (recipe instanceof ShapedRecipe) {
+ else if (recipe instanceof ShapedRecipe)
recipes.add(new VanillaShapedCraftingRecipe((ShapedRecipe) recipe));
- }
- if (recipe instanceof SmeltingRecipe) {
+ else if (recipe instanceof SmeltingRecipe)
furnaceRecipes.add(new VanillaFurnaceRecipe((SmeltingRecipe) recipe));
- }
- if (recipe instanceof SmokingRecipe) {
+ else if (recipe instanceof SmokingRecipe)
smokerRecipes.add(new VanillaSmokerRecipe((SmokingRecipe) recipe));
- }
- if (recipe instanceof BlastingRecipe) {
+ else if (recipe instanceof BlastingRecipe)
blastFurnaceRecipes.add(new VanillaBlastFurnaceRecipe((BlastingRecipe) recipe));
- }
- }
Registry.POTION.stream().filter(potion -> !potion.equals(Potions.EMPTY)).forEach(potion -> {
ItemStack basePotion = PotionUtil.setPotion(new ItemStack(Items.POTION), potion),
splashPotion = PotionUtil.setPotion(new ItemStack(Items.SPLASH_POTION), potion),
@@ -97,6 +91,10 @@ public class VanillaPlugin implements IREIPlugin, PotionCraftingAdder {
// REIRecipeManager.instance().addRecipe("e", Arrays.asList(new RandomRecipe("e")));
}
+ @Override
+ public void registerSpecialGuiExclusion() {
+
+ }
@Override
public void addPotionRecipe(Potion inputType, Item reagent, Potion outputType) {
diff --git a/src/main/java/me/shedaniel/plugin/crafting/VanillaCraftingCategory.java b/src/main/java/me/shedaniel/plugin/crafting/VanillaCraftingCategory.java
index 30c6a0726..2c6d48a08 100755
--- a/src/main/java/me/shedaniel/plugin/crafting/VanillaCraftingCategory.java
+++ b/src/main/java/me/shedaniel/plugin/crafting/VanillaCraftingCategory.java
@@ -1,11 +1,15 @@
package me.shedaniel.plugin.crafting;
-import me.shedaniel.api.IDisplayCategory;
-import me.shedaniel.gui.widget.Control;
-import me.shedaniel.gui.widget.REISlot;
-import me.shedaniel.gui.widget.WidgetArrow;
+import me.shedaniel.api.DisplayCategoryCraftable;
+import me.shedaniel.gui.RecipeGui;
+import me.shedaniel.gui.widget.*;
+import me.shedaniel.listenerdefinitions.IMixinRecipeBookGui;
+import me.shedaniel.mixins.MixinRecipeBookGui;
import net.minecraft.block.Blocks;
import net.minecraft.client.MinecraftClient;
+import net.minecraft.client.gui.Gui;
+import net.minecraft.client.gui.container.CraftingTableGui;
+import net.minecraft.client.gui.ingame.PlayerInventoryGui;
import net.minecraft.client.resource.language.I18n;
import net.minecraft.client.util.Window;
import net.minecraft.item.ItemStack;
@@ -14,7 +18,7 @@ import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
-public class VanillaCraftingCategory implements IDisplayCategory<VanillaCraftingRecipe> {
+public class VanillaCraftingCategory implements DisplayCategoryCraftable<VanillaCraftingRecipe> {
Window mainWindow = MinecraftClient.getInstance().window;
private List<VanillaCraftingRecipe> recipes;
@@ -117,4 +121,32 @@ public class VanillaCraftingCategory implements IDisplayCategory<VanillaCrafting
return new ItemStack(Blocks.CRAFTING_TABLE.getItem());
}
+ @Override
+ public boolean canAutoCraftHere(Class<? extends Gui> guiClass, VanillaCraftingRecipe recipe) {
+ return guiClass.isAssignableFrom(CraftingTableGui.class) || (guiClass.isAssignableFrom(PlayerInventoryGui.class) && recipe.getHeight() < 3 && recipe.getWidth() < 3);
+ }
+
+ @Override
+ public boolean performAutoCraft(Gui gui, VanillaCraftingRecipe recipe) {
+ if (gui.getClass().isAssignableFrom(CraftingTableGui.class))
+ ((IMixinRecipeBookGui) (((CraftingTableGui) gui).getRecipeBookGui())).getGhostSlots().reset();
+ else if (gui.getClass().isAssignableFrom(PlayerInventoryGui.class))
+ ((IMixinRecipeBookGui) (((PlayerInventoryGui) gui).getRecipeBookGui())).getGhostSlots().reset();
+ MinecraftClient.getInstance().interactionManager.clickRecipe(MinecraftClient.getInstance().player.container.syncId, recipe.getRecipe(), Gui.isShiftPressed());
+ return true;
+ }
+
+ @Override
+ public void registerAutoCraftButton(List<Control> control, RecipeGui recipeGui, Gui parentGui, VanillaCraftingRecipe recipe, int number) {
+ SmallButton button = new SmallButton(78, 75 + 6 + 36 + number * 75, 10, 10, "+");
+ button.setOnClick(mouse -> {
+ System.out.println(parentGui.getClass().getName());
+ recipeGui.close();
+ MinecraftClient.getInstance().openGui(parentGui);
+ return canAutoCraftHere(parentGui.getClass(), recipe) && performAutoCraft(parentGui, recipe);
+ });
+ button.setEnabled(canAutoCraftHere(parentGui.getClass(), recipe));
+ control.add(button);
+ }
+
}
diff --git a/src/main/java/me/shedaniel/plugin/crafting/VanillaCraftingRecipe.java b/src/main/java/me/shedaniel/plugin/crafting/VanillaCraftingRecipe.java
index f39b5d695..c7d7bfeb2 100755
--- a/src/main/java/me/shedaniel/plugin/crafting/VanillaCraftingRecipe.java
+++ b/src/main/java/me/shedaniel/plugin/crafting/VanillaCraftingRecipe.java
@@ -2,6 +2,7 @@ package me.shedaniel.plugin.crafting;
import me.shedaniel.api.IRecipe;
import net.minecraft.item.ItemStack;
+import net.minecraft.recipe.Recipe;
public abstract class VanillaCraftingRecipe implements IRecipe<ItemStack> {
@@ -13,4 +14,6 @@ public abstract class VanillaCraftingRecipe implements IRecipe<ItemStack> {
return 2;
}
+ public abstract Recipe getRecipe();
+
}
diff --git a/src/main/java/me/shedaniel/plugin/crafting/VanillaShapedCraftingRecipe.java b/src/main/java/me/shedaniel/plugin/crafting/VanillaShapedCraftingRecipe.java
index 3f830f381..81bc101a0 100755
--- a/src/main/java/me/shedaniel/plugin/crafting/VanillaShapedCraftingRecipe.java
+++ b/src/main/java/me/shedaniel/plugin/crafting/VanillaShapedCraftingRecipe.java
@@ -12,11 +12,15 @@ public class VanillaShapedCraftingRecipe extends VanillaCraftingRecipe {
private final ShapedRecipe recipe;
public VanillaShapedCraftingRecipe(ShapedRecipe recipe) {
-
this.recipe = recipe;
}
@Override
+ public ShapedRecipe getRecipe() {
+ return recipe;
+ }
+
+ @Override
public int getWidth() {
return recipe.getWidth();
}
diff --git a/src/main/java/me/shedaniel/plugin/crafting/VanillaShapelessCraftingRecipe.java b/src/main/java/me/shedaniel/plugin/crafting/VanillaShapelessCraftingRecipe.java
index 7b04e9901..dfb8d042b 100755
--- a/src/main/java/me/shedaniel/plugin/crafting/VanillaShapelessCraftingRecipe.java
+++ b/src/main/java/me/shedaniel/plugin/crafting/VanillaShapelessCraftingRecipe.java
@@ -12,11 +12,15 @@ public class VanillaShapelessCraftingRecipe extends VanillaCraftingRecipe {
private final ShapelessRecipe recipe;
public VanillaShapelessCraftingRecipe(ShapelessRecipe recipe) {
-
this.recipe = recipe;
}
@Override
+ public ShapelessRecipe getRecipe() {
+ return recipe;
+ }
+
+ @Override
public String getId() {
return "vanilla";
}