Skip to content
This repository was archived by the owner on Oct 11, 2025. It is now read-only.

Commit 497efa4

Browse files
committed
Update to 2.8.0 and fixed disassembler
1 parent 3303bac commit 497efa4

File tree

5 files changed

+85
-8
lines changed

5 files changed

+85
-8
lines changed

dependencies.gradle

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,15 @@
3434
* For more details, see https://docs.gradle.org/8.0.1/userguide/java_library_plugin.html#sec:java_library_configurations_graph
3535
*/
3636

37+
repositories {
38+
maven {
39+
url = "https://jitpack.io"
40+
mavenContent {
41+
includeGroupByRegex("com\\.github\\..+")
42+
}
43+
}
44+
}
45+
3746
dependencies {
3847
runtimeOnly(gtnhDev("Forgelin"))
3948
// already provided by Forgelin, but we need to add it here to avoid a warning
@@ -48,6 +57,10 @@ dependencies {
4857

4958
runtimeOnly("thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev") { transitive = false }
5059
runtimeOnly(gtnhDev("BlockRenderer6343")) { transitive = false }
60+
61+
shadowImplementation("com.github.ElytraServers:conditional-mixin-legacy:1.0.0") {
62+
exclude group: "io.github.legacymoddingmc"
63+
}
5164
}
5265

5366
@SuppressWarnings('GrMethodMayBeStatic')

gradle.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ forceEnableMixins = true
104104

105105
# If enabled, you may use 'shadowCompile' for dependencies. They will be integrated into your jar. It is your
106106
# responsibility to check the license and request permission for distribution if required.
107-
usesShadowedDependencies = false
107+
usesShadowedDependencies = true
108108

109109
# If disabled, won't remove unused classes from shadowed dependencies. Some libraries use reflection to access
110110
# their own classes, making the minimization unreliable.
@@ -192,4 +192,4 @@ disableCheckstyle = true
192192
# This is meant to be set in $HOME/.gradle/gradle.properties.
193193
# ideaCheckSpotlessOnBuild = true
194194

195-
elytra.manifest.version=2.8.0-rc-1
195+
elytra.manifest.version=2.8.0

src/main/kotlin/cn/elytra/mod/gtnn/modules/disassembler/Disassembler.kt

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package cn.elytra.mod.gtnn.modules.disassembler
22

33
import cn.elytra.mod.gtnn.mod_v2.ModuleDefinitionBase
44
import cn.elytra.mod.gtnn.mod_v2.util.gte
5+
import cn.elytra.mod.gtnn.mod_v2.util.lt
56
import cn.elytra.mod.gtnn.util.VoltageIndexedMap
67
import cpw.mods.fml.common.event.FMLInitializationEvent
78
import cpw.mods.fml.common.event.FMLLoadCompleteEvent
@@ -50,13 +51,20 @@ object Disassembler : ModuleDefinitionBase("disassembler") {
5051

5152
override fun gatherMixinsToApply(): Set<String> {
5253
return buildMixinClassSet {
53-
// shaped
54-
add("gt5u.DisassemblerReversedRecipe_GTShapedRecipe_Mixin")
55-
// shapeless
56-
if(isModVersionValid("gregtech") { it gte "5.09.51.155" }) {
57-
add("gt5u.DisassemblerReversedRecipe_GTShapelessRecipe_Mixin")
54+
if(isModVersionValid("gregtech") { it gte "5.09.51.0" && it lt "5.09.51.357" /* the fucking pr #4514 */ }) {
55+
// shaped
56+
add("gt5u.DisassemblerReversedRecipe_GTShapedRecipe_Mixin")
57+
// shapeless
58+
if(isModVersionValid("gregtech") { it gte "5.09.51.155" }) {
59+
add("gt5u.DisassemblerReversedRecipe_GTShapelessRecipe_Mixin")
60+
} else {
61+
log.info("Ignored GregTech shapeless recipes because of GT5-Unofficial#3138 broke the mixin.")
62+
}
5863
} else {
59-
log.info("Ignored GregTech shapeless recipes because of GT5-Unofficial#3138 broke the mixin.")
64+
log.info("Using call-site injection because GT5-Unofficial#4514 broke the mixin.")
65+
66+
add("gt5u.gt_recipes.Disassembler_BWUtil_Mixin")
67+
add("gt5u.gt_recipes.Disassembler_GTModHandler_Mixin")
6068
}
6169
}
6270
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package cn.elytra.mod.gtnn.mixin.gt5u.gt_recipes;
2+
3+
import bartworks.util.BWUtil;
4+
import cn.elytra.mod.gtnn.modules.disassembler.ReversedRecipeRegistry;
5+
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
6+
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
7+
import com.llamalad7.mixinextras.sugar.Local;
8+
import gregtech.api.util.GTShapedRecipe;
9+
import net.minecraft.enchantment.Enchantment;
10+
import net.minecraft.item.ItemStack;
11+
import org.spongepowered.asm.mixin.Mixin;
12+
import org.spongepowered.asm.mixin.injection.At;
13+
14+
@Mixin(value = BWUtil.class, remap = false)
15+
public class Disassembler_BWUtil_Mixin {
16+
17+
@WrapOperation(method = "createGTCraftingRecipe(Lnet/minecraft/item/ItemStack;[Lnet/minecraft/enchantment/Enchantment;[IZZZZZZZZZZZZZ[Ljava/lang/Object;)Lnet/minecraftforge/oredict/ShapedOreRecipe;", at = @At(value = "NEW", target = "(Lnet/minecraft/item/ItemStack;ZZ[Lnet/minecraft/enchantment/Enchantment;[I[Ljava/lang/Object;)Lgregtech/api/util/GTShapedRecipe;"))
18+
private static GTShapedRecipe nn$createGTCraftingRecipe(ItemStack aResult, boolean aRemovableByGT, boolean aKeepingNBT, Enchantment[] enchants, int[] enchantLevels, Object[] aRecipe, Operation<GTShapedRecipe> original, @Local(ordinal = 3, argsOnly = true) boolean canDisassemble) {
19+
GTShapedRecipe recipe = original.call(aResult, aRemovableByGT, aKeepingNBT, enchants, enchantLevels, aRecipe);
20+
if(canDisassemble) ReversedRecipeRegistry.registerShaped(aResult, aRecipe);
21+
return recipe;
22+
}
23+
24+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package cn.elytra.mod.gtnn.mixin.gt5u.gt_recipes;
2+
3+
import cn.elytra.mod.gtnn.modules.disassembler.ReversedRecipeRegistry;
4+
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
5+
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
6+
import com.llamalad7.mixinextras.sugar.Local;
7+
import gregtech.api.util.GTModHandler;
8+
import gregtech.api.util.GTShapedRecipe;
9+
import gregtech.api.util.GTShapelessRecipe;
10+
import net.minecraft.enchantment.Enchantment;
11+
import net.minecraft.item.ItemStack;
12+
import org.spongepowered.asm.mixin.Mixin;
13+
import org.spongepowered.asm.mixin.injection.At;
14+
15+
@Mixin(value = GTModHandler.class, remap = false)
16+
public class Disassembler_GTModHandler_Mixin {
17+
18+
@WrapOperation(method = "addCraftingRecipe(Lnet/minecraft/item/ItemStack;[Lnet/minecraft/enchantment/Enchantment;[IZZZZZZZZZZZZZ[Ljava/lang/Object;)Z", at = @At(value = "NEW", target = "(Lnet/minecraft/item/ItemStack;ZZ[Lnet/minecraft/enchantment/Enchantment;[I[Ljava/lang/Object;)Lgregtech/api/util/GTShapedRecipe;"))
19+
private static GTShapedRecipe nn$addCraftingRecipe(ItemStack aResult, boolean aRemovableByGT, boolean aKeepingNBT, Enchantment[] enchants, int[] enchantLevels, Object[] aRecipe, Operation<GTShapedRecipe> original, @Local(ordinal = 3, argsOnly = true) boolean canDisassemble) {
20+
GTShapedRecipe recipe = original.call(aResult, aRemovableByGT, aKeepingNBT, enchants, enchantLevels, aRecipe);
21+
if(canDisassemble) ReversedRecipeRegistry.registerShaped(aResult, aRecipe);
22+
return recipe;
23+
}
24+
25+
@WrapOperation(method = "addShapelessCraftingRecipe(Lnet/minecraft/item/ItemStack;[Lnet/minecraft/enchantment/Enchantment;[IZZZZZ[Ljava/lang/Object;)Z", at = @At(value = "NEW", target = "(Lnet/minecraft/item/ItemStack;ZZZ[Lnet/minecraft/enchantment/Enchantment;[I[Ljava/lang/Object;)Lgregtech/api/util/GTShapelessRecipe;"))
26+
private static GTShapelessRecipe nn$addShapelessCraftingRecipe(ItemStack aResult, boolean aRemovableByGT, boolean aKeepingNBT, boolean overwriteNBT, Enchantment[] enchants, int[] enchantLevels, Object[] aRecipe, Operation<GTShapelessRecipe> original, @Local(ordinal = 2, argsOnly = true) boolean canDisassemble) {
27+
GTShapelessRecipe recipe = original.call(aResult, aRemovableByGT, aKeepingNBT, overwriteNBT, enchants, enchantLevels, aRecipe);
28+
if(canDisassemble) ReversedRecipeRegistry.registerShapeless(aResult, aRecipe);
29+
return recipe;
30+
}
31+
32+
}

0 commit comments

Comments
 (0)