Skip to content

Commit 7829991

Browse files
authored
Convert to new IMixins and MixinsBuilder system (#146)
1 parent 68bc36e commit 7829991

File tree

7 files changed

+320
-260
lines changed

7 files changed

+320
-260
lines changed

dependencies.gradle

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ dependencies {
1010
transitive = false
1111
}
1212
compileOnly "curse.maven:chunkpregen-267193:3756388"
13-
compileOnly('com.github.GTNewHorizons:NotEnoughItems:2.6.1-GTNH:dev')
13+
compileOnly('com.github.GTNewHorizons:NotEnoughItems:2.7.64-GTNH:dev')
1414
compileOnly("com.gregoriust.gregtech:gregtech_1.7.10:6.15.01:dev") {
1515
transitive = false
1616
}
@@ -19,7 +19,7 @@ dependencies {
1919
compileOnly("curse.maven:thermalexpansion-69163:2388759")
2020
compileOnly("curse.maven:matteroverdrive-229694:2331162")
2121
compileOnly("curse.maven:projecte-226410:2340786")
22-
compileOnly('com.github.GTNewHorizons:Botania:1.11.3-GTNH:dev') {
22+
compileOnly('com.github.GTNewHorizons:Botania:1.12.16-GTNH:dev') {
2323
transitive = false
2424
}
2525
compileOnly("org.projectlombok:lombok:1.18.22") {
@@ -46,6 +46,6 @@ dependencies {
4646
compileOnly(deobfMaven(curseMaven, "curse.maven:applied-energistics-2-223794:2296430"))
4747

4848
// Provides deobf support like in FG2
49-
runtimeOnlyNonPublishable('com.github.GTNewHorizons:CodeChickenLib:1.2.1:dev')
50-
runtimeOnlyNonPublishable('com.github.GTNewHorizons:CodeChickenCore:1.2.1:dev')
49+
runtimeOnlyNonPublishable('com.github.GTNewHorizons:CodeChickenLib:1.3.0:dev')
50+
runtimeOnlyNonPublishable('com.github.GTNewHorizons:CodeChickenCore:1.4.3:dev')
5151
}

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ modrinthProjectId = xTJanN3v
151151
# type can be one of [project, version],
152152
# and the name is the Modrinth project or version slug/id of the other mod.
153153
# Example: required-project:fplib;optional-project:gasstation;incompatible-project:gregtech
154-
# Note: GTNH Mixins is automatically set as a required dependency if usesMixins = true
154+
# Note: UniMixins is automatically set as a required dependency if usesMixins = true.
155155
modrinthRelations =
156156

157157
# Publishing to CurseForge requires you to set the CURSEFORGE_TOKEN environment variable to one of your CurseForge API tokens.

settings.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ pluginManagement {
3333
}
3434

3535
plugins {
36-
id 'com.gtnewhorizons.gtnhsettingsconvention' version '1.0.38'
36+
id 'com.gtnewhorizons.gtnhsettingsconvention' version '1.0.41'
3737
}
3838

3939

Lines changed: 11 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,41 @@
11
package org.embeddedt.archaicfix;
22

3-
import com.google.common.collect.ImmutableMap;
43
import com.gtnewhorizon.gtnhmixins.IEarlyMixinLoader;
4+
import com.gtnewhorizon.gtnhmixins.builders.IMixins;
55
import cpw.mods.fml.relauncher.IFMLLoadingPlugin;
66
import org.apache.logging.log4j.LogManager;
77
import org.apache.logging.log4j.Logger;
88
import org.embeddedt.archaicfix.asm.Mixin;
9-
import org.embeddedt.archaicfix.asm.TargetedMod;
109
import org.embeddedt.archaicfix.asm.transformer.VampirismTransformer;
1110
import org.embeddedt.archaicfix.config.ArchaicConfig;
1211
import org.embeddedt.archaicfix.config.ConfigException;
1312
import org.embeddedt.archaicfix.config.ConfigurationManager;
1413
import org.embeddedt.archaicfix.helpers.LetsEncryptHelper;
1514

16-
import java.util.*;
17-
import java.util.stream.Collectors;
15+
import java.util.List;
16+
import java.util.Map;
17+
import java.util.Set;
1818

1919
@IFMLLoadingPlugin.Name("ArchaicCore")
2020
@IFMLLoadingPlugin.MCVersion("1.7.10")
2121
public class ArchaicCore implements IFMLLoadingPlugin, IEarlyMixinLoader {
22+
2223
public static final Logger LOGGER = LogManager.getLogger("ArchaicCore");
24+
2325
static {
2426
VampirismTransformer.init();
2527
try {
2628
ConfigurationManager.registerConfig(ArchaicConfig.class);
27-
} catch(ConfigException e) {
29+
} catch (ConfigException e) {
2830
throw new RuntimeException(e);
2931
}
3032
LetsEncryptHelper.replaceSSLContext();
3133
}
34+
3235
@Override
3336
public String[] getASMTransformerClass() {
34-
return new String[] {
35-
"org.embeddedt.archaicfix.asm.ArchaicTransformer"
37+
return new String[]{
38+
"org.embeddedt.archaicfix.asm.ArchaicTransformer"
3639
};
3740
}
3841

@@ -61,38 +64,8 @@ public String getMixinConfig() {
6164
return "mixins.archaicfix.early.json";
6265
}
6366

64-
public static Set<TargetedMod> coreMods = new HashSet<>();
65-
66-
private static final ImmutableMap<String, TargetedMod> MODS_BY_CLASS = ImmutableMap.<String, TargetedMod>builder()
67-
.put("optifine.OptiFineForgeTweaker", TargetedMod.OPTIFINE)
68-
.put("fastcraft.Tweaker", TargetedMod.FASTCRAFT)
69-
.put("cofh.asm.LoadingPlugin", TargetedMod.COFHCORE)
70-
.put("com.mitchej123.hodgepodge.core.HodgepodgeCore", TargetedMod.HODGEPODGE)
71-
.build();
72-
73-
private static void detectCoreMods(Set<String> loadedCoreMods) {
74-
MODS_BY_CLASS.forEach((key, value) -> {
75-
if (loadedCoreMods.contains(key))
76-
coreMods.add(value);
77-
});
78-
}
79-
8067
@Override
8168
public List<String> getMixins(Set<String> loadedCoreMods) {
82-
List<String> mixins = new ArrayList<>();
83-
detectCoreMods(loadedCoreMods);
84-
LOGGER.info("Detected coremods: [{}]", coreMods.stream().map(TargetedMod::name).collect(Collectors.joining(", ")));
85-
final List<String> notLoading = new ArrayList<>();
86-
87-
for (Mixin mixin : Mixin.values()) {
88-
if (mixin.getPhase() == Mixin.Phase.EARLY && mixin.shouldLoadSide() && mixin.getFilter().test(coreMods)) {
89-
mixins.add(mixin.getMixin());
90-
} else {
91-
notLoading.add(mixin.getMixin());
92-
}
93-
}
94-
95-
LOGGER.info("Not loading the following early mixins: [{}]", String.join(", ", notLoading));
96-
return mixins;
69+
return IMixins.getEarlyMixins(Mixin.class, loadedCoreMods);
9770
}
9871
}

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

Lines changed: 5 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,40 +2,21 @@
22

33
import com.gtnewhorizon.gtnhmixins.ILateMixinLoader;
44
import com.gtnewhorizon.gtnhmixins.LateMixin;
5-
import org.apache.logging.log4j.LogManager;
6-
import org.apache.logging.log4j.Logger;
7-
import org.embeddedt.archaicfix.ArchaicCore;
5+
import com.gtnewhorizon.gtnhmixins.builders.IMixins;
86

9-
import java.util.*;
10-
import java.util.stream.Collectors;
7+
import java.util.List;
8+
import java.util.Set;
119

1210
@LateMixin
1311
public class LateMixinPlugin implements ILateMixinLoader {
14-
private static final Logger LOGGER = LogManager.getLogger();
12+
1513
@Override
1614
public String getMixinConfig() {
1715
return "mixins.archaicfix.late.json";
1816
}
1917

2018
@Override
2119
public List<String> getMixins(Set<String> loadedMods) {
22-
List<String> mixins = new ArrayList<>();
23-
Set<TargetedMod> validMods = new HashSet<>(ArchaicCore.coreMods);
24-
HashMap<String, TargetedMod> modById = new HashMap<>();
25-
for(TargetedMod t : TargetedMod.values()) {
26-
if(t.getModId() != null)
27-
modById.put(t.getModId(), t);
28-
}
29-
for(String modId : loadedMods) {
30-
TargetedMod t = modById.get(modId);
31-
if(t != null)
32-
validMods.add(t);
33-
}
34-
LOGGER.info("Detected mods: [" + validMods.stream().map(TargetedMod::name).collect(Collectors.joining(", ")) + "]");
35-
for(Mixin mixin : Mixin.values()) {
36-
if(mixin.getPhase() == Mixin.Phase.LATE && mixin.shouldLoadSide() && mixin.getFilter().test(validMods))
37-
mixins.add(mixin.getMixin());
38-
}
39-
return mixins;
20+
return IMixins.getLateMixins(Mixin.class, loadedMods);
4021
}
4122
}

0 commit comments

Comments
 (0)