Skip to content

Commit ed33899

Browse files
committed
More prep work for MangoBotMixin support, this time further work to get MixinExtras working...
1 parent 2cfd3a5 commit ed33899

File tree

1 file changed

+34
-14
lines changed

1 file changed

+34
-14
lines changed

src/main/java/org/mangorage/bootstrap/internal/MangoBotLaunchTarget.java

Lines changed: 34 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,12 @@ public void launch(ModuleLayer parent, String[] args) throws Throwable {
6363
addExports(
6464
moduleLayerController,
6565
moduleLayer.findModule("org.spongepowered.mixin"),
66-
moduleLayer.findModule("org.mangorage.mangobotmixin"),
6766
List.of(
67+
moduleLayer.findModule("org.mangorage.mangobotmixin"),
68+
moduleLayer.findModule("mixinextras.common")
69+
),
70+
List.of(
71+
"org.spongepowered.asm.mixin.transformer.ext.extensions",
6872
"org.spongepowered.asm.mixin.transformer",
6973
"org.spongepowered.asm.transformers"
7074
)
@@ -73,8 +77,14 @@ public void launch(ModuleLayer parent, String[] args) throws Throwable {
7377
addOpens(
7478
moduleLayerController,
7579
moduleLayer.findModule("org.spongepowered.mixin"),
76-
moduleLayer.findModule("org.mangorage.mangobotmixin"),
7780
List.of(
81+
moduleLayer.findModule("org.mangorage.mangobotmixin"),
82+
moduleLayer.findModule("mixinextras.common")
83+
),
84+
List.of(
85+
"org.spongepowered.asm.mixin.transformer",
86+
"org.spongepowered.asm.mixin.transformer.ext",
87+
"org.spongepowered.asm.mixin.injection.struct",
7888
"org.spongepowered.asm.mixin"
7989
)
8090
);
@@ -86,19 +96,29 @@ public void launch(ModuleLayer parent, String[] args) throws Throwable {
8696
callMain("org.mangorage.entrypoint.MangoBotCore", args, moduleLayer.findModule("org.mangorage.mangobotcore").get());
8797
}
8898

89-
static void addExports(ModuleLayer.Controller controller, Optional<Module> source, Optional<Module> target, List<String> packages) {
90-
if (source.isPresent() && target.isPresent()) {
91-
packages.forEach(pkg -> {
92-
controller.addExports(source.get(), pkg, target.get());
93-
});
94-
}
99+
static void addExports(ModuleLayer.Controller controller, Optional<Module> source, List<Optional<Module>> targets, List<String> packages) {
100+
if (source.isEmpty() || targets.isEmpty()) return;
101+
targets.forEach(target -> {
102+
target.ifPresent(module -> packages.forEach(pkg -> {
103+
controller.addExports(
104+
source.get(),
105+
pkg,
106+
module
107+
);
108+
}));
109+
});
95110
}
96111

97-
static void addOpens(ModuleLayer.Controller controller, Optional<Module> source, Optional<Module> target, List<String> packages) {
98-
if (source.isPresent() && target.isPresent()) {
99-
packages.forEach(pkg -> {
100-
controller.addOpens(source.get(), pkg, target.get());
101-
});
102-
}
112+
static void addOpens(ModuleLayer.Controller controller, Optional<Module> source, List<Optional<Module>> targets, List<String> packages) {
113+
if (source.isEmpty() || targets.isEmpty()) return;
114+
targets.forEach(target -> {
115+
target.ifPresent(module -> packages.forEach(pkg -> {
116+
controller.addOpens(
117+
source.get(),
118+
pkg,
119+
module
120+
);
121+
}));
122+
});
103123
}
104124
}

0 commit comments

Comments
 (0)