From 1c9a01544c1b7290744a96827f2a29282e716591 Mon Sep 17 00:00:00 2001 From: Oliver Date: Sat, 15 Mar 2025 14:02:57 +0100 Subject: [PATCH] deployment: Add Modrinth deployment configuration and service integration --- tools/deployment/example-config.json | 27 +++++++++++++++++++ .../main/java/de/oliver/deployment/Main.java | 12 +++++++++ .../modrinth/CreateVersionRequest.java | 1 + .../deployment/modrinth/ModrinthService.java | 1 + 4 files changed, 41 insertions(+) create mode 100644 tools/deployment/example-config.json diff --git a/tools/deployment/example-config.json b/tools/deployment/example-config.json new file mode 100644 index 00000000..c5a9a02b --- /dev/null +++ b/tools/deployment/example-config.json @@ -0,0 +1,27 @@ +{ + "project_id": "fancyholograms", + "plugin_jar_path": "../../../plugins/fancyholograms/build/libs/FancyHolograms-*.jar", + "changelog_path": "../../../plugins/fancyholograms/CHANGELOG.md", + "version": "3.0.0", + "supported_versions":[ + "1.19.4", + "1.20", + "1.20.1", + "1.20.2", + "1.20.3", + "1.20.4", + "1.20.5", + "1.20.6", + "1.21", + "1.21.1", + "1.21.2", + "1.21.3", + "1.21.4" + ], + "channel": "release", + "loaders": [ + "paper", + "folia" + ], + "featured": true +} \ No newline at end of file diff --git a/tools/deployment/src/main/java/de/oliver/deployment/Main.java b/tools/deployment/src/main/java/de/oliver/deployment/Main.java index 20f8db86..57d2bce6 100644 --- a/tools/deployment/src/main/java/de/oliver/deployment/Main.java +++ b/tools/deployment/src/main/java/de/oliver/deployment/Main.java @@ -1,6 +1,9 @@ package de.oliver.deployment; import com.google.gson.Gson; +import de.oliver.deployment.modrinth.ModrinthService; + +import java.io.IOException; public class Main { @@ -9,6 +12,15 @@ public class Main { public static void main(String[] args) { String configFilePath = args[0]; Configuration configuration = GSON.fromJson(configFilePath, Configuration.class); + + String modrinthApiKey = System.getenv("MODRINTH_API_KEY"); + ModrinthService modrinthService = new ModrinthService(modrinthApiKey); + try { + modrinthService.deployPlugin(configuration); + } catch (IOException e) { + e.printStackTrace(); + } + } } diff --git a/tools/deployment/src/main/java/de/oliver/deployment/modrinth/CreateVersionRequest.java b/tools/deployment/src/main/java/de/oliver/deployment/modrinth/CreateVersionRequest.java index 66a2b021..8bb20d64 100644 --- a/tools/deployment/src/main/java/de/oliver/deployment/modrinth/CreateVersionRequest.java +++ b/tools/deployment/src/main/java/de/oliver/deployment/modrinth/CreateVersionRequest.java @@ -10,6 +10,7 @@ public record CreateVersionRequest( @SerializedName("version_type") String versionType, String[] loaders, boolean featured, + String status, @SerializedName("project_id") String projectId, @SerializedName("file_parts") String[] fileParts, @SerializedName("primary_file") String primaryFile diff --git a/tools/deployment/src/main/java/de/oliver/deployment/modrinth/ModrinthService.java b/tools/deployment/src/main/java/de/oliver/deployment/modrinth/ModrinthService.java index a97ca253..c731dbff 100644 --- a/tools/deployment/src/main/java/de/oliver/deployment/modrinth/ModrinthService.java +++ b/tools/deployment/src/main/java/de/oliver/deployment/modrinth/ModrinthService.java @@ -29,6 +29,7 @@ public class ModrinthService { config.channel(), config.loaders(), config.featured(), + "draft", config.projectID(), new String[]{"plugin"}, "plugin"