Skip to content

Commit d632484

Browse files
committed
Sync code with newest developments
1 parent 5276a8b commit d632484

File tree

17 files changed

+277
-464
lines changed

17 files changed

+277
-464
lines changed

.github/workflows/build.yml

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,27 @@ name: Gradle Build
22

33
on:
44
push:
5-
branches: [ master ]
5+
branches: [master]
66
pull_request:
7-
branches: [ master ]
7+
branches: [master]
88

99
jobs:
1010
build:
1111
runs-on: ubuntu-latest
1212

1313
steps:
14-
- uses: actions/checkout@v2
14+
- uses: actions/checkout@v4
1515
- name: Set up JDK
16-
uses: actions/setup-java@v1
16+
uses: actions/setup-java@v4
1717
with:
18-
java-version: '8.0.312'
18+
distribution: "temurin"
19+
java-version: "8.0.312"
1920
architecture: x64
2021
- name: Build with Gradle
2122
run: |
2223
chmod +x ./gradlew
2324
./gradlew build -iS
24-
- uses: actions/upload-artifact@v2
25+
- uses: actions/upload-artifact@v4
2526
with:
2627
name: Package
2728
path: build/libs

.github/workflows/publication.yml

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,19 @@ name: Publication
33
on:
44
push:
55
tags:
6-
- '*'
6+
- "*"
77

88
jobs:
99
build:
1010
runs-on: ubuntu-latest
1111

