aboutsummaryrefslogtreecommitdiff
path: root/plugin/src/main/java/moe/nea
diff options
context:
space:
mode:
Diffstat (limited to 'plugin/src/main/java/moe/nea')
-rw-r--r--plugin/src/main/java/moe/nea/zwirn/plugin/EnrichSeargeWithConstructorsTask.java43
-rw-r--r--plugin/src/main/java/moe/nea/zwirn/plugin/FixFieldDescriptorsTask.java3
-rw-r--r--plugin/src/main/java/moe/nea/zwirn/plugin/ZwirnPluginUtils.java12
3 files changed, 52 insertions, 6 deletions
diff --git a/plugin/src/main/java/moe/nea/zwirn/plugin/EnrichSeargeWithConstructorsTask.java b/plugin/src/main/java/moe/nea/zwirn/plugin/EnrichSeargeWithConstructorsTask.java
new file mode 100644
index 0000000..e194070
--- /dev/null
+++ b/plugin/src/main/java/moe/nea/zwirn/plugin/EnrichSeargeWithConstructorsTask.java
@@ -0,0 +1,43 @@
+package moe.nea.zwirn.plugin;
+
+import moe.nea.zwirn.Zwirn;
+import org.gradle.api.DefaultTask;
+import org.gradle.api.file.FileCollection;
+import org.gradle.api.file.RegularFileProperty;
+import org.gradle.api.tasks.InputFile;
+import org.gradle.api.tasks.InputFiles;
+import org.gradle.api.tasks.OutputFile;
+import org.gradle.api.tasks.TaskAction;
+
+import java.io.IOException;
+import java.nio.file.FileSystems;
+
+public abstract class EnrichSeargeWithConstructorsTask extends DefaultTask {
+ @InputFiles
+ FileCollection srgArchive;
+
+ public void setSrgArchive(FileCollection srgArchive) {
+ this.srgArchive = srgArchive;
+ }
+
+ public FileCollection getSrgArchive() {
+ return srgArchive;
+ }
+
+ @InputFile
+ public abstract RegularFileProperty getSrgTinyFile();
+
+ @OutputFile
+ public abstract RegularFileProperty getEnrichedTinyFile();
+
+ @TaskAction
+ public void enrich() throws IOException {
+ var srgFs = FileSystems.newFileSystem(ZwirnPluginUtils.getPath(getSrgArchive()));
+ var enriched = Zwirn.enrichSeargeWithConstructors(
+ ZwirnPluginUtils.readTiny(getSrgTinyFile()),
+ srgFs.getPath("/")
+ );
+ srgFs.close();
+ ZwirnPluginUtils.writeTiny(enriched, getEnrichedTinyFile());
+ }
+}
diff --git a/plugin/src/main/java/moe/nea/zwirn/plugin/FixFieldDescriptorsTask.java b/plugin/src/main/java/moe/nea/zwirn/plugin/FixFieldDescriptorsTask.java
index fa8576d..9b4d28c 100644
--- a/plugin/src/main/java/moe/nea/zwirn/plugin/FixFieldDescriptorsTask.java
+++ b/plugin/src/main/java/moe/nea/zwirn/plugin/FixFieldDescriptorsTask.java
@@ -6,6 +6,7 @@ import net.fabricmc.stitch.commands.tinyv2.TinyV2Writer;
import org.gradle.api.DefaultTask;
import org.gradle.api.file.RegularFileProperty;
import org.gradle.api.tasks.InputFile;
+import org.gradle.api.tasks.OutputFile;
import org.gradle.api.tasks.TaskAction;
import java.io.IOException;
@@ -19,7 +20,7 @@ public abstract class FixFieldDescriptorsTask extends DefaultTask {
@InputFile
public abstract RegularFileProperty getInputTinyFile();
- @InputFile
+ @OutputFile
public abstract RegularFileProperty getOutputTinyFile();
@TaskAction
diff --git a/plugin/src/main/java/moe/nea/zwirn/plugin/ZwirnPluginUtils.java b/plugin/src/main/java/moe/nea/zwirn/plugin/ZwirnPluginUtils.java
index fd1a5ee..08cb42b 100644
--- a/plugin/src/main/java/moe/nea/zwirn/plugin/ZwirnPluginUtils.java
+++ b/plugin/src/main/java/moe/nea/zwirn/plugin/ZwirnPluginUtils.java
@@ -7,8 +7,10 @@ import net.fabricmc.stitch.commands.tinyv2.TinyFile;
import net.fabricmc.stitch.commands.tinyv2.TinyV2Reader;
import net.fabricmc.stitch.commands.tinyv2.TinyV2Writer;
import org.gradle.api.file.FileCollection;
-import org.gradle.api.file.FileSystemLocationProperty;
+import org.gradle.api.file.FileSystemLocation;
+import org.gradle.api.file.RegularFile;
import org.gradle.api.file.RegularFileProperty;
+import org.gradle.api.provider.Property;
import java.io.IOException;
import java.io.InputStream;
@@ -28,7 +30,7 @@ class ZwirnPluginUtils {
}
}
- public static Path getPath(FileSystemLocationProperty<?> property) {
+ public static Path getPath(Property<? extends FileSystemLocation> property) {
return property.get().getAsFile().toPath();
}
@@ -53,7 +55,7 @@ class ZwirnPluginUtils {
return collection.getSingleFile().toPath();
}
- public static TinyFile readTiny(RegularFileProperty tinyFile) {
+ public static TinyFile readTiny(Property<RegularFile> tinyFile) {
try {
return TinyV2Reader.read(getPath(tinyFile));
} catch (IOException e) {
@@ -61,8 +63,8 @@ class ZwirnPluginUtils {
}
}
- public static void writeTiny(TinyFile tiny, RegularFileProperty tinyFile) {
- try{
+ public static void writeTiny(TinyFile tiny, Property<RegularFile> tinyFile) {
+ try {
TinyV2Writer.write(tiny, getPath(tinyFile));
} catch (IOException e) {
throw new RuntimeException(e);