Skip to content

Commit 9181a2c

Browse files
committed
Add MixinSquared
1 parent c0fbd3d commit 9181a2c

File tree

6 files changed

+59
-0
lines changed

6 files changed

+59
-0
lines changed

bootstrap/build.gradle.kts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ repositories {
3232
maven("https://jitpack.io") {
3333
content { includeGroupAndSubgroups("com.github") }
3434
}
35+
maven("https://maven.bawnorton.com/releases") {
36+
content { includeGroup("com.github.bawnorton.mixinsquared") }
37+
}
3538
}
3639

3740
dependencies {

buildSrc/src/main/kotlin/org/polyfrost/gradle/addDependencies.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,7 @@ fun Project.provideIncludedDependencies(version: Triple<Int, Int, Int>?, loader:
230230
deps.add(libs.findLibrary("asm").get().get())
231231
}
232232
deps.add(libs.findLibrary("mixin-extras").get().get())
233+
deps.add(libs.findLibrary("mixin-squared").get().get())
233234
val actualDeps = mutableListOf<OCDependency>()
234235
for (dep in deps) {
235236
actualDeps.add(OCDependency(dep))

gradle/libs.versions.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ lwjgl = "3.3.3" # All downloaded by the isolated-lwjgl3-loader
2828
# Legacy only
2929
mixin = "0.8.4+build.6"
3030
mixin-extras = "0.5.0"
31+
mixin-squared = "0.3.7-beta.1"
3132
asm = "5.2"
3233
brigadier = "1.0.18"
3334

@@ -51,6 +52,7 @@ junit-bom = { module = "org.junit:junit-bom", version.ref = "junit-bom" }
5152

5253
mixin = { module = "org.polyfrost:polymixin", version.ref = "mixin" }
5354
mixin-extras = { module = "io.github.llamalad7:mixinextras-common", version.ref = "mixin-extras" }
55+
mixin-squared = { module = "com.github.bawnorton.mixinsquared:mixinsquared-common", version.ref = "mixin-squared" }
5456
asm = { module = "org.ow2.asm:asm-debug-all", version.ref = "asm" }
5557

5658
brigadier = { module = "com.mojang:brigadier", version.ref = "brigadier" }

minecraft/build.gradle.kts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,9 @@ repositories {
9393
maven("https://maven.azureaaron.net/releases") {
9494
content { includeGroup("net.azureaaron") }
9595
}
96+
maven("https://maven.bawnorton.com/releases") {
97+
content { includeGroup("com.github.bawnorton.mixinsquared") }
98+
}
9699
}
97100

98101
if (mcData.isLegacyForge) { // Quick substitution for relaunch in dev env, so that mixinextras works properly (yay!)
@@ -297,6 +300,7 @@ dependencies {
297300
}
298301

299302
annotationProcessor(libs.mixin.extras)
303+
annotationProcessor(libs.mixin.squared)
300304

301305
for (dep in listOf("-nanovg").run {
302306
if (mcData.version < MinecraftVersions.VERSION_1_13) this else this + listOf(

minecraft/src/main/java/org/polyfrost/oneconfig/internal/OneConfigEarlyMixinInit.java

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,58 @@
11
package org.polyfrost.oneconfig.internal;
22

3+
import com.bawnorton.mixinsquared.MixinSquaredBootstrap;
4+
import com.bawnorton.mixinsquared.adjuster.MixinAnnotationAdjusterRegistrar;
5+
import com.bawnorton.mixinsquared.api.MixinAnnotationAdjuster;
6+
import com.bawnorton.mixinsquared.api.MixinCanceller;
7+
import com.bawnorton.mixinsquared.canceller.MixinCancellerRegistrar;
38
import com.llamalad7.mixinextras.MixinExtrasBootstrap;
49
import org.objectweb.asm.tree.ClassNode;
510
import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin;
611
import org.spongepowered.asm.mixin.extensibility.IMixinInfo;
712

813
import java.util.List;
14+
import java.util.ServiceLoader;
915
import java.util.Set;
1016

1117
public class OneConfigEarlyMixinInit implements IMixinConfigPlugin {
18+
//#if FORGE-LIKE
19+
private static final ServiceLoader<MixinCanceller> CANCELLERS = ServiceLoader.load(MixinCanceller.class);
20+
private static final ServiceLoader<MixinAnnotationAdjuster> ANNOTATION_ADJUSTERS = ServiceLoader.load(MixinAnnotationAdjuster.class);
21+
//#endif
22+
23+
24+
public static void load() {
25+
//#if FORGE-LIKE
26+
CANCELLERS.forEach(MixinCancellerRegistrar::register);
27+
ANNOTATION_ADJUSTERS.forEach(MixinAnnotationAdjusterRegistrar::register);
28+
//#else
29+
//$$ net.fabricmc.loader.api.FabricLoader.getInstance().getEntrypointContainers("mixinsquared", MixinCanceller.class).forEach(container -> {
30+
//$$ String id = container.getProvider().getMetadata().getId();
31+
//$$ try {
32+
//$$ MixinCanceller canceller = container.getEntrypoint();
33+
//$$ MixinCancellerRegistrar.register(canceller);
34+
//$$ } catch (Throwable e) {
35+
//$$ System.err.printf("Mod %s provides a broken MixinCanceller implementation:\n", id);
36+
//$$ e.printStackTrace(System.err);
37+
//$$ }
38+
//$$ });
39+
//$$ net.fabricmc.loader.api.FabricLoader.getInstance().getEntrypointContainers("mixinsquared-adjuster", MixinAnnotationAdjuster.class).forEach(container -> {
40+
//$$ String id = container.getProvider().getMetadata().getId();
41+
//$$ try {
42+
//$$ MixinAnnotationAdjuster annotationAdjuster = container.getEntrypoint();
43+
//$$ MixinAnnotationAdjusterRegistrar.register(annotationAdjuster);
44+
//$$ } catch (Throwable e) {
45+
//$$ System.err.printf("Mod %s provides a broken MixinAnnotationAdjuster implementation:\n", id);
46+
//$$ e.printStackTrace(System.err);
47+
//$$ }
48+
//$$ });
49+
//#endif
50+
}
51+
1252
@Override
1353
public void onLoad(String mixinPackage) {
54+
MixinSquaredBootstrap.init();
55+
load();
1456
MixinExtrasBootstrap.init();
1557
}
1658

@@ -31,6 +73,7 @@ public void acceptTargets(Set<String> myTargets, Set<String> otherTargets) {
3173

3274
@Override
3375
public List<String> getMixins() {
76+
MixinSquaredBootstrap.reOrderExtensions();
3477
return null;
3578
}
3679

modules/dependencies/legacy/build.gradle.kts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@ plugins {
44
id("gg.essential.loom")
55
}
66

7+
repositories {
8+
maven("https://maven.bawnorton.com/releases") {
9+
content { includeGroup("com.github.bawnorton.mixinsquared") }
10+
}
11+
}
12+
713
dependencies {
814
minecraft("com.mojang:minecraft:1.16.5")
915
mappings("net.fabricmc:yarn:1.16.5+build.10:v2")

0 commit comments

Comments
 (0)