Skip to content

Commit 8ef4fc8

Browse files
committed
code generators plugin now automatically declare the generated libraries as dependencies
1 parent 2d113c4 commit 8ef4fc8

File tree

7 files changed

+33
-30
lines changed

7 files changed

+33
-30
lines changed

api/build.gradle.kts

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,6 @@ repositories {
1717

1818
dependencies {
1919

20-
sequenceOf(
21-
"machine-materials",
22-
"machine-blockdata",
23-
).forEach {
24-
implementation(files("/libs/$it.jar"))
25-
}
26-
2720
implementation(libs.machine.nbt)
2821
implementation(libs.machine.scriptive)
2922
implementation(libs.jetbrains.annotations) // overrides default compileOnly

code-generators/src/main/java/org/machinemc/generators/Generators.java

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -32,21 +32,24 @@ private Generators() {
3232
*/
3333
public static void run(final File projectDir) {
3434
try {
35-
if (projectDir.isFile()) return;
36-
final File outputDir = new File(projectDir.getPath() + "/libs");
37-
if (!outputDir.exists() && !outputDir.mkdirs())
38-
throw new IOException("Folder for Machine libraries could not be created");
39-
40-
final CodeGenerator materials = new MaterialsLibGenerator(outputDir);
41-
if (!materials.isExists()) materials.generate();
42-
43-
final CodeGenerator blockdata = new BlockDataLibGenerator(outputDir);
44-
if (!blockdata.isExists()) blockdata.generate();
45-
35+
run0(projectDir);
4636
} catch (Throwable throwable) {
4737
System.out.println("Machine Library Generator unexpectedly ended.");
4838
throw new RuntimeException(throwable);
4939
}
5040
}
5141

42+
private static void run0(final File projectDir) throws Throwable {
43+
if (projectDir.isFile()) return;
44+
final File outputDir = new File(projectDir.getPath() + "/libs");
45+
if (!outputDir.exists() && !outputDir.mkdirs())
46+
throw new IOException("Folder for Machine libraries could not be created");
47+
48+
final CodeGenerator materials = new MaterialsLibGenerator(outputDir);
49+
if (!materials.isExists()) materials.generate();
50+
51+
final CodeGenerator blockdata = new BlockDataLibGenerator(outputDir);
52+
if (!blockdata.isExists()) blockdata.generate();
53+
}
54+
5255
}

code-generators/src/main/java/org/machinemc/generators/blockdata/BlockData.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -427,7 +427,7 @@ else if (property.getType() == Property.Type.NUMBER)
427427
// loadProperties method
428428
mv = cw.visitMethod(Opcodes.ACC_PROTECTED,
429429
"loadProperties",
430-
"(" + Type.getType(Object[].class).getDescriptor() + ")V",
430+
"([Ljava/lang/Object;)V",
431431
null,
432432
new String[0]);
433433
mv.visitAnnotation(Type.getType(Override.class).getDescriptor(), true).visitEnd();

code-generators/src/main/java/org/machinemc/generators/blockdata/BlockDataLibGenerator.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import org.objectweb.asm.ClassWriter;
2323
import org.objectweb.asm.MethodVisitor;
2424
import org.objectweb.asm.Opcodes;
25-
import org.objectweb.asm.Type;
2625

2726
import java.io.File;
2827
import java.io.IOException;
@@ -51,7 +50,7 @@ public void generate() throws IOException {
5150
CodeGenerator.visitGeneratedAnnotation(cw, BlockDataLibGenerator.class);
5251
final MethodVisitor mv = cw.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_ABSTRACT,
5352
"getName",
54-
"()" + Type.getType(String.class).getDescriptor(),
53+
"()Ljava/lang/String;",
5554
null,
5655
new String[0]);
5756
mv.visitEnd();

code-generators/src/main/java/org/machinemc/generators/blockdata/Property.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ public byte[] generate() {
147147
// getName method
148148
mv = cw.visitMethod(Opcodes.ACC_PUBLIC,
149149
"getName",
150-
"()" + org.objectweb.asm.Type.getType(String.class).getDescriptor(),
150+
"()Ljava/lang/String;",
151151
null,
152152
new String[0]);
153153
mv.visitAnnotation(org.objectweb.asm.Type.getType(Override.class).getDescriptor(), true).visitEnd();
Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,18 @@
11
import org.machinemc.generators.LibraryGeneratorPlugin
22

3-
apply<LibraryGeneratorPlugin>()
3+
plugins {
4+
`java-library`
5+
}
6+
7+
apply<LibraryGeneratorPlugin>()
8+
9+
dependencies {
10+
11+
sequenceOf(
12+
"machine-materials",
13+
"machine-blockdata",
14+
).forEach {
15+
implementation(files("libs/$it.jar"))
16+
}
17+
18+
}

server/build.gradle.kts

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,6 @@ dependencies {
2020

2121
implementation(project(":api"))
2222

23-
sequenceOf(
24-
"machine-materials",
25-
"machine-blockdata",
26-
).forEach {
27-
implementation(files("libs/$it.jar"))
28-
}
29-
3023
implementation(libs.google.guava)
3124
implementation(libs.google.gson)
3225
implementation(libs.netty.all)

0 commit comments

Comments
 (0)