From c222b3de7834e90c38cbd9cddb1d3d033851ce11 Mon Sep 17 00:00:00 2001 From: tier940 Date: Wed, 11 Feb 2026 16:26:30 +0900 Subject: [PATCH 1/3] Fix recycling recipes. --- CHANGELOG.md | 5 ++++ buildscript.properties | 2 +- .../gtexpert/core/core/GTECoreModule.java | 2 -- .../core/integration/ae/AEModule.java | 20 +++++++++++++++- .../core/integration/deda/DEDAModule.java | 24 +++++++++++++++---- .../core/integration/eio/EnderIOModule.java | 18 +++++++++++++- .../core/modules/GTEModuleManager.java | 22 +++++++++++++++++ 7 files changed, 83 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1927075e..3e6a703c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +# 2.7.2 +- Add BQu mixin [#359](https://github.com/GTModpackTeam/GTExpert-Core/pull/359) + +* * * + # 2.7.1 - Fix server boot crash [#354](https://github.com/GTModpackTeam/GTExpert-Core/pull/354) diff --git a/buildscript.properties b/buildscript.properties index 48c3f0e7..1cf6f076 100644 --- a/buildscript.properties +++ b/buildscript.properties @@ -29,7 +29,7 @@ debug_extracpus = false debug_thaumcraft = false debug_thaumenergy = false debug_eio = false -debug_deda = false +debug_deda = true debug_avaritia = false debug_gtfo = false debug_jer = false diff --git a/src/main/java/com/github/gtexpert/core/core/GTECoreModule.java b/src/main/java/com/github/gtexpert/core/core/GTECoreModule.java index 549ce7d7..4c975bce 100644 --- a/src/main/java/com/github/gtexpert/core/core/GTECoreModule.java +++ b/src/main/java/com/github/gtexpert/core/core/GTECoreModule.java @@ -21,7 +21,6 @@ import gregtech.api.block.VariantItemBlock; import gregtech.api.recipes.RecipeMaps; -import gregtech.loaders.recipe.RecyclingRecipes; import com.github.gtexpert.core.api.GTEValues; import com.github.gtexpert.core.api.modules.GTEModule; @@ -110,6 +109,5 @@ public void registerRecipesLowest(RegistryEvent.Register event) { GTERecipe.init(); CEUOverrideRecipe.init(); GTEVanillaOverrideRecipes.init(); - RecyclingRecipes.init(); } } diff --git a/src/main/java/com/github/gtexpert/core/integration/ae/AEModule.java b/src/main/java/com/github/gtexpert/core/integration/ae/AEModule.java index 2121398c..770f8094 100644 --- a/src/main/java/com/github/gtexpert/core/integration/ae/AEModule.java +++ b/src/main/java/com/github/gtexpert/core/integration/ae/AEModule.java @@ -1,7 +1,15 @@ package com.github.gtexpert.core.integration.ae; +import java.util.Collections; +import java.util.List; + import net.minecraft.item.crafting.IRecipe; import net.minecraftforge.event.RegistryEvent; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; + +import org.jetbrains.annotations.NotNull; + +import gregtech.api.event.MaterialInfoEvent; import com.github.gtexpert.core.api.GTEValues; import com.github.gtexpert.core.api.modules.GTEModule; @@ -23,9 +31,19 @@ description = "Applied Energistics 2 Integration Module") public class AEModule extends GTEIntegrationSubmodule { + @NotNull @Override - public void registerRecipesNormal(RegistryEvent.Register event) { + public List> getEventBusSubscribers() { + return Collections.singletonList(AEModule.class); + } + + @SubscribeEvent + public static void onMaterialInfo(MaterialInfoEvent event) { AEMaterialInfoLoader.init(); + } + + @Override + public void registerRecipesNormal(RegistryEvent.Register event) { AEOreDictionaryLoader.init(); } diff --git a/src/main/java/com/github/gtexpert/core/integration/deda/DEDAModule.java b/src/main/java/com/github/gtexpert/core/integration/deda/DEDAModule.java index cb5edaf6..24f1787e 100644 --- a/src/main/java/com/github/gtexpert/core/integration/deda/DEDAModule.java +++ b/src/main/java/com/github/gtexpert/core/integration/deda/DEDAModule.java @@ -1,9 +1,17 @@ package com.github.gtexpert.core.integration.deda; +import java.util.Collections; +import java.util.List; + import net.minecraft.block.Block; import net.minecraft.item.crafting.IRecipe; import net.minecraftforge.event.RegistryEvent; import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; + +import org.jetbrains.annotations.NotNull; + +import gregtech.api.event.MaterialInfoEvent; import com.github.gtexpert.core.api.GTEValues; import com.github.gtexpert.core.api.modules.GTEModule; @@ -23,6 +31,17 @@ description = "Draconic Evolution & Draconic Additions Integration Module") public class DEDAModule extends GTEIntegrationSubmodule { + @NotNull + @Override + public List> getEventBusSubscribers() { + return Collections.singletonList(DEDAModule.class); + } + + @SubscribeEvent + public static void onMaterialInfo(MaterialInfoEvent event) { + DEDAMaterialInfoLoader.init(); + } + @Override public void registerBlocks(RegistryEvent.Register event) { DEDAMetaTileEntities.init(); @@ -33,11 +52,6 @@ public void postInit(FMLPostInitializationEvent event) { DraconicMaterialsRecipe.remove(); } - @Override - public void registerRecipesNormal(RegistryEvent.Register event) { - DEDAMaterialInfoLoader.init(); - } - @Override public void registerRecipesLowest(RegistryEvent.Register event) { DEDAOreDictionaryLoader.init(); diff --git a/src/main/java/com/github/gtexpert/core/integration/eio/EnderIOModule.java b/src/main/java/com/github/gtexpert/core/integration/eio/EnderIOModule.java index e552de6b..7916f608 100644 --- a/src/main/java/com/github/gtexpert/core/integration/eio/EnderIOModule.java +++ b/src/main/java/com/github/gtexpert/core/integration/eio/EnderIOModule.java @@ -2,6 +2,8 @@ import static gregtech.api.GTValues.*; +import java.util.Collections; +import java.util.List; import java.util.function.Consumer; import net.minecraft.block.Block; @@ -12,9 +14,13 @@ import net.minecraft.util.ResourceLocation; import net.minecraftforge.event.RegistryEvent; import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; + +import org.jetbrains.annotations.NotNull; import com.enderio.core.common.util.EntityUtil; +import gregtech.api.event.MaterialInfoEvent; import gregtech.api.recipes.RecipeBuilder; import gregtech.api.recipes.builders.SimpleRecipeBuilder; import gregtech.api.recipes.ingredients.GTRecipeItemInput; @@ -43,6 +49,17 @@ description = "Ender IO Integration Module") public class EnderIOModule extends GTEIntegrationSubmodule { + @NotNull + @Override + public List> getEventBusSubscribers() { + return Collections.singletonList(EnderIOModule.class); + } + + @SubscribeEvent + public static void onMaterialInfo(MaterialInfoEvent event) { + EIOMaterialInfoLoader.init(); + } + @Override public void registerBlocks(RegistryEvent.Register event) { EIOMetaTileEntities.init(); @@ -55,7 +72,6 @@ public void postInit(FMLPostInitializationEvent event) { @Override public void registerRecipesNormal(RegistryEvent.Register event) { - EIOMaterialInfoLoader.init(); EIOOreDictionaryLoader.init(); } diff --git a/src/main/java/com/github/gtexpert/core/modules/GTEModuleManager.java b/src/main/java/com/github/gtexpert/core/modules/GTEModuleManager.java index 7a9c5fbb..3981d63a 100644 --- a/src/main/java/com/github/gtexpert/core/modules/GTEModuleManager.java +++ b/src/main/java/com/github/gtexpert/core/modules/GTEModuleManager.java @@ -6,6 +6,7 @@ import net.minecraft.block.Block; import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.IRecipe; import net.minecraft.util.ResourceLocation; import net.minecraftforge.common.MinecraftForge; @@ -22,6 +23,11 @@ import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; +import gregtech.api.unification.OreDictUnifier; +import gregtech.api.unification.stack.ItemAndMetadata; +import gregtech.api.unification.stack.ItemMaterialInfo; +import gregtech.loaders.recipe.RecyclingRecipes; + import com.github.gtexpert.core.api.GTEValues; import com.github.gtexpert.core.api.modules.*; @@ -262,10 +268,26 @@ public void registerRecipesLow(RegistryEvent.Register event) { } public void registerRecipesLowest(RegistryEvent.Register event) { + // Take a snapshot of all item material infos before GTE registers its LOWEST recipes. + // Any new entries added by .withRecycling() during buildAndRegister() will need + // recycling recipes generated, since GregTech's RecyclingRecipes.init() has already run. + Set existingInfos = new HashSet<>(); + for (Map.Entry entry : OreDictUnifier.getAllItemInfos()) { + existingInfos.add(new ItemAndMetadata(entry.getKey())); + } + for (IGTEModule module : loadedModules) { currentContainer = containers.get(getContainerID(module)); module.registerRecipesLowest(event); } + + // Generate recycling recipes for items newly registered via .withRecycling() + for (Map.Entry entry : OreDictUnifier.getAllItemInfos()) { + if (!existingInfos.contains(new ItemAndMetadata(entry.getKey()))) { + RecyclingRecipes.registerRecyclingRecipes(entry.getKey(), + new ArrayList<>(entry.getValue().getMaterials()), false, null); + } + } } private void configureModules(Map> modules) { From 6f2eeea8205bb64d179283e381af5a1a2d0f005a Mon Sep 17 00:00:00 2001 From: tier940 Date: Wed, 11 Feb 2026 16:27:43 +0900 Subject: [PATCH 2/3] fix --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3e6a703c..beb9dac1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ # 2.7.2 - Add BQu mixin [#359](https://github.com/GTModpackTeam/GTExpert-Core/pull/359) +- Fix recycling recipes [#360](https://github.com/GTModpackTeam/GTExpert-Core/pull/360) * * * From 400d4e8b849868231b68a8de73532e4376ea2994 Mon Sep 17 00:00:00 2001 From: tier940 Date: Wed, 11 Feb 2026 16:28:43 +0900 Subject: [PATCH 3/3] revert --- buildscript.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildscript.properties b/buildscript.properties index 1cf6f076..48c3f0e7 100644 --- a/buildscript.properties +++ b/buildscript.properties @@ -29,7 +29,7 @@ debug_extracpus = false debug_thaumcraft = false debug_thaumenergy = false debug_eio = false -debug_deda = true +debug_deda = false debug_avaritia = false debug_gtfo = false debug_jer = false