1212
steps:
13-
- uses: actions/checkout@v2
13+
- uses: actions/checkout@v4
1414
- name: Set up JDK
15-
uses: actions/setup-java@v1
15+
uses: actions/setup-java@v4
1616
with:
17-
java-version: '8.0.312'
17+
distribution: "temurin"
18+
java-version: "8.0.312"
1819
architecture: x64
1920
- name: Build with Gradle
2021
env:
@@ -24,14 +25,14 @@ jobs:
2425
rm -rf ./build/maven/.git/*
2526
chmod +x ./gradlew
2627
./gradlew publish -iS
27-
- uses: actions/upload-artifact@v2
28+
- uses: actions/upload-artifact@v4
2829
with:
2930
name: Package
3031
path: build/libs
3132
- name: Get tag version
3233
id: get_version
3334
uses: olegtarasov/[email protected]
34-
- uses: actions/upload-artifact@v2
35+
- uses: actions/upload-artifact@v4
3536
with:
3637
name: Package
3738
path: build/libs
@@ -43,7 +44,7 @@ jobs:
4344
with:
4445
tag_name: ${{ steps.get_version.outputs.tag }}
4546
release_name: ${{ steps.get_version.outputs.tag }}
46-
body: ''
47+
body: ""
4748
draft: false
4849
prerelease: false
4950
- name: Upload release binaries

build.gradle

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import java.text.SimpleDateFormat
12

23
plugins {
34
id "java"
@@ -15,9 +16,6 @@ group = "io.github.zekerzhayard"
1516
archivesBaseName = rootProject.name
1617

1718
configurations {
18-
provided {
19-
implementation.extendsFrom provided
20-
}
2119
multirelase {
2220
implementation.extendsFrom multirelase
2321
}
@@ -37,8 +35,6 @@ dependencies {
3735
compileOnly "net.minecraftforge:installer:2.2.7"
3836
compileOnly "net.sf.jopt-simple:jopt-simple:5.0.4"
3937

40-
provided project(":common")
41-
provided project(":legacy")
4238
multirelase project(":jigsaw")
4339
}
4440

@@ -60,10 +56,6 @@ jar {
6056
"GitCommit": String.valueOf(System.getenv("GITHUB_SHA"))
6157
])
6258

63-
from configurations.provided.files.collect {
64-
zipTree(it)
65-
}
66-
6759
into "META-INF/versions/9", {
6860
from configurations.multirelase.files.collect {
6961
zipTree(it)
@@ -91,5 +83,8 @@ publishing {
9183
tasks.publish.dependsOn build
9284

9385
static String getVersionSuffix() {
94-
return ""
86+
if (System.getenv("IS_PUBLICATION") != null || System.getenv("GITHUB_ACTIONS") == "true")
87+
return new SimpleDateFormat("-yyyy-MM-dd").format(new Date())
88+
89+
return "-LOCAL"
9590
}

common/build.gradle

Lines changed: 0 additions & 11 deletions
This file was deleted.

common/src/main/java/io/github/zekerzhayard/forgewrapper/util/CheckedLambdaUtil.java

Lines changed: 0 additions & 40 deletions
This file was deleted.

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11

22
org.gradle.daemon = false
33

4-
fw_version = mmc5
4+
fw_version = multimc

jigsaw/build.gradle

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,3 @@ configurations {
2626
}
2727
}
2828
}
29-
30-
dependencies {
31-
compileOnly project(":common")
32-
}

jigsaw/src/main/java/io/github/zekerzhayard/forgewrapper/installer/util/ModuleUtil.java

Lines changed: 46 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,16 @@
1212
import java.net.URL;
1313
import java.nio.file.Path;
1414
import java.nio.file.Paths;
15+
import java.util.ArrayList;
1516
import java.util.HashMap;
1617
import java.util.HashSet;
1718
import java.util.List;
1819
import java.util.Map;
1920
import java.util.Optional;
2021
import java.util.Set;
2122
import java.util.function.Function;
22-
import java.util.stream.Collectors;
2323
import java.util.stream.Stream;
2424

25-
import io.github.zekerzhayard.forgewrapper.util.CheckedLambdaUtil;
2625
import sun.misc.Unsafe;
2726

2827
public class ModuleUtil {
@@ -53,17 +52,27 @@ public static void addModules(String modulePath) throws Throwable {
5352
MethodHandle loadModuleMH = IMPL_LOOKUP.findVirtual(Class.forName("jdk.internal.loader.BuiltinClassLoader"), "loadModule", MethodType.methodType(void.class, ModuleReference.class));
5453

5554
// Resolve modules to a new config and load all extra modules in system class loader (unnamed modules for now)
56-
Configuration config = Configuration.resolveAndBind(finder, List.of(ModuleLayer.boot().configuration()), finder, finder.findAll().stream().filter(mref -> !ModuleLayer.boot().findModule(mref.descriptor().name()).isPresent()).peek(CheckedLambdaUtil.wrapConsumer(mref -> loadModuleMH.invokeWithArguments(ClassLoader.getSystemClassLoader(), mref))).map(mref -> mref.descriptor().name()).collect(Collectors.toList()));
55+
List<String> roots = new ArrayList<>();
56+
for (ModuleReference mref : finder.findAll()) {
57+
String name = mref.descriptor().name();
58+
if (!ModuleLayer.boot().findModule(name).isPresent()) {
59+
loadModuleMH.invokeWithArguments(ClassLoader.getSystemClassLoader(), mref);
60+
roots.add(name);
61+
}
62+
}
63+
Configuration config = Configuration.resolveAndBind(finder, List.of(ModuleLayer.boot().configuration()), finder, roots);
5764

5865
// Copy the new config graph to boot module layer config
5966
MethodHandle graphGetter = IMPL_LOOKUP.findGetter(Configuration.class, "graph", Map.class);
6067
HashMap<ResolvedModule, Set<ResolvedModule>> graphMap = new HashMap<>((Map<ResolvedModule, Set<ResolvedModule>>) graphGetter.invokeWithArguments(config));
6168
MethodHandle cfSetter = IMPL_LOOKUP.findSetter(ResolvedModule.class, "cf", Configuration.class);
6269
// Reset all extra resolved modules config to boot module layer config
63-
graphMap.forEach(CheckedLambdaUtil.wrapBiConsumer((k, v) -> {
64-
cfSetter.invokeWithArguments(k, ModuleLayer.boot().configuration());
65-
v.forEach(CheckedLambdaUtil.wrapConsumer(m -> cfSetter.invokeWithArguments(m, ModuleLayer.boot().configuration())));
66-
}));
70+
for (Map.Entry<ResolvedModule, Set<ResolvedModule>> entry : graphMap.entrySet()) {
71+
cfSetter.invokeWithArguments(entry.getKey(), ModuleLayer.boot().configuration());
72+
for (ResolvedModule resolvedModule : entry.getValue()) {
73+
cfSetter.invokeWithArguments(resolvedModule, ModuleLayer.boot().configuration());
74+
}
75+
}
6776
graphMap.putAll((Map<ResolvedModule, Set<ResolvedModule>>) graphGetter.invokeWithArguments(ModuleLayer.boot().configuration()));
6877
IMPL_LOOKUP.findSetter(Configuration.class, "graph", Map.class).invokeWithArguments(ModuleLayer.boot().configuration(), new HashMap<>(graphMap));
6978

@@ -92,7 +101,17 @@ public static void addModules(String modulePath) throws Throwable {
92101

93102
// Add reads from extra modules to jdk modules
94103
MethodHandle implAddReadsMH = IMPL_LOOKUP.findVirtual(Module.class, "implAddReads", MethodType.methodType(void.class, Module.class));
95-
config.modules().forEach(rm -> ModuleLayer.boot().findModule(rm.name()).ifPresent(m -> oldBootModules.forEach(brm -> ModuleLayer.boot().findModule(brm.name()).ifPresent(CheckedLambdaUtil.wrapConsumer(bm -> implAddReadsMH.invokeWithArguments(m, bm))))));
104+
for (ResolvedModule resolvedModule : config.modules()) {
105+
Module module = ModuleLayer.boot().findModule(resolvedModule.name()).orElse(null);
106+
if (module != null) {
107+
for (ResolvedModule bootResolvedModule : oldBootModules) {
108+
Module bootModule = ModuleLayer.boot().findModule(bootResolvedModule.name()).orElse(null);
109+
if (bootModule != null) {
110+
implAddReadsMH.invokeWithArguments(module, bootModule);
111+
}
112+
}
113+
}
114+
}
96115
}
97116

98117
public static void addExports(List<String> exports) {
@@ -124,13 +143,26 @@ private enum TypeToAdd {
124143
}
125144

126145
void implAdd(List<String> extras) {
127-
extras.stream().map(ModuleUtil::parseModuleExtra).filter(Optional::isPresent).map(Optional::get).forEach(CheckedLambdaUtil.wrapConsumer(data -> ModuleLayer.boot().findModule(data.module).ifPresent(CheckedLambdaUtil.wrapConsumer(m -> {
128-
if ("ALL-UNNAMED".equals(data.target)) {
129-
this.implAddToAllUnnamedMH.invokeWithArguments(m, data.packages);
130-
} else {
131-
ModuleLayer.boot().findModule(data.target).ifPresent(CheckedLambdaUtil.wrapConsumer(tm -> this.implAddMH.invokeWithArguments(m, data.packages, tm)));
146+
for (String extra : extras) {
147+
ParserData data = ModuleUtil.parseModuleExtra(extra).orElse(null);
148+
if (data != null) {
149+
Module module = ModuleLayer.boot().findModule(data.module).orElse(null);
150+
if (module != null) {
151+
try {
152+
if ("ALL-UNNAMED".equals(data.target)) {
153+
this.implAddToAllUnnamedMH.invokeWithArguments(module, data.packages);
154+
} else {
155+
Module targetModule = ModuleLayer.boot().findModule(data.target).orElse(null);
156+
if (targetModule != null) {
157+
this.implAddMH.invokeWithArguments(module, data.packages, targetModule);
158+
}
159+
}
160+
} catch (Throwable t) {
161+
throw new RuntimeException(t);
162+
}
163+
}
132164
}
133-
}))));
165+
}
134166
}
135167
}
136168

legacy/build.gradle

Lines changed: 0 additions & 22 deletions
This file was deleted.

legacy/src/main/java/io/github/zekerzhayard/forgewrapper/installer/util/AbstractInstaller.java

Lines changed: 0 additions & 12 deletions
This file was deleted.

0 commit comments

Comments
 (0)