From 7356e91c37427c7f5c335625544902bc96f060bf Mon Sep 17 00:00:00 2001 From: stfwi Date: Fri, 28 Aug 2020 17:03:14 +0200 Subject: [PATCH] Fixed conditional recipe tag dependency (issue #120). --- gradle.properties | 2 +- meta/update.json | 5 +++-- readme.md | 2 ++ .../libmc/detail/OptionalRecipeCondition.java | 12 ++++++++---- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/gradle.properties b/gradle.properties index df874ee..fb9f1ca 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,4 +5,4 @@ version_minecraft=1.16.1 version_forge_minecraft=1.16.1-32.0.106 version_fml_mappings=20200514-1.16 version_jei=1.16.1:7.0.0.6 -version_engineersdecor=1.1.2 +version_engineersdecor=1.1.3 diff --git a/meta/update.json b/meta/update.json index 5f678c5..5fa64d6 100644 --- a/meta/update.json +++ b/meta/update.json @@ -1,6 +1,7 @@ { "homepage": "https://www.curseforge.com/minecraft/mc-mods/engineers-decor/", "1.16.1": { + "1.1.3": "[F] Fixed conditional recipe tag dependency (thx Blu, Cyborgmas).", "1.1.2": "[F] Fixed Crafting Table Patchouli manual entry.", "1.1.1": "[R] Intial 1.16.1 release.", "1.1.1-b7": "[F] Fixed AI-open-path bug (issue #116, ty KrAzYGEEK32, desht).\n[F] Conditional recipes extended to additional vanilla ingredients in case of oredict tag issues.\n[M] Lang file update zh_cn (PR#117, Moonisky).", @@ -13,7 +14,7 @@ "1.1.1-a1": "[A] Initial port." }, "promos": { - "1.16.1-recommended": "1.1.2", - "1.16.1-latest": "1.1.2" + "1.16.1-recommended": "1.1.3", + "1.16.1-latest": "1.1.3" } } \ No newline at end of file diff --git a/readme.md b/readme.md index 54d78c1..b0ec245 100644 --- a/readme.md +++ b/readme.md @@ -11,6 +11,8 @@ Mod sources for Minecraft version 1.16.1. ## Version history + - v1.1.3 [F] Fixed conditional recipe tag dependency (thx Blu, Cyborgmas). + - v1.1.2 [F] Fixed Crafting Table Patchouli manual entry. - v1.1.1 [R] Intial 1.16.1 release. diff --git a/src/main/java/wile/engineersdecor/libmc/detail/OptionalRecipeCondition.java b/src/main/java/wile/engineersdecor/libmc/detail/OptionalRecipeCondition.java index 6f0ce82..6fd0b26 100644 --- a/src/main/java/wile/engineersdecor/libmc/detail/OptionalRecipeCondition.java +++ b/src/main/java/wile/engineersdecor/libmc/detail/OptionalRecipeCondition.java @@ -10,7 +10,9 @@ package wile.engineersdecor.libmc.detail; import net.minecraft.block.Block; import net.minecraft.item.Item; +import net.minecraft.tags.ITag; import net.minecraft.tags.ItemTags; +import net.minecraft.tags.TagCollectionManager; import net.minecraft.util.ResourceLocation; import net.minecraft.util.JSONUtils; import net.minecraftforge.common.crafting.conditions.ICondition; @@ -24,6 +26,7 @@ import org.apache.logging.log4j.Logger; import javax.annotation.Nullable; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.function.Predicate; @@ -95,6 +98,7 @@ public class OptionalRecipeCondition implements ICondition if(without_recipes) return false; if((experimental) && (!with_experimental)) return false; final IForgeRegistry item_registry = ForgeRegistries.ITEMS; + final Map> item_tags = TagCollectionManager.func_232928_e_/*getInstance?*/().func_232925_b_/*getItemTags()?*/().getTagMap(); if(result != null) { boolean item_registered = item_registry.containsKey(result); if(!item_registered) return false; // required result not registered @@ -108,8 +112,8 @@ public class OptionalRecipeCondition implements ICondition } if(!all_required_tags.isEmpty()) { for(ResourceLocation rl:all_required_tags) { - if(!ItemTags.getCollection().getTagMap().containsKey(rl)) return false; - if(ItemTags.getCollection().getTagMap().get(rl).func_230236_b_().isEmpty()) return false; + if(!item_tags.containsKey(rl)) return false; + if(item_tags.get(rl).func_230236_b_()/*getAllElements()*/.isEmpty()) return false; } } if(!any_missing.isEmpty()) { @@ -120,8 +124,8 @@ public class OptionalRecipeCondition implements ICondition } if(!any_missing_tags.isEmpty()) { for(ResourceLocation rl:any_missing_tags) { - if(!ItemTags.getCollection().getTagMap().containsKey(rl)) return true; - if(ItemTags.getCollection().getTagMap().get(rl).func_230236_b_().isEmpty()) return true; + if(!item_tags.containsKey(rl)) return true; + if(item_tags.get(rl).func_230236_b_()/*getAllElements()*/.isEmpty()) return true; } return false; }