Skip to content

Commit 88f3510

Browse files
embeddedtAlexdoru
andcommitted
Disable MixinCraftingManager when config is off
Co-authored-by: Alexdoru <[email protected]>
1 parent 7829991 commit 88f3510

File tree

4 files changed

+8
-5
lines changed

4 files changed

+8
-5
lines changed

src/main/java/org/embeddedt/archaicfix/ArchaicFix.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,9 @@ public void serverStart(FMLServerStartingEvent event) {
8282

8383
@EventHandler
8484
public void serverStarted(FMLServerStartedEvent event) {
85+
if (!(CraftingManager.getInstance() instanceof IFasterCraftingManager)) {
86+
return;
87+
}
8588
((IFasterCraftingManager)CraftingManager.getInstance()).clearRecipeCache();
8689
ArchaicLogger.LOGGER.info("Cleared recipe cache");
8790
}

src/main/java/org/embeddedt/archaicfix/FixHelper.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public void onOreRegister(OreDictionary.OreRegisterEvent event) {
4242
recipe.invalidatePotentialItems();
4343
}
4444
recipesHoldingPotentialItems.clear();
45-
if(CraftingManager.getInstance() != null)
45+
if(CraftingManager.getInstance() instanceof IFasterCraftingManager)
4646
((IFasterCraftingManager)CraftingManager.getInstance()).clearRecipeCache();
4747
OreDictIterator.clearCache(event.Name);
4848
}

src/main/java/org/embeddedt/archaicfix/asm/Mixin.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ public enum Mixin implements IMixins {
2626
"core.MixinMaterialLiquid",
2727
"core.MixinChunkProviderServer",
2828
"core.MixinChunkIOProvider",
29-
"core.MixinCraftingManager",
3029
"core.MixinSpawnerAnimals",
3130
"core.MixinShapedOreRecipe",
3231
"core.MixinLongHashMap",
@@ -65,6 +64,10 @@ public enum Mixin implements IMixins {
6564
"core.MixinFMLClientHandler",
6665
"core.MixinSplashProgress",
6766
"core.AccessorSplashProgress")),
67+
RECIPE_CACHING(new ArchaicBuilder()
68+
.setPhase(Phase.EARLY)
69+
.setApplyIf(() -> ArchaicConfig.cacheRecipes)
70+
.addCommonMixins("core.MixinCraftingManager")),
6871
PHOSPHOR(new ArchaicBuilder()
6972
.setPhase(Phase.EARLY)
7073
.setApplyIf(() -> ArchaicConfig.enablePhosphor)

src/main/java/org/embeddedt/archaicfix/mixins/common/core/MixinCraftingManager.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import net.minecraft.item.crafting.IRecipe;
1212
import net.minecraft.world.World;
1313
import org.embeddedt.archaicfix.ArchaicLogger;
14-
import org.embeddedt.archaicfix.config.ArchaicConfig;
1514
import org.embeddedt.archaicfix.recipe.IFasterCraftingManager;
1615
import org.embeddedt.archaicfix.recipe.LastMatchedInfo;
1716
import org.embeddedt.archaicfix.recipe.RecipeCacheLoader;
@@ -41,8 +40,6 @@ public class MixinCraftingManager implements IFasterCraftingManager {
4140
to = @At(value = "INVOKE", target = "Ljava/util/List;size()I")
4241
), cancellable = true)
4342
private void fasterRecipeSearch(InventoryCrafting inventory, World world, CallbackInfoReturnable<ItemStack> cir) {
44-
if(!ArchaicConfig.cacheRecipes)
45-
return;
4643
LastMatchedInfo retInfo = lastMatchedInfo;
4744
if(retInfo == null || !retInfo.matches(inventory)) {
4845
Set<Item> stacks = new HashSet<>();

0 commit comments

Comments
 (0)