From a37d9f8f7a1d1676c3d7d0b89e43658ca7c2f14d Mon Sep 17 00:00:00 2001 From: Strokkur24 Date: Fri, 9 Jan 2026 01:35:38 +0100 Subject: [PATCH 01/20] feat: (WIP) improve Paper/Spigot plugin templates --- .gitattributes.ft | 11 +++++ bukkit/MainClass.java.ft | 1 - bukkit/build.gradle.ft | 71 ----------------------------- bukkit/build.gradle.kts.ft | 76 ++++++++++++++++--------------- bukkit/gradle.properties.ft | 6 +++ bukkit/kotlin.build.gradle.kts.ft | 60 ++++++++++++++++++++++++ bukkit/paper-plugin.yml.ft | 2 +- bukkit/paper.mcdev.template.json | 58 ++++++++++++++++------- bukkit/plugin.yml.ft | 2 +- bukkit/settings.gradle.ft | 1 - 10 files changed, 160 insertions(+), 128 deletions(-) create mode 100644 .gitattributes.ft delete mode 100644 bukkit/build.gradle.ft create mode 100644 bukkit/kotlin.build.gradle.kts.ft delete mode 100644 bukkit/settings.gradle.ft diff --git a/.gitattributes.ft b/.gitattributes.ft new file mode 100644 index 0000000..a87d264 --- /dev/null +++ b/.gitattributes.ft @@ -0,0 +1,11 @@ +# +# https://help.github.com/articles/dealing-with-line-endings/ +# +# Linux start script should use lf +/gradlew text eol=lf + +# These are Windows script files and should use crlf +*.bat text eol=crlf + +# Binary files should be left untouched +*.jar binary diff --git a/bukkit/MainClass.java.ft b/bukkit/MainClass.java.ft index 6df4793..20c4312 100644 --- a/bukkit/MainClass.java.ft +++ b/bukkit/MainClass.java.ft @@ -7,7 +7,6 @@ public final class ${MAIN_CLASS.className} extends JavaPlugin { @Override public void onEnable() { // Plugin startup logic - } @Override diff --git a/bukkit/build.gradle.ft b/bukkit/build.gradle.ft deleted file mode 100644 index 712895f..0000000 --- a/bukkit/build.gradle.ft +++ /dev/null @@ -1,71 +0,0 @@ -plugins { - id 'java' - id("xyz.jpenilla.run-paper") version "2.3.1" -} - -group = '${BUILD_COORDS.groupId}' -version = '${BUILD_COORDS.version}' - -repositories { - mavenCentral() -#if ($IS_SPIGOT) - maven { - name = "spigotmc-repo" - url = "https://hub.spigotmc.org/nexus/content/repositories/snapshots/" - } -#elseif ($IS_PAPER) - maven { - name = "papermc-repo" - url = "https://repo.papermc.io/repository/maven-public/" - } -#end -} - -dependencies { -#if ($IS_SPIGOT) - compileOnly("org.spigotmc:spigot-api:${MC_VERSION}-R0.1-SNAPSHOT") -#elseif ($IS_PAPER) - compileOnly("io.papermc.paper:paper-api:${MC_VERSION}-R0.1-SNAPSHOT") -#end -} - -tasks { - runServer { - // Configure the Minecraft version for our task. - // This is the only required configuration besides applying the plugin. - // Your plugin's jar (or shadowJar if present) will be used automatically. - minecraftVersion("${API_VERSION}") - } -} - -def targetJavaVersion = ${JAVA_VERSION} -java { - def javaVersion = JavaVersion.toVersion(targetJavaVersion) - sourceCompatibility = javaVersion - targetCompatibility = javaVersion - if (JavaVersion.current() < javaVersion) { - toolchain.languageVersion = JavaLanguageVersion.of(targetJavaVersion) - } -} - -tasks.withType(JavaCompile).configureEach { - options.encoding = 'UTF-8' - - if (targetJavaVersion >= 10 || JavaVersion.current().isJava10Compatible()) { - options.release.set(targetJavaVersion) - } -} - -#if ($USE_PAPER_MANIFEST) - #set($MANIFEST_NAME = 'paper-plugin.yml') -#else - #set($MANIFEST_NAME = 'plugin.yml') -#end -processResources { - def props = [version: version] - inputs.properties props - filteringCharset 'UTF-8' - filesMatching('${MANIFEST_NAME}') { - expand props - } -} diff --git a/bukkit/build.gradle.kts.ft b/bukkit/build.gradle.kts.ft index 039e76a..9db5319 100644 --- a/bukkit/build.gradle.kts.ft +++ b/bukkit/build.gradle.kts.ft @@ -1,22 +1,19 @@ plugins { - kotlin("jvm") version "${KOTLIN_VERSION}" - id("com.gradleup.shadow") version "8.3.0" - id("xyz.jpenilla.run-paper") version "2.3.1" + id("java-library") +#if ($INCLUDE_SHADOW_PLUGIN) + id("com.gradleup.shadow") version "9.0.1" +#end +#if (#INCLUDE_RUN_PAPER_PLUGIN) + id("xyz.jpenilla.run-paper") version "3.0.2" +#end } -group = "${BUILD_COORDS.groupId}" -version = "${BUILD_COORDS.version}" - repositories { mavenCentral() #if ($IS_SPIGOT) - maven("https://hub.spigotmc.org/nexus/content/repositories/snapshots/") { - name = "spigotmc-repo" - } + maven("https://hub.spigotmc.org/nexus/content/repositories/snapshots/") #elseif ($IS_PAPER) - maven("https://repo.papermc.io/repository/maven-public/") { - name = "papermc-repo" - } + maven("https://repo.papermc.io/repository/maven-public/") #end } @@ -26,37 +23,44 @@ dependencies { #elseif ($IS_PAPER) compileOnly("io.papermc.paper:paper-api:${MC_VERSION}-R0.1-SNAPSHOT") #end - implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") } -tasks { - runServer { - // Configure the Minecraft version for our task. - // This is the only required configuration besides applying the plugin. - // Your plugin's jar (or shadowJar if present) will be used automatically. - minecraftVersion("${API_VERSION}") - } +java { + toolchain.languageVersion = JavaLanguageVersion.of(${JAVA_VERSION}) } -val targetJavaVersion = ${JAVA_VERSION} -kotlin { - jvmToolchain(targetJavaVersion) -} +tasks { +#if ($INCLUDE_SHADOW_PLUGIN) + build { + dependsOn(shadowJar) + } -tasks.build { - dependsOn("shadowJar") -} +#end +#if (#INCLUDE_RUN_PAPER_PLUGIN && $ACCEPT_EULA) + runServer { + // Configure the Minecraft version for our task. + // This is the only required configuration besides applying the plugin. + // Your plugin's jar (or shadowJar if present) will be used automatically. + minecraftVersion("${API_VERSION}") + jvmArgs("-Xms2G", "-Xmx2G", "-Dcom.mojang.eula.agree-true") +#end +#if (#INCLUDE_RUN_PAPER_PLUGIN && !$ACCEPT_EULA) + runServer { + // Configure the Minecraft version for our task. + // This is the only required configuration besides applying the plugin. + // Your plugin's jar (or shadowJar if present) will be used automatically. + minecraftVersion("${API_VERSION}") + jvmArgs("-Xms2G", "-Xmx2G") +#end + processResources { + val props = mapOf("version" to version) #if ($USE_PAPER_MANIFEST) - #set($MANIFEST_NAME = "paper-plugin.yml") + filesMatching("paper-plugin.yml") { #else - #set($MANIFEST_NAME = "plugin.yml") -#end -tasks.processResources { - val props = mapOf("version" to version) - inputs.properties(props) - filteringCharset = "UTF-8" - filesMatching("${MANIFEST_NAME}") { - expand(props) + filesMatching("plugin.yml") { +#end + expand(props) + } } } diff --git a/bukkit/gradle.properties.ft b/bukkit/gradle.properties.ft index e69de29..b6da00d 100644 --- a/bukkit/gradle.properties.ft +++ b/bukkit/gradle.properties.ft @@ -0,0 +1,6 @@ +group=${BUILD_COORDS.groupId} +version=${BUILD_COORDS.version} + +org.gradle.configuration-cache=true +org.gradle.parallel=true +org.gradle.caching=true diff --git a/bukkit/kotlin.build.gradle.kts.ft b/bukkit/kotlin.build.gradle.kts.ft new file mode 100644 index 0000000..68d8ac5 --- /dev/null +++ b/bukkit/kotlin.build.gradle.kts.ft @@ -0,0 +1,60 @@ +plugins { + kotlin("jvm") version "${KOTLIN_VERSION}" + id("com.gradleup.shadow") version "9.0.1" +#if (#INCLUDE_RUN_PAPER_PLUGIN) + id("xyz.jpenilla.run-paper") version "3.0.2" +#end +} + +repositories { + mavenCentral() +#if ($IS_SPIGOT) + maven("https://hub.spigotmc.org/nexus/content/repositories/snapshots/") +#elseif ($IS_PAPER) + maven("https://repo.papermc.io/repository/maven-public/") +#end +} + +dependencies { +#if ($IS_SPIGOT) + compileOnly("org.spigotmc:spigot-api:${MC_VERSION}-R0.1-SNAPSHOT") +#elseif ($IS_PAPER) + compileOnly("io.papermc.paper:paper-api:${MC_VERSION}-R0.1-SNAPSHOT") +#end + implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") +} + +kotlin { + jvmToolchain(${KOTLIN_VERSION}) +} + +tasks { + build { + dependsOn(shadowJar) + } + +#if (#INCLUDE_RUN_PAPER_PLUGIN) + runServer { + // Configure the Minecraft version for our task. + // This is the only required configuration besides applying the plugin. + // Your plugin's jar (or shadowJar if present) will be used automatically. + minecraftVersion("${API_VERSION}") +#if ($ACCEPT_EULA) + jvmArgs("-Xms2G", "-Xmx2G", "-Dcom.mojang.eula.agree-true") +#else + jvmArgs("-Xms2G", "-Xmx2G") + } + +#end +#end + processResources { + val props = mapOf("version" to version) +#if ($USE_PAPER_MANIFEST) + filesMatching("paper-plugin.yml") { +#else + filesMatching("plugin.yml") { +#end + expand(props) + } + } +} diff --git a/bukkit/paper-plugin.yml.ft b/bukkit/paper-plugin.yml.ft index bd31545..efd26bb 100644 --- a/bukkit/paper-plugin.yml.ft +++ b/bukkit/paper-plugin.yml.ft @@ -1,5 +1,5 @@ name: ${PLUGIN_NAME} -version: '${BUILD_COORDS.version}' +version: '$version' main: ${MAIN_CLASS} #if (${API_VERSION}) api-version: '${API_VERSION}' diff --git a/bukkit/paper.mcdev.template.json b/bukkit/paper.mcdev.template.json index 5d9fbb4..a92b0bb 100644 --- a/bukkit/paper.mcdev.template.json +++ b/bukkit/paper.mcdev.template.json @@ -64,7 +64,19 @@ "name": "API_VERSION", "type": "semantic_version", "options": [ + "1.21.11", + "1.21.10", + "1.21.9", + "1.21.8", + "1.21.7", + "1.21.6", + "1.21.5", + "1.21.4", + "1.21.3", + "1.21.1", "1.21", + "1.20.6", + "1.20.5", "1.20", "1.19", "1.18", @@ -94,6 +106,23 @@ "type": "boolean", "default": false }, + { + "name": "INCLUDE_SHADOW_PLUGIN", + "type": "boolean", + "default": false, + "condition": "$LANGUAGE=='Java'" + }, + { + "name": "INCLUDE_RUN_PAPER_PLUGIN", + "type": "boolean", + "default": true + }, + { + "name": "ACCEPT_EULA", + "type": "boolean", + "default": false, + "condition": "$INCLUDE_RUN_PAPER_PLUGIN" + }, { "label": "creator.ui.optional_settings.label", "collapsible": true, @@ -166,35 +195,30 @@ "condition": "$USE_GIT" }, { - "template": "build.gradle.ft", - "destination": "build.gradle", - "condition": "$BUILD_SYSTEM=='Gradle' && $LANGUAGE=='Java'" + "template": "../.gitattributes.ft", + "destination": ".gitattributes", + "condition": "$USE_GIT" }, { - "template": "settings.gradle.ft", - "destination": "settings.gradle", + "template": "build.gradle.kts.ft", + "destination": "build.gradle.kts", "condition": "$BUILD_SYSTEM=='Gradle' && $LANGUAGE=='Java'" }, { - "template": "build.gradle.kts.ft", + "template": "kotlin.build.gradle.kts.ft", "destination": "build.gradle.kts", "condition": "$BUILD_SYSTEM=='Gradle' && $LANGUAGE=='Kotlin'" }, { "template": "settings.gradle.kts.ft", "destination": "settings.gradle.kts", - "condition": "$BUILD_SYSTEM=='Gradle' && $LANGUAGE=='Kotlin'" + "condition": "$BUILD_SYSTEM=='Gradle'" }, { "template": "gradle.properties.ft", "destination": "gradle.properties", "condition": "$BUILD_SYSTEM=='Gradle'" }, - { - "template": "../gradle-wrapper.properties.ft", - "destination": "gradle/wrapper/gradle-wrapper.properties", - "condition": "$BUILD_SYSTEM=='Gradle'" - }, { "template": "pom.xml.ft", "destination": "pom.xml", @@ -224,6 +248,11 @@ } ], "finalizers": [ + { + "type": "run_gradle_tasks", + "tasks": ["wrapper --gradle-version=latest", "wrapper"], + "condition": "$BUILD_SYSTEM=='Gradle'" + }, { "type": "import_maven_project", "condition": "$BUILD_SYSTEM=='Maven'" @@ -232,11 +261,6 @@ "type": "import_gradle_project", "condition": "$BUILD_SYSTEM=='Gradle'" }, - { - "type": "run_gradle_tasks", - "tasks": ["wrapper"], - "condition": "$BUILD_SYSTEM=='Gradle'" - }, { "type": "git_add_all", "condition": "$USE_GIT" diff --git a/bukkit/plugin.yml.ft b/bukkit/plugin.yml.ft index bd31545..efd26bb 100644 --- a/bukkit/plugin.yml.ft +++ b/bukkit/plugin.yml.ft @@ -1,5 +1,5 @@ name: ${PLUGIN_NAME} -version: '${BUILD_COORDS.version}' +version: '$version' main: ${MAIN_CLASS} #if (${API_VERSION}) api-version: '${API_VERSION}' diff --git a/bukkit/settings.gradle.ft b/bukkit/settings.gradle.ft deleted file mode 100644 index 9e1c33f..0000000 --- a/bukkit/settings.gradle.ft +++ /dev/null @@ -1 +0,0 @@ -rootProject.name = '${PROJECT_NAME}' From 2a102d28fd7e4a1a09693da06a8c958fa960aa1f Mon Sep 17 00:00:00 2001 From: Strokkur24 Date: Fri, 9 Jan 2026 02:02:18 +0100 Subject: [PATCH 02/20] fix: errors in build.gradle.tks templates --- ...ild.gradle.kts.ft => java.build.gradle.kts.ft} | 15 ++++++--------- bukkit/kotlin.build.gradle.kts.ft | 10 +++++----- bukkit/paper.mcdev.template.json | 2 +- 3 files changed, 12 insertions(+), 15 deletions(-) rename bukkit/{build.gradle.kts.ft => java.build.gradle.kts.ft} (77%) diff --git a/bukkit/build.gradle.kts.ft b/bukkit/java.build.gradle.kts.ft similarity index 77% rename from bukkit/build.gradle.kts.ft rename to bukkit/java.build.gradle.kts.ft index 9db5319..c6fbabc 100644 --- a/bukkit/build.gradle.kts.ft +++ b/bukkit/java.build.gradle.kts.ft @@ -3,7 +3,7 @@ plugins { #if ($INCLUDE_SHADOW_PLUGIN) id("com.gradleup.shadow") version "9.0.1" #end -#if (#INCLUDE_RUN_PAPER_PLUGIN) +#if ($INCLUDE_RUN_PAPER_PLUGIN) id("xyz.jpenilla.run-paper") version "3.0.2" #end } @@ -36,22 +36,19 @@ tasks { } #end -#if (#INCLUDE_RUN_PAPER_PLUGIN && $ACCEPT_EULA) +#if ($INCLUDE_RUN_PAPER_PLUGIN) runServer { // Configure the Minecraft version for our task. // This is the only required configuration besides applying the plugin. // Your plugin's jar (or shadowJar if present) will be used automatically. minecraftVersion("${API_VERSION}") +#if ($ACCEPT_EULA) jvmArgs("-Xms2G", "-Xmx2G", "-Dcom.mojang.eula.agree-true") -#end -#if (#INCLUDE_RUN_PAPER_PLUGIN && !$ACCEPT_EULA) - runServer { - // Configure the Minecraft version for our task. - // This is the only required configuration besides applying the plugin. - // Your plugin's jar (or shadowJar if present) will be used automatically. - minecraftVersion("${API_VERSION}") +#else jvmArgs("-Xms2G", "-Xmx2G") #end + } +#end processResources { val props = mapOf("version" to version) diff --git a/bukkit/kotlin.build.gradle.kts.ft b/bukkit/kotlin.build.gradle.kts.ft index 68d8ac5..fcbc280 100644 --- a/bukkit/kotlin.build.gradle.kts.ft +++ b/bukkit/kotlin.build.gradle.kts.ft @@ -1,7 +1,7 @@ plugins { kotlin("jvm") version "${KOTLIN_VERSION}" id("com.gradleup.shadow") version "9.0.1" -#if (#INCLUDE_RUN_PAPER_PLUGIN) +#if ($INCLUDE_RUN_PAPER_PLUGIN) id("xyz.jpenilla.run-paper") version "3.0.2" #end } @@ -25,7 +25,7 @@ dependencies { } kotlin { - jvmToolchain(${KOTLIN_VERSION}) + jvmToolchain(${JAVA_VERSION}) } tasks { @@ -33,19 +33,19 @@ tasks { dependsOn(shadowJar) } -#if (#INCLUDE_RUN_PAPER_PLUGIN) +#if ($INCLUDE_RUN_PAPER_PLUGIN) runServer { // Configure the Minecraft version for our task. // This is the only required configuration besides applying the plugin. // Your plugin's jar (or shadowJar if present) will be used automatically. - minecraftVersion("${API_VERSION}") + minecraftVersion("${MC_VERSION}") #if ($ACCEPT_EULA) jvmArgs("-Xms2G", "-Xmx2G", "-Dcom.mojang.eula.agree-true") #else jvmArgs("-Xms2G", "-Xmx2G") +#end } -#end #end processResources { val props = mapOf("version" to version) diff --git a/bukkit/paper.mcdev.template.json b/bukkit/paper.mcdev.template.json index a92b0bb..543fb55 100644 --- a/bukkit/paper.mcdev.template.json +++ b/bukkit/paper.mcdev.template.json @@ -200,7 +200,7 @@ "condition": "$USE_GIT" }, { - "template": "build.gradle.kts.ft", + "template": "java.build.gradle.kts.ft", "destination": "build.gradle.kts", "condition": "$BUILD_SYSTEM=='Gradle' && $LANGUAGE=='Java'" }, From 56634758c1b5e0d494196fd4e66310b7fbb0e765 Mon Sep 17 00:00:00 2001 From: Strokkur24 Date: Fri, 9 Jan 2026 02:43:05 +0100 Subject: [PATCH 03/20] feat: add version catalog and userdev toggles --- bukkit/java.build.gradle.kts.ft | 31 ++++++++++++++++++++------- bukkit/kotlin.build.gradle.kts.ft | 2 +- bukkit/libs.versions.toml.ft | 35 +++++++++++++++++++++++++++++++ bukkit/paper.mcdev.template.json | 16 ++++++++++++++ 4 files changed, 76 insertions(+), 8 deletions(-) create mode 100644 bukkit/libs.versions.toml.ft diff --git a/bukkit/java.build.gradle.kts.ft b/bukkit/java.build.gradle.kts.ft index c6fbabc..5717e89 100644 --- a/bukkit/java.build.gradle.kts.ft +++ b/bukkit/java.build.gradle.kts.ft @@ -1,10 +1,19 @@ plugins { id("java-library") -#if ($INCLUDE_SHADOW_PLUGIN) - id("com.gradleup.shadow") version "9.0.1" +#if ($USE_PAPERWEIGHT_USERDEV && $USE_VERSION_CATALOG) + alias(libs.plugin.paperweight.userdev) +#elseif ($USE_PAPERWEIGHT_USERDEV && !$USE_VERSION_CATALOG) + id("io.papermc.paperweight.userdev") version "2.0.0-beta.19" #end -#if ($INCLUDE_RUN_PAPER_PLUGIN) +#if ($INCLUDE_SHADOW_PLUGIN && !$USE_VERSION_CATALOG) + id("com.gradleup.shadow") version "9.3.1" +#elseif ($INCLUDE_SHADOW_PLUGIN && $USE_VERSION_CATALOG) + alias(libs.plugin.shadow) +#end +#if ($INCLUDE_RUN_PAPER_PLUGIN && !$USE_VERSION_CATALOG) id("xyz.jpenilla.run-paper") version "3.0.2" +#elseif ($INCLUDE_RUN_PAPER_PLUGIN && $USE_VERSION_CATALOG) + alias(libs.plugins.run.paper) #end } @@ -12,16 +21,24 @@ repositories { mavenCentral() #if ($IS_SPIGOT) maven("https://hub.spigotmc.org/nexus/content/repositories/snapshots/") -#elseif ($IS_PAPER) +#elseif ($IS_PAPER && !$USE_PAPERWEIGHT_USERDEV) maven("https://repo.papermc.io/repository/maven-public/") #end } dependencies { -#if ($IS_SPIGOT) +#if ($IS_SPIGOT && !$USE_VERSION_CATALOG) compileOnly("org.spigotmc:spigot-api:${MC_VERSION}-R0.1-SNAPSHOT") -#elseif ($IS_PAPER) +#elseif ($IS_SPIGOT && $USE_VERSION_CATALOG) + compileOnly(libs.spigot.api) +#elseif ($IS_PAPER && !$USE_PAPERWEIGHT_USERDEV && !$USE_VERSION_CATALOG) compileOnly("io.papermc.paper:paper-api:${MC_VERSION}-R0.1-SNAPSHOT") +#elseif ($IS_PAPER && !$USE_PAPERWEIGHT_USERDEV && $USE_VERSION_CATALOG) + compileOnly(libs.paper.api) +#elseif ($IS_PAPER && $USE_PAPERWEIGHT_USERDEV && !$USE_VERSION_CATALOG) + paperweight.paperDevBundle("${MC_VERSION}-R0.1-SNAPSHOT") +#elseif ($IS_PAPER && $USE_PAPERWEIGHT_USERDEV && $USE_VERSION_CATALOG) + paperweight.paperDevBundle(libs.versions.paper.api.get()) #end } @@ -41,7 +58,7 @@ tasks { // Configure the Minecraft version for our task. // This is the only required configuration besides applying the plugin. // Your plugin's jar (or shadowJar if present) will be used automatically. - minecraftVersion("${API_VERSION}") + minecraftVersion("${MC_VERSION}") #if ($ACCEPT_EULA) jvmArgs("-Xms2G", "-Xmx2G", "-Dcom.mojang.eula.agree-true") #else diff --git a/bukkit/kotlin.build.gradle.kts.ft b/bukkit/kotlin.build.gradle.kts.ft index fcbc280..8e4bf8b 100644 --- a/bukkit/kotlin.build.gradle.kts.ft +++ b/bukkit/kotlin.build.gradle.kts.ft @@ -1,6 +1,6 @@ plugins { kotlin("jvm") version "${KOTLIN_VERSION}" - id("com.gradleup.shadow") version "9.0.1" + id("com.gradleup.shadow") version "9.3.1" #if ($INCLUDE_RUN_PAPER_PLUGIN) id("xyz.jpenilla.run-paper") version "3.0.2" #end diff --git a/bukkit/libs.versions.toml.ft b/bukkit/libs.versions.toml.ft new file mode 100644 index 0000000..f5ea461 --- /dev/null +++ b/bukkit/libs.versions.toml.ft @@ -0,0 +1,35 @@ +[versions] +#if ($IS_PAPER) +paper-api = "${MC_VERSION}-R0.1-SNAPSHOT" +#elseif ($IS_SPIGOT) +spigot-api = "${MC_VERSION}-R0.1-SNAPSHOT" +#end + +#if ($USE_PAPERWEIGHT_USERDEV) +paperweight-userdev = "2.0.0-beta.19" +#end +#if ($INCLUDE_SHADOW_PLUGIN) +shadow = "9.3.1" +#end +#if ($INCLUDE_RUN_PAPER_PLUGIN) +run-task = "3.0.2" +#end + +#if ($IS_PAPER && !$USE_PAPERWEIGHT_USERDEV) +[libraries] +paper-api = { module = "io.papermc.paper:paper-api", version.ref = "paper-api" } +#elseif ($IS_SPIGOT) +[libraries] +spigot-api = { module = "org.spigotmc:spigot-api", version.ref = "spigot-api" } +#end + +[plugins] +#if ($USE_PAPERWEIGHT_USERDEV) +paperweight-userdev = { id = "io.papermc.paperweight.userdev", version.ref = "paperweight-userdev" } +#end +#if ($INCLUDE_SHADOW_PLUGIN) +shadow = { id = "com.gradleup.shadow", version.ref = "shadow" } +#end +#if ($INCLUDE_RUN_PAPER_PLUGIN) +run-paper = { id = "xyz.jpenilla.run-paper", version.ref = "run-task" } +#end diff --git a/bukkit/paper.mcdev.template.json b/bukkit/paper.mcdev.template.json index 543fb55..8208544 100644 --- a/bukkit/paper.mcdev.template.json +++ b/bukkit/paper.mcdev.template.json @@ -15,6 +15,12 @@ "Maven" ] }, + { + "name": "USE_VERSION_CATALOG", + "type": "boolean", + "default": false, + "condition": "$BUILD_SYSTEM=='Gradle'" + }, { "name": "LANGUAGE", "type": "string", @@ -106,6 +112,11 @@ "type": "boolean", "default": false }, + { + "name": "USE_PAPERWEIGHT_USERDEV", + "type": "boolean", + "default": false + }, { "name": "INCLUDE_SHADOW_PLUGIN", "type": "boolean", @@ -209,6 +220,11 @@ "destination": "build.gradle.kts", "condition": "$BUILD_SYSTEM=='Gradle' && $LANGUAGE=='Kotlin'" }, + { + "template": "libs.versions.toml.ft", + "destination": "gradle/libs.versions.toml", + "condition": "$BUILD_SYSTEM=='Gradle' && $USE_VERSION_CATALOG" + }, { "template": "settings.gradle.kts.ft", "destination": "settings.gradle.kts", From 68283466048e4a43e483795889bb77839af75308 Mon Sep 17 00:00:00 2001 From: Strokkur24 Date: Fri, 9 Jan 2026 14:54:02 +0100 Subject: [PATCH 04/20] feat: add resource factory plugin toggle --- .idea/.gitignore | 10 +++++ .idea/discord.xml | 14 ++++++ .idea/mcdev-templates.iml | 9 ++++ .idea/misc.xml | 18 ++++++++ .idea/modules.xml | 8 ++++ .idea/vcs.xml | 6 +++ bukkit/java.build.gradle.kts.ft | 77 ++++++++++++++++++++++++++++---- bukkit/libs.versions.toml.ft | 11 ++++- bukkit/paper.mcdev.template.json | 9 +++- 9 files changed, 149 insertions(+), 13 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/discord.xml create mode 100644 .idea/mcdev-templates.iml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..ab1f416 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,10 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Ignored default folder with query files +/queries/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/discord.xml b/.idea/discord.xml new file mode 100644 index 0000000..104c42f --- /dev/null +++ b/.idea/discord.xml @@ -0,0 +1,14 @@ + + + + + \ No newline at end of file diff --git a/.idea/mcdev-templates.iml b/.idea/mcdev-templates.iml new file mode 100644 index 0000000..d6ebd48 --- /dev/null +++ b/.idea/mcdev-templates.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..39ec375 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..4b63e8e --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/bukkit/java.build.gradle.kts.ft b/bukkit/java.build.gradle.kts.ft index 5717e89..54ee36d 100644 --- a/bukkit/java.build.gradle.kts.ft +++ b/bukkit/java.build.gradle.kts.ft @@ -1,19 +1,39 @@ plugins { id("java-library") -#if ($USE_PAPERWEIGHT_USERDEV && $USE_VERSION_CATALOG) +#if ($USE_VERSION_CATALOG) + +#if ($USE_PAPERWEIGHT_USERDEV) alias(libs.plugin.paperweight.userdev) -#elseif ($USE_PAPERWEIGHT_USERDEV && !$USE_VERSION_CATALOG) +#end +#if ($INCLUDE_SHADOW_PLUGIN) + alias(libs.plugins.shadow) +#end +#if ($INCLUDE_RUN_PAPER_PLUGIN) + alias(libs.plugins.run.paper) +#end +#if ($USE_RESOURCE_FACTORY_PLUGIN && $USE_PAPER_MANIFEST) + alias(libs.plugins.resource.factory.paper) +#elseif ($USE_RESOURCE_FACTORY_PLUGIN && !$USE_PAPER_MANIFEST) + alias(libs.plugins.resource.factory.bukkit) +#end + +#else + +#if ($USE_PAPERWEIGHT_USERDEV) id("io.papermc.paperweight.userdev") version "2.0.0-beta.19" #end -#if ($INCLUDE_SHADOW_PLUGIN && !$USE_VERSION_CATALOG) +#if ($INCLUDE_SHADOW_PLUGIN) id("com.gradleup.shadow") version "9.3.1" -#elseif ($INCLUDE_SHADOW_PLUGIN && $USE_VERSION_CATALOG) - alias(libs.plugin.shadow) #end -#if ($INCLUDE_RUN_PAPER_PLUGIN && !$USE_VERSION_CATALOG) +#if ($INCLUDE_RUN_PAPER_PLUGIN) id("xyz.jpenilla.run-paper") version "3.0.2" -#elseif ($INCLUDE_RUN_PAPER_PLUGIN && $USE_VERSION_CATALOG) - alias(libs.plugins.run.paper) +#end +#if ($USE_RESOURCE_FACTORY_PLUGIN && $USE_PAPER_MANIFEST) + id("xyz.jpenilla.resource-factory-paper-convention") version "1.3.1" +#elseif ($USE_RESOURCE_FACTORY_PLUGIN && !$USE_PAPER_MANIFEST) + id("xyz.jpenilla.resource-factory-bukkit-convention") version "1.3.1" +#end + #end } @@ -42,18 +62,54 @@ dependencies { #end } +#if ($USE_RESOURCE_FACTORY_PLUGIN) +#if ($USE_PAPER_MANIFEST) +paperPluginYaml { +#else +bukkitPluginYaml { +#end + name = project.name +#if ($DESCRIPTION) + description = "${DESCRIPTION}" +#end +#if ($LOG_PREFIX) + prefix = "${LOG_PREFIX}" +#end + version = project.version.toString() + + main = "${MAIN_CLASS}" +#if ($API_VERSION) + api-version = "${API_VERSION}" +#end +#if ($LOAD_AT) + load = BukkitPluginYaml.PluginLoaderOrder.${LOAD_AT.toUpperCase()} +#end +#if ($AUTHORS || $WEBSITE) + +#end +#if ($AUTHORS) + // TODO(mcdev): add correctly-formatted authors input + authors.addAll(/* ${AUTHORS} */) +#end +#if ($WEBSITE) + website = "${WEBSITE}" +#end +} +#end + java { toolchain.languageVersion = JavaLanguageVersion.of(${JAVA_VERSION}) } +#if ($INCLUDE_SHADOW_PLUGIN || $INCLUDE_RUN_PAPER_PLUGIN || $!USE_RESOURCE_FACTORY_PLUGIN) tasks { #if ($INCLUDE_SHADOW_PLUGIN) build { dependsOn(shadowJar) } - #end #if ($INCLUDE_RUN_PAPER_PLUGIN) + runServer { // Configure the Minecraft version for our task. // This is the only required configuration besides applying the plugin. @@ -66,6 +122,7 @@ tasks { #end } #end +#if (!$USE_RESOURCE_FACTORY_PLUGIN) processResources { val props = mapOf("version" to version) @@ -77,4 +134,6 @@ tasks { expand(props) } } +#end } +#end \ No newline at end of file diff --git a/bukkit/libs.versions.toml.ft b/bukkit/libs.versions.toml.ft index f5ea461..4909d95 100644 --- a/bukkit/libs.versions.toml.ft +++ b/bukkit/libs.versions.toml.ft @@ -14,12 +14,14 @@ shadow = "9.3.1" #if ($INCLUDE_RUN_PAPER_PLUGIN) run-task = "3.0.2" #end +#if ($USE_RESOURCE_FACTORY_PLUGIN) +resource-factory = "1.3.1" +#end -#if ($IS_PAPER && !$USE_PAPERWEIGHT_USERDEV) [libraries] +#if ($IS_PAPER && !$USE_PAPERWEIGHT_USERDEV) paper-api = { module = "io.papermc.paper:paper-api", version.ref = "paper-api" } #elseif ($IS_SPIGOT) -[libraries] spigot-api = { module = "org.spigotmc:spigot-api", version.ref = "spigot-api" } #end @@ -33,3 +35,8 @@ shadow = { id = "com.gradleup.shadow", version.ref = "shadow" } #if ($INCLUDE_RUN_PAPER_PLUGIN) run-paper = { id = "xyz.jpenilla.run-paper", version.ref = "run-task" } #end +#if ($USE_RESOURCE_FACTORY_PLUGIN && $USE_PAPER_MANIFEST) +resource-factory-paper = { id = "xyz.jpenilla.resource-factory-paper-convention", version.ref = "resource-factory" } +#elseif ($USE_RESOURCE_FACTORY_PLUGIN && !$USE_PAPER_MANIFEST) +resource-factory-bukkit = { id = "xyz.jpenilla.resource-factory-bukkit-convention", version.ref = "resource-factory" } +#end diff --git a/bukkit/paper.mcdev.template.json b/bukkit/paper.mcdev.template.json index 8208544..b1c1c50 100644 --- a/bukkit/paper.mcdev.template.json +++ b/bukkit/paper.mcdev.template.json @@ -112,6 +112,11 @@ "type": "boolean", "default": false }, + { + "name": "USE_RESOURCE_FACTORY_PLUGIN", + "type": "boolean", + "default": false + }, { "name": "USE_PAPERWEIGHT_USERDEV", "type": "boolean", @@ -243,12 +248,12 @@ { "template": "plugin.yml.ft", "destination": "src/main/resources/plugin.yml", - "condition": "!$USE_PAPER_MANIFEST" + "condition": "!$USE_PAPER_MANIFEST && !$USE_RESOURCE_FACTORY_PLUGIN" }, { "template": "paper-plugin.yml.ft", "destination": "src/main/resources/paper-plugin.yml", - "condition": "$USE_PAPER_MANIFEST" + "condition": "$USE_PAPER_MANIFEST && !$USE_RESOURCE_FACTORY_PLUGIN" }, { "template": "MainClass.java.ft", From c4a4832455107dc5ef53584fcff1f66bc8b82427 Mon Sep 17 00:00:00 2001 From: Strokkur24 Date: Fri, 9 Jan 2026 15:33:01 +0100 Subject: [PATCH 05/20] feat: update spigot template and merge together dupliate files --- Gradle.gitignore.ft | 123 ++---------------- ...uild.gradle.kts.ft => build.gradle.kts.ft} | 31 +++-- bukkit/kotlin.build.gradle.kts.ft | 60 --------- bukkit/libs.versions.toml.ft | 3 + bukkit/paper-plugin.yml.ft | 21 --- bukkit/paper.mcdev.template.json | 30 +++-- bukkit/plugin.yml.ft | 18 ++- bukkit/spigot.mcdev.template.json | 67 +++++++--- 8 files changed, 109 insertions(+), 244 deletions(-) rename bukkit/{java.build.gradle.kts.ft => build.gradle.kts.ft} (84%) delete mode 100644 bukkit/kotlin.build.gradle.kts.ft delete mode 100644 bukkit/paper-plugin.yml.ft diff --git a/Gradle.gitignore.ft b/Gradle.gitignore.ft index 2f20d0d..9e4b940 100644 --- a/Gradle.gitignore.ft +++ b/Gradle.gitignore.ft @@ -1,124 +1,21 @@ -# User-specific stuff -.idea/ +# MacOS DS_Store files +.DS_Store -*.iml -*.ipr -*.iws +# Gradle cache folder +.gradle + +# Gradle build folder +build # IntelliJ out/ +.idea +*.iml # mpeltonen/sbt-idea plugin .idea_modules/ -# JIRA plugin -atlassian-ide-plugin.xml - -# Compiled class file -*.class - -# Log file -*.log - -# BlueJ files -*.ctxt - -# Package Files # -*.jar -*.war -*.nar -*.ear -*.zip -*.tar.gz -*.rar - # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* -### Linux ### -*~ - -# temporary files which can be created if a process still has a handle open of a deleted file -.fuse_hidden* - -# KDE directory preferences -.directory - -# Linux trash folder which might appear on any partition or disk -.Trash-* - -# .nfs files are created when an open file is removed but is still being accessed -.nfs* - -### macOS ### -# General -.DS_Store -.AppleDouble -.LSOverride - -# Icon must end with two \r -Icon - -# Thumbnails -._* - -# Files that might appear in the root of a volume -.DocumentRevisions-V100 -.fseventsd -.Spotlight-V100 -.TemporaryItems -.Trashes -.VolumeIcon.icns -.com.apple.timemachine.donotpresent - -# Directories potentially created on remote AFP share -.AppleDB -.AppleDesktop -Network Trash Folder -Temporary Items -.apdisk - -### Windows ### -# Windows thumbnail cache files -Thumbs.db -Thumbs.db:encryptable -ehthumbs.db -ehthumbs_vista.db - -# Dump file -*.stackdump - -# Folder config file -[Dd]esktop.ini - -# Recycle Bin used on file shares -$RECYCLE.BIN/ - -# Windows Installer files -*.cab -*.msi -*.msix -*.msm -*.msp - -# Windows shortcuts -*.lnk - -### Gradle ### -.gradle -build/ - -# Ignore Gradle GUI config -gradle-app.setting - -# Cache of project -.gradletasknamecache - -### Gradle Patch ### -**/build/ - # Common working directory -run/ -runs/ - -# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored) -!gradle-wrapper.jar +run diff --git a/bukkit/java.build.gradle.kts.ft b/bukkit/build.gradle.kts.ft similarity index 84% rename from bukkit/java.build.gradle.kts.ft rename to bukkit/build.gradle.kts.ft index 54ee36d..3cb9afd 100644 --- a/bukkit/java.build.gradle.kts.ft +++ b/bukkit/build.gradle.kts.ft @@ -1,7 +1,14 @@ +#if ($USE_RESOURCE_FACTORY_PLUGIN && $LOAD_AT) +import xyz.jpenilla.resourcefactory.bukkit.BukkitPluginYaml + +#end plugins { +#if ($LANGUAGE=='Java') id("java-library") +#else + kotlin("jvm") version "${KOTLIN_VERSION}" +#end #if ($USE_VERSION_CATALOG) - #if ($USE_PAPERWEIGHT_USERDEV) alias(libs.plugin.paperweight.userdev) #end @@ -16,9 +23,7 @@ plugins { #elseif ($USE_RESOURCE_FACTORY_PLUGIN && !$USE_PAPER_MANIFEST) alias(libs.plugins.resource.factory.bukkit) #end - #else - #if ($USE_PAPERWEIGHT_USERDEV) id("io.papermc.paperweight.userdev") version "2.0.0-beta.19" #end @@ -33,7 +38,6 @@ plugins { #elseif ($USE_RESOURCE_FACTORY_PLUGIN && !$USE_PAPER_MANIFEST) id("xyz.jpenilla.resource-factory-bukkit-convention") version "1.3.1" #end - #end } @@ -60,6 +64,11 @@ dependencies { #elseif ($IS_PAPER && $USE_PAPERWEIGHT_USERDEV && $USE_VERSION_CATALOG) paperweight.paperDevBundle(libs.versions.paper.api.get()) #end +#if ($LANGUAGE=='Kotlin' && !$USE_VERSION_CATALOG) + implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") +#elseif ($LANGUAGE=='Kotlin' && $USE_VERSION_CATALOG) + implementation(libs.kotlin.stdlib) +#end } #if ($USE_RESOURCE_FACTORY_PLUGIN) @@ -79,10 +88,10 @@ bukkitPluginYaml { main = "${MAIN_CLASS}" #if ($API_VERSION) - api-version = "${API_VERSION}" + apiVersion = "${API_VERSION}" #end #if ($LOAD_AT) - load = BukkitPluginYaml.PluginLoaderOrder.${LOAD_AT.toUpperCase()} + load = BukkitPluginYaml.PluginLoadOrder.${LOAD_AT.toUpperCase()} #end #if ($AUTHORS || $WEBSITE) @@ -97,9 +106,15 @@ bukkitPluginYaml { } #end +#if ($LANGUAGE=='Java') java { toolchain.languageVersion = JavaLanguageVersion.of(${JAVA_VERSION}) } +#else +kotlin { + jvmToolchain(${JAVA_VERSION}) +} +#end #if ($INCLUDE_SHADOW_PLUGIN || $INCLUDE_RUN_PAPER_PLUGIN || $!USE_RESOURCE_FACTORY_PLUGIN) tasks { @@ -109,21 +124,19 @@ tasks { } #end #if ($INCLUDE_RUN_PAPER_PLUGIN) - runServer { // Configure the Minecraft version for our task. // This is the only required configuration besides applying the plugin. // Your plugin's jar (or shadowJar if present) will be used automatically. minecraftVersion("${MC_VERSION}") #if ($ACCEPT_EULA) - jvmArgs("-Xms2G", "-Xmx2G", "-Dcom.mojang.eula.agree-true") + jvmArgs("-Xms2G", "-Xmx2G", "-Dcom.mojang.eula.agree=true") #else jvmArgs("-Xms2G", "-Xmx2G") #end } #end #if (!$USE_RESOURCE_FACTORY_PLUGIN) - processResources { val props = mapOf("version" to version) #if ($USE_PAPER_MANIFEST) diff --git a/bukkit/kotlin.build.gradle.kts.ft b/bukkit/kotlin.build.gradle.kts.ft deleted file mode 100644 index 8e4bf8b..0000000 --- a/bukkit/kotlin.build.gradle.kts.ft +++ /dev/null @@ -1,60 +0,0 @@ -plugins { - kotlin("jvm") version "${KOTLIN_VERSION}" - id("com.gradleup.shadow") version "9.3.1" -#if ($INCLUDE_RUN_PAPER_PLUGIN) - id("xyz.jpenilla.run-paper") version "3.0.2" -#end -} - -repositories { - mavenCentral() -#if ($IS_SPIGOT) - maven("https://hub.spigotmc.org/nexus/content/repositories/snapshots/") -#elseif ($IS_PAPER) - maven("https://repo.papermc.io/repository/maven-public/") -#end -} - -dependencies { -#if ($IS_SPIGOT) - compileOnly("org.spigotmc:spigot-api:${MC_VERSION}-R0.1-SNAPSHOT") -#elseif ($IS_PAPER) - compileOnly("io.papermc.paper:paper-api:${MC_VERSION}-R0.1-SNAPSHOT") -#end - implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") -} - -kotlin { - jvmToolchain(${JAVA_VERSION}) -} - -tasks { - build { - dependsOn(shadowJar) - } - -#if ($INCLUDE_RUN_PAPER_PLUGIN) - runServer { - // Configure the Minecraft version for our task. - // This is the only required configuration besides applying the plugin. - // Your plugin's jar (or shadowJar if present) will be used automatically. - minecraftVersion("${MC_VERSION}") -#if ($ACCEPT_EULA) - jvmArgs("-Xms2G", "-Xmx2G", "-Dcom.mojang.eula.agree-true") -#else - jvmArgs("-Xms2G", "-Xmx2G") -#end - } - -#end - processResources { - val props = mapOf("version" to version) -#if ($USE_PAPER_MANIFEST) - filesMatching("paper-plugin.yml") { -#else - filesMatching("plugin.yml") { -#end - expand(props) - } - } -} diff --git a/bukkit/libs.versions.toml.ft b/bukkit/libs.versions.toml.ft index 4909d95..6ab53aa 100644 --- a/bukkit/libs.versions.toml.ft +++ b/bukkit/libs.versions.toml.ft @@ -24,6 +24,9 @@ paper-api = { module = "io.papermc.paper:paper-api", version.ref = "paper-api" } #elseif ($IS_SPIGOT) spigot-api = { module = "org.spigotmc:spigot-api", version.ref = "spigot-api" } #end +#if ($LANGUAGE=='Kotlin') +kotlin-stdlib = { module = "org.jetbrains.kotlin:kotlin-stdlib-jdk8" } +#end [plugins] #if ($USE_PAPERWEIGHT_USERDEV) diff --git a/bukkit/paper-plugin.yml.ft b/bukkit/paper-plugin.yml.ft deleted file mode 100644 index efd26bb..0000000 --- a/bukkit/paper-plugin.yml.ft +++ /dev/null @@ -1,21 +0,0 @@ -name: ${PLUGIN_NAME} -version: '$version' -main: ${MAIN_CLASS} -#if (${API_VERSION}) -api-version: '${API_VERSION}' -#end -#if (${LOG_PREFIX}) -prefix: ${LOG_PREFIX} -#end -#if (${LOAD_AT}) -load: ${LOAD_AT} -#end -#if (${AUTHORS}) -authors: ${AUTHORS.toString(", ", "[", "]")} -#end -#if (${DESCRIPTION}) -description: ${DESCRIPTION} -#end -#if (${WEBSITE}) -website: ${WEBSITE} -#end diff --git a/bukkit/paper.mcdev.template.json b/bukkit/paper.mcdev.template.json index b1c1c50..0e93095 100644 --- a/bukkit/paper.mcdev.template.json +++ b/bukkit/paper.mcdev.template.json @@ -19,7 +19,10 @@ "name": "USE_VERSION_CATALOG", "type": "boolean", "default": false, - "condition": "$BUILD_SYSTEM=='Gradle'" + "visible": { + "dependsOn": ["BUILD_SYSTEM"], + "condition": "$BUILD_SYSTEM == 'Gradle'" + } }, { "name": "LANGUAGE", @@ -125,8 +128,11 @@ { "name": "INCLUDE_SHADOW_PLUGIN", "type": "boolean", - "default": false, - "condition": "$LANGUAGE=='Java'" + "default": "$LANGUAGE=='Kotlin'", + "visible": { + "dependsOn": ["LANGUAGE"], + "condition": "$LANGUAGE == 'Java'" + } }, { "name": "INCLUDE_RUN_PAPER_PLUGIN", @@ -137,7 +143,10 @@ "name": "ACCEPT_EULA", "type": "boolean", "default": false, - "condition": "$INCLUDE_RUN_PAPER_PLUGIN" + "visible": { + "dependsOn": ["INCLUDE_RUN_PAPER_PLUGIN"], + "condition": "$INCLUDE_RUN_PAPER_PLUGIN" + } }, { "label": "creator.ui.optional_settings.label", @@ -216,14 +225,9 @@ "condition": "$USE_GIT" }, { - "template": "java.build.gradle.kts.ft", + "template": "build.gradle.kts.ft", "destination": "build.gradle.kts", - "condition": "$BUILD_SYSTEM=='Gradle' && $LANGUAGE=='Java'" - }, - { - "template": "kotlin.build.gradle.kts.ft", - "destination": "build.gradle.kts", - "condition": "$BUILD_SYSTEM=='Gradle' && $LANGUAGE=='Kotlin'" + "condition": "$BUILD_SYSTEM=='Gradle'" }, { "template": "libs.versions.toml.ft", @@ -251,7 +255,7 @@ "condition": "!$USE_PAPER_MANIFEST && !$USE_RESOURCE_FACTORY_PLUGIN" }, { - "template": "paper-plugin.yml.ft", + "template": "plugin.yml.ft", "destination": "src/main/resources/paper-plugin.yml", "condition": "$USE_PAPER_MANIFEST && !$USE_RESOURCE_FACTORY_PLUGIN" }, @@ -271,7 +275,7 @@ "finalizers": [ { "type": "run_gradle_tasks", - "tasks": ["wrapper --gradle-version=latest", "wrapper"], + "tasks": ["wrapper --gradle-version=latest"], "condition": "$BUILD_SYSTEM=='Gradle'" }, { diff --git a/bukkit/plugin.yml.ft b/bukkit/plugin.yml.ft index efd26bb..2d870d4 100644 --- a/bukkit/plugin.yml.ft +++ b/bukkit/plugin.yml.ft @@ -1,21 +1,25 @@ name: ${PLUGIN_NAME} +#if (${DESCRIPTION}) +description: ${DESCRIPTION} +#end +#if (${LOG_PREFIX}) +prefix: ${LOG_PREFIX} +#end version: '$version' + main: ${MAIN_CLASS} #if (${API_VERSION}) api-version: '${API_VERSION}' #end -#if (${LOG_PREFIX}) -prefix: ${LOG_PREFIX} -#end #if (${LOAD_AT}) load: ${LOAD_AT} #end -#if (${AUTHORS}) +#if ($AUTHORS || $WEBSITE) + +#if ($AUTHORS) authors: ${AUTHORS.toString(", ", "[", "]")} #end -#if (${DESCRIPTION}) -description: ${DESCRIPTION} -#end #if (${WEBSITE}) website: ${WEBSITE} #end +#end diff --git a/bukkit/spigot.mcdev.template.json b/bukkit/spigot.mcdev.template.json index 1e561ba..cd4d499 100644 --- a/bukkit/spigot.mcdev.template.json +++ b/bukkit/spigot.mcdev.template.json @@ -15,6 +15,15 @@ "Maven" ] }, + { + "name": "USE_VERSION_CATALOG", + "type": "boolean", + "default": false, + "visible": { + "dependsOn": ["BUILD_SYSTEM"], + "condition": "$BUILD_SYSTEM == 'Gradle'" + } + }, { "name": "LANGUAGE", "type": "string", @@ -90,6 +99,26 @@ "method": "suggestClassName" } }, + { + "name": "USE_RESOURCE_FACTORY_PLUGIN", + "type": "boolean", + "default": false + }, + { + "name": "USE_PAPERWEIGHT_USERDEV", + "type": "boolean", + "visible": false, + "default": false + }, + { + "name": "INCLUDE_SHADOW_PLUGIN", + "type": "boolean", + "default": "$LANGUAGE=='Kotlin'", + "visible": { + "dependsOn": ["LANGUAGE"], + "condition": "$LANGUAGE == 'Java'" + } + }, { "label": "creator.ui.optional_settings.label", "collapsible": true, @@ -162,35 +191,30 @@ "condition": "$USE_GIT" }, { - "template": "build.gradle.ft", - "destination": "build.gradle", - "condition": "$BUILD_SYSTEM=='Gradle' && $LANGUAGE=='Java'" - }, - { - "template": "settings.gradle.ft", - "destination": "settings.gradle", - "condition": "$BUILD_SYSTEM=='Gradle' && $LANGUAGE=='Java'" + "template": "../.gitattributes.ft", + "destination": ".gitattributes", + "condition": "$USE_GIT" }, { "template": "build.gradle.kts.ft", "destination": "build.gradle.kts", - "condition": "$BUILD_SYSTEM=='Gradle' && $LANGUAGE=='Kotlin'" + "condition": "$BUILD_SYSTEM=='Gradle'" + }, + { + "template": "libs.versions.toml.ft", + "destination": "gradle/libs.versions.toml", + "condition": "$BUILD_SYSTEM=='Gradle' && $USE_VERSION_CATALOG" }, { "template": "settings.gradle.kts.ft", "destination": "settings.gradle.kts", - "condition": "$BUILD_SYSTEM=='Gradle' && $LANGUAGE=='Kotlin'" + "condition": "$BUILD_SYSTEM=='Gradle'" }, { "template": "gradle.properties.ft", "destination": "gradle.properties", "condition": "$BUILD_SYSTEM=='Gradle'" }, - { - "template": "../gradle-wrapper.properties.ft", - "destination": "gradle/wrapper/gradle-wrapper.properties", - "condition": "$BUILD_SYSTEM=='Gradle'" - }, { "template": "pom.xml.ft", "destination": "pom.xml", @@ -198,7 +222,8 @@ }, { "template": "plugin.yml.ft", - "destination": "src/main/resources/plugin.yml" + "destination": "src/main/resources/plugin.yml", + "condition": "!$USE_RESOURCE_FACTORY_PLUGIN" }, { "template": "MainClass.java.ft", @@ -215,17 +240,17 @@ ], "finalizers": [ { - "type": "import_maven_project", - "condition": "$BUILD_SYSTEM=='Maven'" + "type": "run_gradle_tasks", + "tasks": ["wrapper --gradle-version=latest"], + "condition": "$BUILD_SYSTEM=='Gradle'" }, { "type": "import_gradle_project", "condition": "$BUILD_SYSTEM=='Gradle'" }, { - "type": "run_gradle_tasks", - "tasks": ["wrapper"], - "condition": "$BUILD_SYSTEM=='Gradle'" + "type": "import_maven_project", + "condition": "$BUILD_SYSTEM=='Maven'" }, { "type": "git_add_all", From e8701b76601eaa176d1e72f7b67a246c79727108 Mon Sep 17 00:00:00 2001 From: Strokkur24 Date: Fri, 9 Jan 2026 16:33:46 +0100 Subject: [PATCH 06/20] feat: add bootstrap and loader file options (+gremlin) and add translations --- bukkit/BootstrapClass.java.ft | 12 ++++++++ bukkit/BootstrapClass.kt.ft | 11 +++++++ bukkit/LoaderClass.java.ft | 12 ++++++++ bukkit/LoaderClass.kt.ft | 11 +++++++ bukkit/build.gradle.kts.ft | 45 +++++++++++++++++++++++---- bukkit/libs.versions.toml.ft | 13 ++++++-- bukkit/paper.mcdev.template.json | 52 ++++++++++++++++++++++++++++++++ bukkit/plugin.yml.ft | 12 ++++++++ messages.properties | 10 ++++++ 9 files changed, 170 insertions(+), 8 deletions(-) create mode 100644 bukkit/BootstrapClass.java.ft create mode 100644 bukkit/BootstrapClass.kt.ft create mode 100644 bukkit/LoaderClass.java.ft create mode 100644 bukkit/LoaderClass.kt.ft diff --git a/bukkit/BootstrapClass.java.ft b/bukkit/BootstrapClass.java.ft new file mode 100644 index 0000000..4ab0311 --- /dev/null +++ b/bukkit/BootstrapClass.java.ft @@ -0,0 +1,12 @@ +package ${MAIN_CLASS.packageName}; + +import io.papermc.paper.plugin.bootstrap.BootstrapContext; +import io.papermc.paper.plugin.bootstrap.PluginBootstrap; + +class ${MAIN_CLASS.className}Bootstrap implements PluginBootstrap { + + @Override + public void bootstrap(final BootstrapContext context) { + // Plugin bootstrap logic + } +} diff --git a/bukkit/BootstrapClass.kt.ft b/bukkit/BootstrapClass.kt.ft new file mode 100644 index 0000000..79cf18e --- /dev/null +++ b/bukkit/BootstrapClass.kt.ft @@ -0,0 +1,11 @@ +package ${MAIN_CLASS.packageName}6 + +import io.papermc.paper.plugin.bootstrap.BootstrapContext +import io.papermc.paper.plugin.bootstrap.PluginBootstrap + +internal class ${MAIN_CLASS.className}Bootstrap : PluginBootstrap { + + override fun bootstrap(context: BootstrapContext) { + // Plugin bootstrap logic + } +} diff --git a/bukkit/LoaderClass.java.ft b/bukkit/LoaderClass.java.ft new file mode 100644 index 0000000..cbf024f --- /dev/null +++ b/bukkit/LoaderClass.java.ft @@ -0,0 +1,12 @@ +package ${MAIN_CLASS.packageName}; + +import io.papermc.paper.plugin.loader.PluginClasspathBuilder; +import io.papermc.paper.plugin.loader.PluginLoader; + +class ${MAIN_CLASS.className}Loader implements PluginLoader { + + @Override + public void classloader(final PluginClasspathBuilder builder) { + // Add dynamically loaded libraries here + } +} diff --git a/bukkit/LoaderClass.kt.ft b/bukkit/LoaderClass.kt.ft new file mode 100644 index 0000000..80bb1b0 --- /dev/null +++ b/bukkit/LoaderClass.kt.ft @@ -0,0 +1,11 @@ +package ${MAIN_CLASS.packageName}6 + +import io.papermc.paper.plugin.loader.PluginClasspathBuilder +import io.papermc.paper.plugin.loader.PluginLoader + +internal class ${MAIN_CLASS.className}Loader : PluginLoader { + + override fun classloader(builder: PluginClasspathBuilder) { + // Add dynamically loaded libraries here + } +} diff --git a/bukkit/build.gradle.kts.ft b/bukkit/build.gradle.kts.ft index 3cb9afd..1b92ac2 100644 --- a/bukkit/build.gradle.kts.ft +++ b/bukkit/build.gradle.kts.ft @@ -12,7 +12,7 @@ plugins { #if ($USE_PAPERWEIGHT_USERDEV) alias(libs.plugin.paperweight.userdev) #end -#if ($INCLUDE_SHADOW_PLUGIN) +#if ($USE_GREMLIN || $INCLUDE_SHADOW_PLUGIN) alias(libs.plugins.shadow) #end #if ($INCLUDE_RUN_PAPER_PLUGIN) @@ -23,6 +23,9 @@ plugins { #elseif ($USE_RESOURCE_FACTORY_PLUGIN && !$USE_PAPER_MANIFEST) alias(libs.plugins.resource.factory.bukkit) #end +#if ($USE_GREMLIN) + alias(libs.plugins.gremlin.gradle) +#end #else #if ($USE_PAPERWEIGHT_USERDEV) id("io.papermc.paperweight.userdev") version "2.0.0-beta.19" @@ -38,6 +41,9 @@ plugins { #elseif ($USE_RESOURCE_FACTORY_PLUGIN && !$USE_PAPER_MANIFEST) id("xyz.jpenilla.resource-factory-bukkit-convention") version "1.3.1" #end +#if ($USE_GREMLIN) + id("xyz.jpenilla.gremlin-gradle") version "0.0.9" +#end #end } @@ -49,6 +55,12 @@ repositories { maven("https://repo.papermc.io/repository/maven-public/") #end } +#if ($USE_GREMLIN) + +configurations.compileOnly { + extendsFrom(configurations.runtimeDownload.get()) +} +#end dependencies { #if ($IS_SPIGOT && !$USE_VERSION_CATALOG) @@ -64,14 +76,23 @@ dependencies { #elseif ($IS_PAPER && $USE_PAPERWEIGHT_USERDEV && $USE_VERSION_CATALOG) paperweight.paperDevBundle(libs.versions.paper.api.get()) #end -#if ($LANGUAGE=='Kotlin' && !$USE_VERSION_CATALOG) +#if ($USE_GREMLIN && !$USE_VERSION_CATALOG) + implementation("xyz.jpenilla:gremlin-runtime:0.0.9") +#elseif ($USE_GREMLIN && $USE_VERSION_CATALOG) + implementation(libs.gremlin.runtime) +#end +#if ($LANGUAGE=='Kotlin' && !$USE_VERSION_CATALOG && !$USE_GREMLIN) implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") -#elseif ($LANGUAGE=='Kotlin' && $USE_VERSION_CATALOG) +#elseif ($LANGUAGE=='Kotlin' && $USE_VERSION_CATALOG && !$USE_GREMLIN) implementation(libs.kotlin.stdlib) +#elseif ($LANGUAGE=='Kotlin' && !$USE_VERSION_CATALOG && $USE_GREMLIN) + runtimeDownload("org.jetbrains.kotlin:kotlin-stdlib-jdk8") +#elseif ($LANGUAGE=='Kotlin' && $USE_VERSION_CATALOG && $USE_GREMLIN) + runtimeDownload(libs.kotlin.stdlib) #end } - #if ($USE_RESOURCE_FACTORY_PLUGIN) + #if ($USE_PAPER_MANIFEST) paperPluginYaml { #else @@ -87,6 +108,18 @@ bukkitPluginYaml { version = project.version.toString() main = "${MAIN_CLASS}" +#if (${INCLUDE_PLUGIN_BOOTSTRAP}) + bootstrapper = "${MAIN_CLASS.packageName}.${MAIN_CLASS.className}Bootstrap" +#end +#if (${INCLUDE_PLUGIN_LOADER} && !${USE_GREMLIN} && !${USE_PAPER_MANIFEST}) + paperPluginLoader = "${MAIN_CLASS.packageName}.${MAIN_CLASS.className}Loader" +#elseif (${USE_GREMLIN} && !${USE_PAPER_MANIFEST}) + paperPluginLoader = "xyz.jpenilla.gremlin.runtime.platformsupport.DefaultsPaperPluginLoader" +#elseif (${INCLUDE_PLUGIN_LOADER} && !${USE_GREMLIN} && ${USE_PAPER_MANIFEST}) + loader = "${MAIN_CLASS.packageName}.${MAIN_CLASS.className}Loader" +#elseif (${USE_GREMLIN} && ${USE_PAPER_MANIFEST}) + loader = "xyz.jpenilla.gremlin.runtime.platformsupport.DefaultsPaperPluginLoader" +#end #if ($API_VERSION) apiVersion = "${API_VERSION}" #end @@ -116,9 +149,9 @@ kotlin { } #end -#if ($INCLUDE_SHADOW_PLUGIN || $INCLUDE_RUN_PAPER_PLUGIN || $!USE_RESOURCE_FACTORY_PLUGIN) +#if ($USE_GREMLIN || $INCLUDE_SHADOW_PLUGIN || $INCLUDE_RUN_PAPER_PLUGIN || $!USE_RESOURCE_FACTORY_PLUGIN) tasks { -#if ($INCLUDE_SHADOW_PLUGIN) +#if ($USE_GREMLIN || $INCLUDE_SHADOW_PLUGIN) build { dependsOn(shadowJar) } diff --git a/bukkit/libs.versions.toml.ft b/bukkit/libs.versions.toml.ft index 6ab53aa..5f915b0 100644 --- a/bukkit/libs.versions.toml.ft +++ b/bukkit/libs.versions.toml.ft @@ -8,7 +8,7 @@ spigot-api = "${MC_VERSION}-R0.1-SNAPSHOT" #if ($USE_PAPERWEIGHT_USERDEV) paperweight-userdev = "2.0.0-beta.19" #end -#if ($INCLUDE_SHADOW_PLUGIN) +#if ($USE_GREMLIN || $INCLUDE_SHADOW_PLUGIN) shadow = "9.3.1" #end #if ($INCLUDE_RUN_PAPER_PLUGIN) @@ -17,6 +17,9 @@ run-task = "3.0.2" #if ($USE_RESOURCE_FACTORY_PLUGIN) resource-factory = "1.3.1" #end +#if ($USE_GREMLIN) +gremlin = "0.0.9" +#end [libraries] #if ($IS_PAPER && !$USE_PAPERWEIGHT_USERDEV) @@ -27,12 +30,15 @@ spigot-api = { module = "org.spigotmc:spigot-api", version.ref = "spigot-api" } #if ($LANGUAGE=='Kotlin') kotlin-stdlib = { module = "org.jetbrains.kotlin:kotlin-stdlib-jdk8" } #end +#if ($USE_GREMLIN) +gremlin-runtime = { module = "xyz.jpenilla:gremlin-runtime", version.ref = "gremlin" } +#end [plugins] #if ($USE_PAPERWEIGHT_USERDEV) paperweight-userdev = { id = "io.papermc.paperweight.userdev", version.ref = "paperweight-userdev" } #end -#if ($INCLUDE_SHADOW_PLUGIN) +#if ($USE_GREMLIN || $INCLUDE_SHADOW_PLUGIN) shadow = { id = "com.gradleup.shadow", version.ref = "shadow" } #end #if ($INCLUDE_RUN_PAPER_PLUGIN) @@ -43,3 +49,6 @@ resource-factory-paper = { id = "xyz.jpenilla.resource-factory-paper-convention" #elseif ($USE_RESOURCE_FACTORY_PLUGIN && !$USE_PAPER_MANIFEST) resource-factory-bukkit = { id = "xyz.jpenilla.resource-factory-bukkit-convention", version.ref = "resource-factory" } #end +#if ($USE_GREMLIN) +gremlin-gradle = { id = "xyz.jpenilla.gremlin-gradle", version.ref = "gremlin" } +#end diff --git a/bukkit/paper.mcdev.template.json b/bukkit/paper.mcdev.template.json index 0e93095..190cbc4 100644 --- a/bukkit/paper.mcdev.template.json +++ b/bukkit/paper.mcdev.template.json @@ -115,6 +115,38 @@ "type": "boolean", "default": false }, + { + "name": "INCLUDE_PLUGIN_BOOTSTRAP", + "type": "boolean", + "default": false, + "visible": { + "dependsOn": ["USE_PAPER_MANIFEST"], + "condition": "$USE_PAPER_MANIFEST" + } + }, + { + "name": "USE_GREMLIN", + "type": "boolean", + "default": false + }, + { + "name": "INCLUDE_PLUGIN_LOADER", + "type": "boolean", + "default": "$USE_GREMLIN", + "visible": { + "dependsOn": ["USE_GREMLIN"], + "condition": "!$USE_GREMLIN" + } + }, + { + "name": "JAVA_PLUGIN_LOADER", + "type": "boolean", + "default": true, + "visible": { + "dependsOn": ["USE_GREMLIN", "LANGUAGE", "INCLUDE_PLUGIN_LOADER"], + "condition": "!$USE_GREMLIN && $LANGUAGE=='Kotlin' && $INCLUDE_PLUGIN_LOADER" + } + }, { "name": "USE_RESOURCE_FACTORY_PLUGIN", "type": "boolean", @@ -270,6 +302,26 @@ "destination": "src/main/kotlin/${MAIN_CLASS.path}.kt", "condition": "$LANGUAGE=='Kotlin'", "openInEditor": true + }, + { + "template": "BootstrapClass.java.ft", + "destination": "src/main/java/${MAIN_CLASS.packageName}/${MAIN_CLASS.className}Bootstrap.java", + "condition": "$INCLUDE_PLUGIN_BOOTSTRAP && $LANGUAGE=='Java'" + }, + { + "template": "BootstrapClass.kt.ft", + "destination": "src/main/kotlin/${MAIN_CLASS.packageName}/${MAIN_CLASS.className}Bootstrap.kt", + "condition": "$INCLUDE_PLUGIN_BOOTSTRAP && $LANGUAGE=='Kotlin'" + }, + { + "template": "LoaderClass.java.ft", + "destination": "src/main/java/${MAIN_CLASS.packageName}/${MAIN_CLASS.className}Loader.java", + "condition": "!$USE_GREMLIN && $INCLUDE_PLUGIN_LOADER && $JAVA_PLUGIN_LOADER" + }, + { + "template": "LoaderClass.kt.ft", + "destination": "src/main/kotlin/${MAIN_CLASS.packageName}/${MAIN_CLASS.className}Loader.kt", + "condition": "!$USE_GREMLIN && $INCLUDE_PLUGIN_LOADER && !$JAVA_PLUGIN_LOADER" } ], "finalizers": [ diff --git a/bukkit/plugin.yml.ft b/bukkit/plugin.yml.ft index 2d870d4..f43b85f 100644 --- a/bukkit/plugin.yml.ft +++ b/bukkit/plugin.yml.ft @@ -8,6 +8,18 @@ prefix: ${LOG_PREFIX} version: '$version' main: ${MAIN_CLASS} +#if (${INCLUDE_PLUGIN_BOOTSTRAP}) +bootstrapper: ${MAIN_CLASS.packageName}.${MAIN_CLASS.className}Bootstrap +#end +#if (${INCLUDE_PLUGIN_LOADER} && !${USE_GREMLIN} && !${USE_PAPER_MANIFEST}) +paperPluginLoader = ${MAIN_CLASS.packageName}.${MAIN_CLASS.className}Loader +#elseif (${USE_GREMLIN} && !${USE_PAPER_MANIFEST}) +paperPluginLoader = xyz.jpenilla.gremlin.runtime.platformsupport.DefaultsPaperPluginLoader +#elseif (${INCLUDE_PLUGIN_LOADER} && !${USE_GREMLIN} && ${USE_PAPER_MANIFEST}) +loader = ${MAIN_CLASS.packageName}.${MAIN_CLASS.className}Loader +#elseif (${USE_GREMLIN} && ${USE_PAPER_MANIFEST}) +loader = xyz.jpenilla.gremlin.runtime.platformsupport.DefaultsPaperPluginLoader +#end #if (${API_VERSION}) api-version: '${API_VERSION}' #end diff --git a/messages.properties b/messages.properties index 9177ed1..25dd7c6 100644 --- a/messages.properties +++ b/messages.properties @@ -32,6 +32,16 @@ platform.velocity.label=Velocity creator.ui.use_datagen.label=Use Datagen: creator.ui.use_paper_manifest.label=Use Paper Manifest: creator.ui.use_paper_manifest.warning=Paper plugins are still experimental, their usage is discouraged for general purpose development. +creator.ui.use_version_catalog.label=Use Gradle version catalog: +creator.ui.include_plugin_bootstrap.label=Include plugin bootstrap file: +creator.ui.use_gremlin.label=Use Gremlin for dependency resolution: +creator.ui.include_plugin_loader.label=Include plugin loader file: +creator.ui.use_resource_factory_plugin.label=Use the resource-factory Gradle plugin: +creator.ui.use_paperweight_userdev.label=Use the paperweight-userdev Gradle plugin: +creator.ui.include_shadow_plugin.label=Include the shadow Gradle plugin: +creator.ui.include_run_paper_plugin.label=Include the run-paper Gradle plugin: +creator.ui.accept_eula.label=Add eula-agree runServer JVM flag: +creator.ui.accept_eula.warning=By using this feature, you agree to the Minecraft EULA. creator.ui.language.label=Language: From 5b69859d7a2fcef84f7211a170429cba5c4cc961 Mon Sep 17 00:00:00 2001 From: Strokkur24 Date: Fri, 9 Jan 2026 18:33:23 +0100 Subject: [PATCH 07/20] refactor: minor cleanups --- bukkit/build.gradle.kts.ft | 3 +- bukkit/paper.mcdev.template.json | 245 ++++++++++++++++++------------ bukkit/plugin.yml.ft | 8 +- bukkit/spigot.mcdev.template.json | 133 +++++++++++----- messages.properties | 12 +- 5 files changed, 251 insertions(+), 150 deletions(-) diff --git a/bukkit/build.gradle.kts.ft b/bukkit/build.gradle.kts.ft index 1b92ac2..242bee8 100644 --- a/bukkit/build.gradle.kts.ft +++ b/bukkit/build.gradle.kts.ft @@ -130,8 +130,7 @@ bukkitPluginYaml { #end #if ($AUTHORS) - // TODO(mcdev): add correctly-formatted authors input - authors.addAll(/* ${AUTHORS} */) + authors.addAll(${AUTHORS.toStringQuoted()}) #end #if ($WEBSITE) website = "${WEBSITE}" diff --git a/bukkit/paper.mcdev.template.json b/bukkit/paper.mcdev.template.json index 190cbc4..c041ad9 100644 --- a/bukkit/paper.mcdev.template.json +++ b/bukkit/paper.mcdev.template.json @@ -15,15 +15,6 @@ "Maven" ] }, - { - "name": "USE_VERSION_CATALOG", - "type": "boolean", - "default": false, - "visible": { - "dependsOn": ["BUILD_SYSTEM"], - "condition": "$BUILD_SYSTEM == 'Gradle'" - } - }, { "name": "LANGUAGE", "type": "string", @@ -32,6 +23,19 @@ "Kotlin" ] }, + { + "name": "KOTLIN_VERSION", + "type": "maven_artifact_version", + "parameters": { + "sourceUrl": "https://repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/maven-metadata.xml" + }, + "visible": { + "dependsOn": [ + "LANGUAGE" + ], + "condition": "$LANGUAGE == 'Kotlin'" + } + }, { "name": "MC_VERSION", "type": "semantic_version", @@ -58,17 +62,6 @@ ], "default": 0 }, - { - "name": "KOTLIN_VERSION", - "type": "maven_artifact_version", - "parameters": { - "sourceUrl": "https://repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/maven-metadata.xml" - }, - "visible": { - "dependsOn": ["LANGUAGE"], - "condition": "$LANGUAGE == 'Kotlin'" - } - }, { "name": "API_VERSION", "type": "semantic_version", @@ -93,8 +86,10 @@ ], "visible": false, "derives": { - "parents": ["MC_VERSION"], - "method": "extractVersionMajorMinor" + "parents": [ + "MC_VERSION" + ], + "method": "extractPaperApiVersion" } }, { @@ -106,7 +101,10 @@ "name": "MAIN_CLASS", "type": "class_fqn", "derives": { - "parents": ["BUILD_COORDS", "PLUGIN_NAME"], + "parents": [ + "BUILD_COORDS", + "PLUGIN_NAME" + ], "method": "suggestClassName" } }, @@ -115,71 +113,6 @@ "type": "boolean", "default": false }, - { - "name": "INCLUDE_PLUGIN_BOOTSTRAP", - "type": "boolean", - "default": false, - "visible": { - "dependsOn": ["USE_PAPER_MANIFEST"], - "condition": "$USE_PAPER_MANIFEST" - } - }, - { - "name": "USE_GREMLIN", - "type": "boolean", - "default": false - }, - { - "name": "INCLUDE_PLUGIN_LOADER", - "type": "boolean", - "default": "$USE_GREMLIN", - "visible": { - "dependsOn": ["USE_GREMLIN"], - "condition": "!$USE_GREMLIN" - } - }, - { - "name": "JAVA_PLUGIN_LOADER", - "type": "boolean", - "default": true, - "visible": { - "dependsOn": ["USE_GREMLIN", "LANGUAGE", "INCLUDE_PLUGIN_LOADER"], - "condition": "!$USE_GREMLIN && $LANGUAGE=='Kotlin' && $INCLUDE_PLUGIN_LOADER" - } - }, - { - "name": "USE_RESOURCE_FACTORY_PLUGIN", - "type": "boolean", - "default": false - }, - { - "name": "USE_PAPERWEIGHT_USERDEV", - "type": "boolean", - "default": false - }, - { - "name": "INCLUDE_SHADOW_PLUGIN", - "type": "boolean", - "default": "$LANGUAGE=='Kotlin'", - "visible": { - "dependsOn": ["LANGUAGE"], - "condition": "$LANGUAGE == 'Java'" - } - }, - { - "name": "INCLUDE_RUN_PAPER_PLUGIN", - "type": "boolean", - "default": true - }, - { - "name": "ACCEPT_EULA", - "type": "boolean", - "default": false, - "visible": { - "dependsOn": ["INCLUDE_RUN_PAPER_PLUGIN"], - "condition": "$INCLUDE_RUN_PAPER_PLUGIN" - } - }, { "label": "creator.ui.optional_settings.label", "collapsible": true, @@ -220,6 +153,126 @@ } ] }, + { + "label": "creator.ui.advanced_settings.label", + "collapsible": true, + "groupProperties": [ + { + "name": "USE_VERSION_CATALOG", + "type": "boolean", + "default": false, + "visible": { + "dependsOn": [ + "BUILD_SYSTEM" + ], + "condition": "$BUILD_SYSTEM == 'Gradle'" + } + }, + { + "name": "USE_GREMLIN", + "type": "boolean", + "default": false, + "visible": { + "dependsOn": [ + "BUILD_SYSTEM" + ], + "condition": "$BUILD_SYSTEM == 'Gradle'" + } + }, + { + "name": "INCLUDE_PLUGIN_BOOTSTRAP", + "type": "boolean", + "default": false, + "visible": { + "dependsOn": [ + "USE_PAPER_MANIFEST" + ], + "condition": "$USE_PAPER_MANIFEST" + } + }, + { + "name": "INCLUDE_PLUGIN_LOADER", + "type": "boolean", + "default": "$USE_GREMLIN", + "visible": { + "dependsOn": [ + "USE_GREMLIN" + ], + "condition": "!$USE_GREMLIN" + } + }, + { + "name": "JAVA_PLUGIN_LOADER", + "type": "boolean", + "default": true, + "visible": { + "dependsOn": [ + "USE_GREMLIN", + "LANGUAGE", + "INCLUDE_PLUGIN_LOADER" + ], + "condition": "!$USE_GREMLIN && $LANGUAGE=='Kotlin' && $INCLUDE_PLUGIN_LOADER" + } + }, + { + "name": "USE_RESOURCE_FACTORY_PLUGIN", + "type": "boolean", + "default": false, + "visible": { + "dependsOn": [ + "BUILD_SYSTEM" + ], + "condition": "$BUILD_SYSTEM == 'Gradle'" + } + }, + { + "name": "USE_PAPERWEIGHT_USERDEV", + "type": "boolean", + "default": false, + "visible": { + "dependsOn": [ + "BUILD_SYSTEM" + ], + "condition": "$BUILD_SYSTEM == 'Gradle'" + } + }, + { + "name": "INCLUDE_SHADOW_PLUGIN", + "type": "boolean", + "default": "$LANGUAGE=='Kotlin'", + "visible": { + "dependsOn": [ + "LANGUAGE", + "BUILD_SYSTEM" + ], + "condition": "$LANGUAGE == 'Java' && $BUILD_SYSTEM == 'Gradle'" + } + }, + { + "name": "INCLUDE_RUN_PAPER_PLUGIN", + "type": "boolean", + "default": true, + "visible": { + "dependsOn": [ + "BUILD_SYSTEM" + ], + "condition": "$BUILD_SYSTEM == 'Gradle'" + } + }, + { + "name": "ACCEPT_EULA", + "type": "boolean", + "default": false, + "visible": { + "dependsOn": [ + "INCLUDE_RUN_PAPER_PLUGIN", + "BUILD_SYSTEM" + ], + "condition": "$INCLUDE_RUN_PAPER_PLUGIN && $BUILD_SYSTEM == 'Gradle'" + } + } + ] + }, { "name": "JAVA_VERSION", "type": "integer", @@ -227,7 +280,9 @@ "default": 17, "visible": false, "derives": { - "parents": ["MC_VERSION"], + "parents": [ + "MC_VERSION" + ], "method": "recommendJavaVersionForMcVersion", "default": 17 } @@ -305,29 +360,31 @@ }, { "template": "BootstrapClass.java.ft", - "destination": "src/main/java/${MAIN_CLASS.packageName}/${MAIN_CLASS.className}Bootstrap.java", + "destination": "src/main/java/${MAIN_CLASS.packagePath}/${MAIN_CLASS.className}Bootstrap.java", "condition": "$INCLUDE_PLUGIN_BOOTSTRAP && $LANGUAGE=='Java'" }, { "template": "BootstrapClass.kt.ft", - "destination": "src/main/kotlin/${MAIN_CLASS.packageName}/${MAIN_CLASS.className}Bootstrap.kt", + "destination": "src/main/kotlin/${MAIN_CLASS.packagePath}/${MAIN_CLASS.className}Bootstrap.kt", "condition": "$INCLUDE_PLUGIN_BOOTSTRAP && $LANGUAGE=='Kotlin'" }, { "template": "LoaderClass.java.ft", - "destination": "src/main/java/${MAIN_CLASS.packageName}/${MAIN_CLASS.className}Loader.java", + "destination": "src/main/java/${MAIN_CLASS.packagePath}/${MAIN_CLASS.className}Loader.java", "condition": "!$USE_GREMLIN && $INCLUDE_PLUGIN_LOADER && $JAVA_PLUGIN_LOADER" }, { "template": "LoaderClass.kt.ft", - "destination": "src/main/kotlin/${MAIN_CLASS.packageName}/${MAIN_CLASS.className}Loader.kt", + "destination": "src/main/kotlin/${MAIN_CLASS.packagePath}/${MAIN_CLASS.className}Loader.kt", "condition": "!$USE_GREMLIN && $INCLUDE_PLUGIN_LOADER && !$JAVA_PLUGIN_LOADER" } ], "finalizers": [ { "type": "run_gradle_tasks", - "tasks": ["wrapper --gradle-version=latest"], + "tasks": [ + "wrapper --gradle-version=latest" + ], "condition": "$BUILD_SYSTEM=='Gradle'" }, { diff --git a/bukkit/plugin.yml.ft b/bukkit/plugin.yml.ft index f43b85f..b4f91ac 100644 --- a/bukkit/plugin.yml.ft +++ b/bukkit/plugin.yml.ft @@ -12,13 +12,13 @@ main: ${MAIN_CLASS} bootstrapper: ${MAIN_CLASS.packageName}.${MAIN_CLASS.className}Bootstrap #end #if (${INCLUDE_PLUGIN_LOADER} && !${USE_GREMLIN} && !${USE_PAPER_MANIFEST}) -paperPluginLoader = ${MAIN_CLASS.packageName}.${MAIN_CLASS.className}Loader +paperPluginLoader: ${MAIN_CLASS.packageName}.${MAIN_CLASS.className}Loader #elseif (${USE_GREMLIN} && !${USE_PAPER_MANIFEST}) -paperPluginLoader = xyz.jpenilla.gremlin.runtime.platformsupport.DefaultsPaperPluginLoader +paperPluginLoader: xyz.jpenilla.gremlin.runtime.platformsupport.DefaultsPaperPluginLoader #elseif (${INCLUDE_PLUGIN_LOADER} && !${USE_GREMLIN} && ${USE_PAPER_MANIFEST}) -loader = ${MAIN_CLASS.packageName}.${MAIN_CLASS.className}Loader +loader: ${MAIN_CLASS.packageName}.${MAIN_CLASS.className}Loader #elseif (${USE_GREMLIN} && ${USE_PAPER_MANIFEST}) -loader = xyz.jpenilla.gremlin.runtime.platformsupport.DefaultsPaperPluginLoader +loader: xyz.jpenilla.gremlin.runtime.platformsupport.DefaultsPaperPluginLoader #end #if (${API_VERSION}) api-version: '${API_VERSION}' diff --git a/bukkit/spigot.mcdev.template.json b/bukkit/spigot.mcdev.template.json index cd4d499..a2675a6 100644 --- a/bukkit/spigot.mcdev.template.json +++ b/bukkit/spigot.mcdev.template.json @@ -15,15 +15,6 @@ "Maven" ] }, - { - "name": "USE_VERSION_CATALOG", - "type": "boolean", - "default": false, - "visible": { - "dependsOn": ["BUILD_SYSTEM"], - "condition": "$BUILD_SYSTEM == 'Gradle'" - } - }, { "name": "LANGUAGE", "type": "string", @@ -32,6 +23,17 @@ "Kotlin" ] }, + { + "name": "KOTLIN_VERSION", + "type": "maven_artifact_version", + "parameters": { + "sourceUrl": "https://repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/maven-metadata.xml" + }, + "visible": { + "dependsOn": ["LANGUAGE"], + "condition": "$LANGUAGE == 'Kotlin'" + } + }, { "name": "MC_VERSION", "type": "semantic_version", @@ -59,17 +61,6 @@ ], "default": 0 }, - { - "name": "KOTLIN_VERSION", - "type": "maven_artifact_version", - "parameters": { - "sourceUrl": "https://repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/maven-metadata.xml" - }, - "visible": { - "dependsOn": ["LANGUAGE"], - "condition": "$LANGUAGE == 'Kotlin'" - } - }, { "name": "API_VERSION", "type": "semantic_version", @@ -99,26 +90,6 @@ "method": "suggestClassName" } }, - { - "name": "USE_RESOURCE_FACTORY_PLUGIN", - "type": "boolean", - "default": false - }, - { - "name": "USE_PAPERWEIGHT_USERDEV", - "type": "boolean", - "visible": false, - "default": false - }, - { - "name": "INCLUDE_SHADOW_PLUGIN", - "type": "boolean", - "default": "$LANGUAGE=='Kotlin'", - "visible": { - "dependsOn": ["LANGUAGE"], - "condition": "$LANGUAGE == 'Java'" - } - }, { "label": "creator.ui.optional_settings.label", "collapsible": true, @@ -159,6 +130,88 @@ } ] }, + { + "label": "creator.ui.advanced_settings.label", + "collapsible": true, + "groupProperties": [ + { + "name": "USE_VERSION_CATALOG", + "type": "boolean", + "default": false, + "visible": { + "dependsOn": [ + "BUILD_SYSTEM" + ], + "condition": "$BUILD_SYSTEM == 'Gradle'" + } + }, + { + "name": "USE_GREMLIN", + "type": "boolean", + "default": false, + "visible": false + }, + { + "name": "INCLUDE_PLUGIN_BOOTSTRAP", + "type": "boolean", + "default": false, + "visible": false + }, + { + "name": "INCLUDE_PLUGIN_LOADER", + "type": "boolean", + "default": false, + "visible": false + }, + { + "name": "JAVA_PLUGIN_LOADER", + "type": "boolean", + "default": true, + "visible": false + }, + { + "name": "USE_RESOURCE_FACTORY_PLUGIN", + "type": "boolean", + "default": false, + "visible": { + "dependsOn": [ + "BUILD_SYSTEM" + ], + "condition": "$BUILD_SYSTEM == 'Gradle'" + } + }, + { + "name": "USE_PAPERWEIGHT_USERDEV", + "type": "boolean", + "default": false, + "visible": false + }, + { + "name": "INCLUDE_SHADOW_PLUGIN", + "type": "boolean", + "default": "$LANGUAGE=='Kotlin'", + "visible": { + "dependsOn": [ + "LANGUAGE", + "BUILD_SYSTEM" + ], + "condition": "$LANGUAGE == 'Java' && $BUILD_SYSTEM == 'Gradle'" + } + }, + { + "name": "INCLUDE_RUN_PAPER_PLUGIN", + "type": "boolean", + "default": false, + "visible": false + }, + { + "name": "ACCEPT_EULA", + "type": "boolean", + "default": false, + "visible": false + } + ] + }, { "name": "JAVA_VERSION", "type": "integer", diff --git a/messages.properties b/messages.properties index 25dd7c6..0b01629 100644 --- a/messages.properties +++ b/messages.properties @@ -29,19 +29,11 @@ platform.neoforge.label=NeoForge platform.sponge.label=Sponge platform.velocity.label=Velocity +creator.ui.advanced_settings.label=Advanced Options + creator.ui.use_datagen.label=Use Datagen: creator.ui.use_paper_manifest.label=Use Paper Manifest: creator.ui.use_paper_manifest.warning=Paper plugins are still experimental, their usage is discouraged for general purpose development. -creator.ui.use_version_catalog.label=Use Gradle version catalog: -creator.ui.include_plugin_bootstrap.label=Include plugin bootstrap file: -creator.ui.use_gremlin.label=Use Gremlin for dependency resolution: -creator.ui.include_plugin_loader.label=Include plugin loader file: -creator.ui.use_resource_factory_plugin.label=Use the resource-factory Gradle plugin: -creator.ui.use_paperweight_userdev.label=Use the paperweight-userdev Gradle plugin: -creator.ui.include_shadow_plugin.label=Include the shadow Gradle plugin: -creator.ui.include_run_paper_plugin.label=Include the run-paper Gradle plugin: -creator.ui.accept_eula.label=Add eula-agree runServer JVM flag: -creator.ui.accept_eula.warning=By using this feature, you agree to the Minecraft EULA. creator.ui.language.label=Language: From 70d9b013fed31e66ab573f91322db81f0c5768fb Mon Sep 17 00:00:00 2001 From: Strokkur24 Date: Fri, 9 Jan 2026 18:38:21 +0100 Subject: [PATCH 08/20] fix: don't commit .idea folder and add .gitignore --- .gitignore | 1 + .idea/.gitignore | 10 ---------- .idea/discord.xml | 14 -------------- .idea/mcdev-templates.iml | 9 --------- .idea/misc.xml | 18 ------------------ .idea/modules.xml | 8 -------- .idea/vcs.xml | 6 ------ 7 files changed, 1 insertion(+), 65 deletions(-) create mode 100644 .gitignore delete mode 100644 .idea/.gitignore delete mode 100644 .idea/discord.xml delete mode 100644 .idea/mcdev-templates.iml delete mode 100644 .idea/misc.xml delete mode 100644 .idea/modules.xml delete mode 100644 .idea/vcs.xml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..485dee6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.idea diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index ab1f416..0000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,10 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Ignored default folder with query files -/queries/ -# Datasource local storage ignored files -/dataSources/ -/dataSources.local.xml -# Editor-based HTTP Client requests -/httpRequests/ diff --git a/.idea/discord.xml b/.idea/discord.xml deleted file mode 100644 index 104c42f..0000000 --- a/.idea/discord.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - \ No newline at end of file diff --git a/.idea/mcdev-templates.iml b/.idea/mcdev-templates.iml deleted file mode 100644 index d6ebd48..0000000 --- a/.idea/mcdev-templates.iml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index 39ec375..0000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index 4b63e8e..0000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 35eb1dd..0000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file From 4e184887f93ebf18ba0ca49cddcc43b7c6e7da51 Mon Sep 17 00:00:00 2001 From: Strokkur24 Date: Sun, 11 Jan 2026 15:34:03 +0100 Subject: [PATCH 09/20] fix: 6 after package name in kt files and incorrect indent --- bukkit/BootstrapClass.java.ft | 8 ++++---- bukkit/BootstrapClass.kt.ft | 8 ++++---- bukkit/LoaderClass.java.ft | 8 ++++---- bukkit/LoaderClass.kt.ft | 8 ++++---- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/bukkit/BootstrapClass.java.ft b/bukkit/BootstrapClass.java.ft index 4ab0311..42f786d 100644 --- a/bukkit/BootstrapClass.java.ft +++ b/bukkit/BootstrapClass.java.ft @@ -5,8 +5,8 @@ import io.papermc.paper.plugin.bootstrap.PluginBootstrap; class ${MAIN_CLASS.className}Bootstrap implements PluginBootstrap { - @Override - public void bootstrap(final BootstrapContext context) { - // Plugin bootstrap logic - } + @Override + public void bootstrap(final BootstrapContext context) { + // Plugin bootstrap logic + } } diff --git a/bukkit/BootstrapClass.kt.ft b/bukkit/BootstrapClass.kt.ft index 79cf18e..977cc31 100644 --- a/bukkit/BootstrapClass.kt.ft +++ b/bukkit/BootstrapClass.kt.ft @@ -1,11 +1,11 @@ -package ${MAIN_CLASS.packageName}6 +package ${MAIN_CLASS.packageName} import io.papermc.paper.plugin.bootstrap.BootstrapContext import io.papermc.paper.plugin.bootstrap.PluginBootstrap internal class ${MAIN_CLASS.className}Bootstrap : PluginBootstrap { - override fun bootstrap(context: BootstrapContext) { - // Plugin bootstrap logic - } + override fun bootstrap(context: BootstrapContext) { + // Plugin bootstrap logic + } } diff --git a/bukkit/LoaderClass.java.ft b/bukkit/LoaderClass.java.ft index cbf024f..c805acd 100644 --- a/bukkit/LoaderClass.java.ft +++ b/bukkit/LoaderClass.java.ft @@ -5,8 +5,8 @@ import io.papermc.paper.plugin.loader.PluginLoader; class ${MAIN_CLASS.className}Loader implements PluginLoader { - @Override - public void classloader(final PluginClasspathBuilder builder) { - // Add dynamically loaded libraries here - } + @Override + public void classloader(final PluginClasspathBuilder builder) { + // Add dynamically loaded libraries here + } } diff --git a/bukkit/LoaderClass.kt.ft b/bukkit/LoaderClass.kt.ft index 80bb1b0..f961d61 100644 --- a/bukkit/LoaderClass.kt.ft +++ b/bukkit/LoaderClass.kt.ft @@ -1,11 +1,11 @@ -package ${MAIN_CLASS.packageName}6 +package ${MAIN_CLASS.packageName} import io.papermc.paper.plugin.loader.PluginClasspathBuilder import io.papermc.paper.plugin.loader.PluginLoader internal class ${MAIN_CLASS.className}Loader : PluginLoader { - override fun classloader(builder: PluginClasspathBuilder) { - // Add dynamically loaded libraries here - } + override fun classloader(builder: PluginClasspathBuilder) { + // Add dynamically loaded libraries here + } } From 712123b88b421c1d28156531b095de1a4d8aff21 Mon Sep 17 00:00:00 2001 From: Strokkur24 Date: Sun, 11 Jan 2026 21:26:57 +0100 Subject: [PATCH 10/20] chore: bump to template version 2 --- architectury/.mcdev.template.json | 2 +- bukkit/build.gradle.kts.ft | 4 ++++ bukkit/libs.versions.toml.ft | 3 +++ bukkit/paper.mcdev.template.json | 2 +- bukkit/spigot.mcdev.template.json | 2 +- bungeecord/.mcdev.template.json | 2 +- fabric/.mcdev.template.json | 2 +- forge/.mcdev.template.json | 2 +- multiloader/.mcdev.template.json | 2 +- neoforge/.mcdev.template.json | 2 +- sponge/.mcdev.template.json | 2 +- velocity/.mcdev.template.json | 2 +- 12 files changed, 17 insertions(+), 10 deletions(-) diff --git a/architectury/.mcdev.template.json b/architectury/.mcdev.template.json index daf093c..9f649a8 100644 --- a/architectury/.mcdev.template.json +++ b/architectury/.mcdev.template.json @@ -1,5 +1,5 @@ { - "version": 1, + "version": 2, "group": "mod", "properties": [ { diff --git a/bukkit/build.gradle.kts.ft b/bukkit/build.gradle.kts.ft index 242bee8..a0447ce 100644 --- a/bukkit/build.gradle.kts.ft +++ b/bukkit/build.gradle.kts.ft @@ -157,10 +157,14 @@ tasks { #end #if ($INCLUDE_RUN_PAPER_PLUGIN) runServer { +#if ($USE_VERSION_CATALOG) + minecraftVersion(libs.versions.minecraft.get()) +#else // Configure the Minecraft version for our task. // This is the only required configuration besides applying the plugin. // Your plugin's jar (or shadowJar if present) will be used automatically. minecraftVersion("${MC_VERSION}") +#end #if ($ACCEPT_EULA) jvmArgs("-Xms2G", "-Xmx2G", "-Dcom.mojang.eula.agree=true") #else diff --git a/bukkit/libs.versions.toml.ft b/bukkit/libs.versions.toml.ft index 5f915b0..eea3557 100644 --- a/bukkit/libs.versions.toml.ft +++ b/bukkit/libs.versions.toml.ft @@ -4,6 +4,9 @@ paper-api = "${MC_VERSION}-R0.1-SNAPSHOT" #elseif ($IS_SPIGOT) spigot-api = "${MC_VERSION}-R0.1-SNAPSHOT" #end +#if ($INCLUDE_RUN_PAPER_PLUGIN) +minecraft = ${MC_VERSION} +#end #if ($USE_PAPERWEIGHT_USERDEV) paperweight-userdev = "2.0.0-beta.19" diff --git a/bukkit/paper.mcdev.template.json b/bukkit/paper.mcdev.template.json index c041ad9..6059b37 100644 --- a/bukkit/paper.mcdev.template.json +++ b/bukkit/paper.mcdev.template.json @@ -1,5 +1,5 @@ { - "version": 1, + "version": 2, "group": "plugin", "properties": [ { diff --git a/bukkit/spigot.mcdev.template.json b/bukkit/spigot.mcdev.template.json index a2675a6..0523b6d 100644 --- a/bukkit/spigot.mcdev.template.json +++ b/bukkit/spigot.mcdev.template.json @@ -1,5 +1,5 @@ { - "version": 1, + "version": 2, "group": "plugin", "properties": [ { diff --git a/bungeecord/.mcdev.template.json b/bungeecord/.mcdev.template.json index fd4473c..8e06ac2 100644 --- a/bungeecord/.mcdev.template.json +++ b/bungeecord/.mcdev.template.json @@ -1,5 +1,5 @@ { - "version": 1, + "version": 2, "group": "proxy", "properties": [ { diff --git a/fabric/.mcdev.template.json b/fabric/.mcdev.template.json index f30d680..807418a 100644 --- a/fabric/.mcdev.template.json +++ b/fabric/.mcdev.template.json @@ -1,5 +1,5 @@ { - "version": 1, + "version": 2, "group": "mod", "properties": [ { diff --git a/forge/.mcdev.template.json b/forge/.mcdev.template.json index 4115de8..26e3cf0 100644 --- a/forge/.mcdev.template.json +++ b/forge/.mcdev.template.json @@ -1,5 +1,5 @@ { - "version": 1, + "version": 2, "group": "mod", "properties": [ { diff --git a/multiloader/.mcdev.template.json b/multiloader/.mcdev.template.json index f3dc386..be1d1b4 100644 --- a/multiloader/.mcdev.template.json +++ b/multiloader/.mcdev.template.json @@ -1,5 +1,5 @@ { - "version": 1, + "version": 2, "group": "mod", "properties": [ { diff --git a/neoforge/.mcdev.template.json b/neoforge/.mcdev.template.json index 48c357e..489d229 100644 --- a/neoforge/.mcdev.template.json +++ b/neoforge/.mcdev.template.json @@ -1,5 +1,5 @@ { - "version": 1, + "version": 2, "group": "mod", "properties": [ { diff --git a/sponge/.mcdev.template.json b/sponge/.mcdev.template.json index 2a22716..29ed0e6 100644 --- a/sponge/.mcdev.template.json +++ b/sponge/.mcdev.template.json @@ -1,5 +1,5 @@ { - "version": 1, + "version": 2, "group": "plugin", "properties": [ { diff --git a/velocity/.mcdev.template.json b/velocity/.mcdev.template.json index 6cc3e0f..b38d8ab 100644 --- a/velocity/.mcdev.template.json +++ b/velocity/.mcdev.template.json @@ -1,5 +1,5 @@ { - "version": 1, + "version": 2, "group": "proxy", "properties": [ { From 55d285bc09121e7f80af0ea967cece5eb357d667 Mon Sep 17 00:00:00 2001 From: Strokkur24 Date: Sun, 11 Jan 2026 22:40:14 +0100 Subject: [PATCH 11/20] feat: add automatic Paper version fetching --- bukkit/paper.mcdev.template.json | 42 +------------------------------- 1 file changed, 1 insertion(+), 41 deletions(-) diff --git a/bukkit/paper.mcdev.template.json b/bukkit/paper.mcdev.template.json index 6059b37..8279386 100644 --- a/bukkit/paper.mcdev.template.json +++ b/bukkit/paper.mcdev.template.json @@ -38,52 +38,13 @@ }, { "name": "MC_VERSION", - "type": "semantic_version", + "type": "paper_versions", "forceDropdown": true, - "options": [ - "1.21.11", - "1.21.10", - "1.21.9", - "1.21.8", - "1.21.7", - "1.21.6", - "1.21.5", - "1.21.4", - "1.21.3", - "1.21.1", - "1.21", - "1.20.6", - "1.20.4", - "1.20.3", - "1.20.2", - "1.20.1", - "1.19.4", - "1.18.2" - ], "default": 0 }, { "name": "API_VERSION", "type": "semantic_version", - "options": [ - "1.21.11", - "1.21.10", - "1.21.9", - "1.21.8", - "1.21.7", - "1.21.6", - "1.21.5", - "1.21.4", - "1.21.3", - "1.21.1", - "1.21", - "1.20.6", - "1.20.5", - "1.20", - "1.19", - "1.18", - "1.17" - ], "visible": false, "derives": { "parents": [ @@ -277,7 +238,6 @@ "name": "JAVA_VERSION", "type": "integer", "order": 20, - "default": 17, "visible": false, "derives": { "parents": [ From 470e143c94b7d078ef285b76cee6843a530c780b Mon Sep 17 00:00:00 2001 From: Strokkur24 Date: Sat, 17 Jan 2026 14:46:18 +0100 Subject: [PATCH 12/20] Add dynamic version fetching for Gradle plugins and fix spigot template --- bukkit/build.gradle.kts.ft | 12 +++---- bukkit/libs.versions.toml.ft | 12 +++---- bukkit/paper.mcdev.template.json | 55 ++++++++++++++++++++++++++++++ bukkit/spigot.mcdev.template.json | 56 ++++++++++--------------------- 4 files changed, 85 insertions(+), 50 deletions(-) diff --git a/bukkit/build.gradle.kts.ft b/bukkit/build.gradle.kts.ft index a0447ce..4547108 100644 --- a/bukkit/build.gradle.kts.ft +++ b/bukkit/build.gradle.kts.ft @@ -28,21 +28,21 @@ plugins { #end #else #if ($USE_PAPERWEIGHT_USERDEV) - id("io.papermc.paperweight.userdev") version "2.0.0-beta.19" + id("io.papermc.paperweight.userdev") version "$PAPERWEIGHT_VERSION" #end #if ($INCLUDE_SHADOW_PLUGIN) - id("com.gradleup.shadow") version "9.3.1" + id("com.gradleup.shadow") version "$SHADOW_VERSION" #end #if ($INCLUDE_RUN_PAPER_PLUGIN) - id("xyz.jpenilla.run-paper") version "3.0.2" + id("xyz.jpenilla.run-paper") version "$RUN_PAPER_VERSION" #end #if ($USE_RESOURCE_FACTORY_PLUGIN && $USE_PAPER_MANIFEST) - id("xyz.jpenilla.resource-factory-paper-convention") version "1.3.1" + id("xyz.jpenilla.resource-factory-paper-convention") version "$RESOURCE_FACTORY_VERSION" #elseif ($USE_RESOURCE_FACTORY_PLUGIN && !$USE_PAPER_MANIFEST) - id("xyz.jpenilla.resource-factory-bukkit-convention") version "1.3.1" + id("xyz.jpenilla.resource-factory-bukkit-convention") version "$RESOURCE_FACTORY_VERSION" #end #if ($USE_GREMLIN) - id("xyz.jpenilla.gremlin-gradle") version "0.0.9" + id("xyz.jpenilla.gremlin-gradle") version "$GREMLIN_VERSION" #end #end } diff --git a/bukkit/libs.versions.toml.ft b/bukkit/libs.versions.toml.ft index eea3557..b88fcb7 100644 --- a/bukkit/libs.versions.toml.ft +++ b/bukkit/libs.versions.toml.ft @@ -5,23 +5,23 @@ paper-api = "${MC_VERSION}-R0.1-SNAPSHOT" spigot-api = "${MC_VERSION}-R0.1-SNAPSHOT" #end #if ($INCLUDE_RUN_PAPER_PLUGIN) -minecraft = ${MC_VERSION} +minecraft = "${MC_VERSION}" #end #if ($USE_PAPERWEIGHT_USERDEV) -paperweight-userdev = "2.0.0-beta.19" +paperweight-userdev = "$PAPERWEIGHT_VERSION" #end #if ($USE_GREMLIN || $INCLUDE_SHADOW_PLUGIN) -shadow = "9.3.1" +shadow = "$SHADOW_VERSION" #end #if ($INCLUDE_RUN_PAPER_PLUGIN) -run-task = "3.0.2" +run-task = "$RUN_PAPER_VERSION" #end #if ($USE_RESOURCE_FACTORY_PLUGIN) -resource-factory = "1.3.1" +resource-factory = "$RESOURCE_FACTORY_VERSION" #end #if ($USE_GREMLIN) -gremlin = "0.0.9" +gremlin = "$GREMLIN_VERSION" #end [libraries] diff --git a/bukkit/paper.mcdev.template.json b/bukkit/paper.mcdev.template.json index 8279386..b5fda6d 100644 --- a/bukkit/paper.mcdev.template.json +++ b/bukkit/paper.mcdev.template.json @@ -140,6 +140,17 @@ "condition": "$BUILD_SYSTEM == 'Gradle'" } }, + { + "name": "GREMLIN_VERSION", + "type": "maven_artifact_version", + "parameters": { + "sourceUrl": "https://plugins.gradle.org/m2/xyz/jpenilla/gremlin-gradle/maven-metadata.xml" + }, + "visible": { + "dependsOn": [ "USE_GREMLIN" ], + "condition": "$USE_GREMLIN" + } + }, { "name": "INCLUDE_PLUGIN_BOOTSTRAP", "type": "boolean", @@ -186,6 +197,17 @@ "condition": "$BUILD_SYSTEM == 'Gradle'" } }, + { + "name": "RESOURCE_FACTORY_VERSION", + "type": "maven_artifact_version", + "parameters": { + "sourceUrl": "https://plugins.gradle.org/m2/xyz/jpenilla/resource-factory/maven-metadata.xml" + }, + "visible": { + "dependsOn": [ "USE_RESOURCE_FACTORY_PLUGIN" ], + "condition": "$USE_RESOURCE_FACTORY_PLUGIN" + } + }, { "name": "USE_PAPERWEIGHT_USERDEV", "type": "boolean", @@ -197,6 +219,17 @@ "condition": "$BUILD_SYSTEM == 'Gradle'" } }, + { + "name": "PAPERWEIGHT_VERSION", + "type": "maven_artifact_version", + "parameters": { + "sourceUrl": "https://plugins.gradle.org/m2/io/papermc/paperweight/paperweight-userdev/maven-metadata.xml" + }, + "visible": { + "dependsOn": [ "USE_PAPERWEIGHT_USERDEV" ], + "condition": "$USE_PAPERWEIGHT_USERDEV" + } + }, { "name": "INCLUDE_SHADOW_PLUGIN", "type": "boolean", @@ -209,6 +242,17 @@ "condition": "$LANGUAGE == 'Java' && $BUILD_SYSTEM == 'Gradle'" } }, + { + "name": "SHADOW_VERSION", + "type": "maven_artifact_version", + "parameters": { + "sourceUrl": "https://repo.maven.apache.org/maven2/com/gradleup/shadow/shadow-gradle-plugin/maven-metadata.xml" + }, + "visible": { + "dependsOn": [ "INCLUDE_SHADOW_PLUGIN" ], + "condition": "$INCLUDE_SHADOW_PLUGIN" + } + }, { "name": "INCLUDE_RUN_PAPER_PLUGIN", "type": "boolean", @@ -220,6 +264,17 @@ "condition": "$BUILD_SYSTEM == 'Gradle'" } }, + { + "name": "RUN_PAPER_VERSION", + "type": "maven_artifact_version", + "parameters": { + "sourceUrl": "https://plugins.gradle.org/m2/xyz/jpenilla/run-paper/xyz.jpenilla.run-paper.gradle.plugin/maven-metadata.xml" + }, + "visible": { + "dependsOn": [ "INCLUDE_RUN_PAPER_PLUGIN" ], + "condition": "$INCLUDE_RUN_PAPER_PLUGIN" + } + }, { "name": "ACCEPT_EULA", "type": "boolean", diff --git a/bukkit/spigot.mcdev.template.json b/bukkit/spigot.mcdev.template.json index 0523b6d..ece2822 100644 --- a/bukkit/spigot.mcdev.template.json +++ b/bukkit/spigot.mcdev.template.json @@ -145,30 +145,6 @@ "condition": "$BUILD_SYSTEM == 'Gradle'" } }, - { - "name": "USE_GREMLIN", - "type": "boolean", - "default": false, - "visible": false - }, - { - "name": "INCLUDE_PLUGIN_BOOTSTRAP", - "type": "boolean", - "default": false, - "visible": false - }, - { - "name": "INCLUDE_PLUGIN_LOADER", - "type": "boolean", - "default": false, - "visible": false - }, - { - "name": "JAVA_PLUGIN_LOADER", - "type": "boolean", - "default": true, - "visible": false - }, { "name": "USE_RESOURCE_FACTORY_PLUGIN", "type": "boolean", @@ -181,10 +157,15 @@ } }, { - "name": "USE_PAPERWEIGHT_USERDEV", - "type": "boolean", - "default": false, - "visible": false + "name": "RESOURCE_FACTORY_VERSION", + "type": "maven_artifact_version", + "parameters": { + "sourceUrl": "https://plugins.gradle.org/m2/xyz/jpenilla/resource-factory/maven-metadata.xml" + }, + "visible": { + "dependsOn": [ "USE_RESOURCE_FACTORY_PLUGIN" ], + "condition": "$USE_RESOURCE_FACTORY_PLUGIN" + } }, { "name": "INCLUDE_SHADOW_PLUGIN", @@ -199,16 +180,15 @@ } }, { - "name": "INCLUDE_RUN_PAPER_PLUGIN", - "type": "boolean", - "default": false, - "visible": false - }, - { - "name": "ACCEPT_EULA", - "type": "boolean", - "default": false, - "visible": false + "name": "SHADOW_VERSION", + "type": "maven_artifact_version", + "parameters": { + "sourceUrl": "https://repo.maven.apache.org/maven2/com/gradleup/shadow/shadow-gradle-plugin/maven-metadata.xml" + }, + "visible": { + "dependsOn": [ "INCLUDE_SHADOW_PLUGIN" ], + "condition": "$INCLUDE_SHADOW_PLUGIN" + } } ] }, From 25ecc04c1f44194f2264d1cfd0f3435e6063ced2 Mon Sep 17 00:00:00 2001 From: Strokkur24 Date: Sat, 17 Jan 2026 14:58:11 +0100 Subject: [PATCH 13/20] Add kotlin version to the version catalog --- bukkit/build.gradle.kts.ft | 2 +- bukkit/libs.versions.toml.ft | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/bukkit/build.gradle.kts.ft b/bukkit/build.gradle.kts.ft index 4547108..516b18f 100644 --- a/bukkit/build.gradle.kts.ft +++ b/bukkit/build.gradle.kts.ft @@ -6,7 +6,7 @@ plugins { #if ($LANGUAGE=='Java') id("java-library") #else - kotlin("jvm") version "${KOTLIN_VERSION}" + kotlin("jvm") version #if ($USE_VERSION_CATALOG) libs.versions.kotlin.get() #else "${KOTLIN_VERSION}" #end #end #if ($USE_VERSION_CATALOG) #if ($USE_PAPERWEIGHT_USERDEV) diff --git a/bukkit/libs.versions.toml.ft b/bukkit/libs.versions.toml.ft index b88fcb7..38cde06 100644 --- a/bukkit/libs.versions.toml.ft +++ b/bukkit/libs.versions.toml.ft @@ -1,4 +1,8 @@ [versions] +#if ($LANGUAGE=='Kotlin') +kotlin = "$KOTLIN_VERSION" + +#end #if ($IS_PAPER) paper-api = "${MC_VERSION}-R0.1-SNAPSHOT" #elseif ($IS_SPIGOT) @@ -31,7 +35,7 @@ paper-api = { module = "io.papermc.paper:paper-api", version.ref = "paper-api" } spigot-api = { module = "org.spigotmc:spigot-api", version.ref = "spigot-api" } #end #if ($LANGUAGE=='Kotlin') -kotlin-stdlib = { module = "org.jetbrains.kotlin:kotlin-stdlib-jdk8" } +kotlin-stdlib = { module = "org.jetbrains.kotlin:kotlin-stdlib-jdk8", version.ref = "kotlin" } #end #if ($USE_GREMLIN) gremlin-runtime = { module = "xyz.jpenilla:gremlin-runtime", version.ref = "gremlin" } From f12b5491d9c3a9e0e01d8e440f7e18d1addf84bd Mon Sep 17 00:00:00 2001 From: Strokkur24 Date: Sat, 17 Jan 2026 15:57:19 +0100 Subject: [PATCH 14/20] Some final fixes --- bukkit/build.gradle.kts.ft | 10 +++++----- bukkit/paper.mcdev.template.json | 13 ++++++++++--- bukkit/spigot.mcdev.template.json | 7 +++++++ 3 files changed, 22 insertions(+), 8 deletions(-) diff --git a/bukkit/build.gradle.kts.ft b/bukkit/build.gradle.kts.ft index 516b18f..a9d64fd 100644 --- a/bukkit/build.gradle.kts.ft +++ b/bukkit/build.gradle.kts.ft @@ -5,14 +5,14 @@ import xyz.jpenilla.resourcefactory.bukkit.BukkitPluginYaml plugins { #if ($LANGUAGE=='Java') id("java-library") -#else +#elseif ($LANGUAGE == 'Kotlin') kotlin("jvm") version #if ($USE_VERSION_CATALOG) libs.versions.kotlin.get() #else "${KOTLIN_VERSION}" #end #end #if ($USE_VERSION_CATALOG) #if ($USE_PAPERWEIGHT_USERDEV) - alias(libs.plugin.paperweight.userdev) + alias(libs.plugins.paperweight.userdev) #end -#if ($USE_GREMLIN || $INCLUDE_SHADOW_PLUGIN) +#if ($USE_GREMLIN || $INCLUDE_SHADOW_PLUGIN || $LANGUAGE == 'Kotlin') alias(libs.plugins.shadow) #end #if ($INCLUDE_RUN_PAPER_PLUGIN) @@ -30,7 +30,7 @@ plugins { #if ($USE_PAPERWEIGHT_USERDEV) id("io.papermc.paperweight.userdev") version "$PAPERWEIGHT_VERSION" #end -#if ($INCLUDE_SHADOW_PLUGIN) +#if ($USE_GREMLIN || $INCLUDE_SHADOW_PLUGIN || $LANGUAGE == 'Kotlin') id("com.gradleup.shadow") version "$SHADOW_VERSION" #end #if ($INCLUDE_RUN_PAPER_PLUGIN) @@ -150,7 +150,7 @@ kotlin { #if ($USE_GREMLIN || $INCLUDE_SHADOW_PLUGIN || $INCLUDE_RUN_PAPER_PLUGIN || $!USE_RESOURCE_FACTORY_PLUGIN) tasks { -#if ($USE_GREMLIN || $INCLUDE_SHADOW_PLUGIN) +#if ($USE_GREMLIN || $INCLUDE_SHADOW_PLUGIN || $LANGUAGE == 'Kotlin') build { dependsOn(shadowJar) } diff --git a/bukkit/paper.mcdev.template.json b/bukkit/paper.mcdev.template.json index b5fda6d..eda06dd 100644 --- a/bukkit/paper.mcdev.template.json +++ b/bukkit/paper.mcdev.template.json @@ -239,7 +239,7 @@ "LANGUAGE", "BUILD_SYSTEM" ], - "condition": "$LANGUAGE == 'Java' && $BUILD_SYSTEM == 'Gradle'" + "condition": "!$USE_GREMLIN && $LANGUAGE != 'Kotlin' && $BUILD_SYSTEM == 'Gradle'" } }, { @@ -249,8 +249,8 @@ "sourceUrl": "https://repo.maven.apache.org/maven2/com/gradleup/shadow/shadow-gradle-plugin/maven-metadata.xml" }, "visible": { - "dependsOn": [ "INCLUDE_SHADOW_PLUGIN" ], - "condition": "$INCLUDE_SHADOW_PLUGIN" + "dependsOn": [ "LANGUAGE", "INCLUDE_SHADOW_PLUGIN" ], + "condition": "$USE_GREMLIN || $LANGUAGE == 'Kotlin' || $INCLUDE_SHADOW_PLUGIN" } }, { @@ -326,6 +326,13 @@ "destination": ".gitattributes", "condition": "$USE_GIT" }, + { + "template": "../gradle-wrapper.properties.ft", + "destination": "gradle/wrapper/gradle-wrapper.properties", + "properties": { + "GRADLE_VERSION": "9.3.0" + } + }, { "template": "build.gradle.kts.ft", "destination": "build.gradle.kts", diff --git a/bukkit/spigot.mcdev.template.json b/bukkit/spigot.mcdev.template.json index ece2822..42329e4 100644 --- a/bukkit/spigot.mcdev.template.json +++ b/bukkit/spigot.mcdev.template.json @@ -228,6 +228,13 @@ "destination": ".gitattributes", "condition": "$USE_GIT" }, + { + "template": "../gradle-wrapper.properties.ft", + "destination": "gradle/wrapper/gradle-wrapper.properties", + "properties": { + "GRADLE_VERSION": "9.3.0" + } + }, { "template": "build.gradle.kts.ft", "destination": "build.gradle.kts", From 1f779ec96530b45206a2251f552900515f1b283b Mon Sep 17 00:00:00 2001 From: Strokkur24 Date: Sat, 17 Jan 2026 19:51:25 +0100 Subject: [PATCH 15/20] Move shadow plugin option under gremlin plugin option --- bukkit/paper.mcdev.template.json | 47 ++++++++++++++++---------------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/bukkit/paper.mcdev.template.json b/bukkit/paper.mcdev.template.json index eda06dd..2c96a35 100644 --- a/bukkit/paper.mcdev.template.json +++ b/bukkit/paper.mcdev.template.json @@ -151,6 +151,30 @@ "condition": "$USE_GREMLIN" } }, + { + "name": "INCLUDE_SHADOW_PLUGIN", + "type": "boolean", + "default": "$LANGUAGE=='Kotlin'", + "visible": { + "dependsOn": [ + "LANGUAGE", + "BUILD_SYSTEM", + "USE_GREMLIN" + ], + "condition": "!$USE_GREMLIN && $LANGUAGE != 'Kotlin' && $BUILD_SYSTEM == 'Gradle'" + } + }, + { + "name": "SHADOW_VERSION", + "type": "maven_artifact_version", + "parameters": { + "sourceUrl": "https://repo.maven.apache.org/maven2/com/gradleup/shadow/shadow-gradle-plugin/maven-metadata.xml" + }, + "visible": { + "dependsOn": [ "LANGUAGE", "INCLUDE_SHADOW_PLUGIN" ], + "condition": "$USE_GREMLIN || $LANGUAGE == 'Kotlin' || $INCLUDE_SHADOW_PLUGIN" + } + }, { "name": "INCLUDE_PLUGIN_BOOTSTRAP", "type": "boolean", @@ -230,29 +254,6 @@ "condition": "$USE_PAPERWEIGHT_USERDEV" } }, - { - "name": "INCLUDE_SHADOW_PLUGIN", - "type": "boolean", - "default": "$LANGUAGE=='Kotlin'", - "visible": { - "dependsOn": [ - "LANGUAGE", - "BUILD_SYSTEM" - ], - "condition": "!$USE_GREMLIN && $LANGUAGE != 'Kotlin' && $BUILD_SYSTEM == 'Gradle'" - } - }, - { - "name": "SHADOW_VERSION", - "type": "maven_artifact_version", - "parameters": { - "sourceUrl": "https://repo.maven.apache.org/maven2/com/gradleup/shadow/shadow-gradle-plugin/maven-metadata.xml" - }, - "visible": { - "dependsOn": [ "LANGUAGE", "INCLUDE_SHADOW_PLUGIN" ], - "condition": "$USE_GREMLIN || $LANGUAGE == 'Kotlin' || $INCLUDE_SHADOW_PLUGIN" - } - }, { "name": "INCLUDE_RUN_PAPER_PLUGIN", "type": "boolean", From cb9c8c1806bcc47f57adbcadedb1e687ed932832 Mon Sep 17 00:00:00 2001 From: Strokkur24 Date: Sun, 18 Jan 2026 12:09:30 +0100 Subject: [PATCH 16/20] Update buildscripts for latest plugin changes --- bukkit/build.gradle.kts.ft | 82 +++++++------- bukkit/libs.versions.toml.ft | 38 +++---- bukkit/paper.mcdev.template.json | 178 +++++++++++-------------------- messages.properties | 2 +- 4 files changed, 126 insertions(+), 174 deletions(-) diff --git a/bukkit/build.gradle.kts.ft b/bukkit/build.gradle.kts.ft index a9d64fd..64adeca 100644 --- a/bukkit/build.gradle.kts.ft +++ b/bukkit/build.gradle.kts.ft @@ -1,4 +1,4 @@ -#if ($USE_RESOURCE_FACTORY_PLUGIN && $LOAD_AT) +#if ($RESOURCE_FACTORY_PLUGIN.enabled && $LOAD_AT) import xyz.jpenilla.resourcefactory.bukkit.BukkitPluginYaml #end @@ -9,40 +9,40 @@ plugins { kotlin("jvm") version #if ($USE_VERSION_CATALOG) libs.versions.kotlin.get() #else "${KOTLIN_VERSION}" #end #end #if ($USE_VERSION_CATALOG) -#if ($USE_PAPERWEIGHT_USERDEV) +#if ($PAPERWEIGHT_USERDEV_PLUGIN.enabled) alias(libs.plugins.paperweight.userdev) #end -#if ($USE_GREMLIN || $INCLUDE_SHADOW_PLUGIN || $LANGUAGE == 'Kotlin') +#if ($GREMLIN_PLUGIN.enabled || $SHADOW_PLUGIN.enabled || $LANGUAGE == 'Kotlin') alias(libs.plugins.shadow) #end -#if ($INCLUDE_RUN_PAPER_PLUGIN) +#if ($RUN_PAPER_PLUGIN.enabled) alias(libs.plugins.run.paper) #end -#if ($USE_RESOURCE_FACTORY_PLUGIN && $USE_PAPER_MANIFEST) +#if ($RESOURCE_FACTORY_PLUGIN.enabled && $USE_PAPER_MANIFEST) alias(libs.plugins.resource.factory.paper) -#elseif ($USE_RESOURCE_FACTORY_PLUGIN && !$USE_PAPER_MANIFEST) +#elseif ($RESOURCE_FACTORY_PLUGIN.enabled && !$USE_PAPER_MANIFEST) alias(libs.plugins.resource.factory.bukkit) #end -#if ($USE_GREMLIN) +#if ($GREMLIN_PLUGIN.enabled) alias(libs.plugins.gremlin.gradle) #end #else -#if ($USE_PAPERWEIGHT_USERDEV) - id("io.papermc.paperweight.userdev") version "$PAPERWEIGHT_VERSION" +#if ($PAPERWEIGHT_USERDEV_PLUGIN.enabled) + id("io.papermc.paperweight.userdev") version "$PAPERWEIGHT_USERDEV_PLUGIN.version" #end -#if ($USE_GREMLIN || $INCLUDE_SHADOW_PLUGIN || $LANGUAGE == 'Kotlin') - id("com.gradleup.shadow") version "$SHADOW_VERSION" +#if ($GREMLIN_PLUGIN.enabled || $SHADOW_PLUGIN.enabled || $LANGUAGE == 'Kotlin') + id("com.gradleup.shadow") version "$SHADOW_PLUGIN.version" #end -#if ($INCLUDE_RUN_PAPER_PLUGIN) - id("xyz.jpenilla.run-paper") version "$RUN_PAPER_VERSION" +#if ($RUN_PAPER_PLUGIN.enabled) + id("xyz.jpenilla.run-paper") version "$RUN_PAPER_PLUGIN.version" #end -#if ($USE_RESOURCE_FACTORY_PLUGIN && $USE_PAPER_MANIFEST) - id("xyz.jpenilla.resource-factory-paper-convention") version "$RESOURCE_FACTORY_VERSION" -#elseif ($USE_RESOURCE_FACTORY_PLUGIN && !$USE_PAPER_MANIFEST) - id("xyz.jpenilla.resource-factory-bukkit-convention") version "$RESOURCE_FACTORY_VERSION" +#if ($RESOURCE_FACTORY_PLUGIN.enabled && $USE_PAPER_MANIFEST) + id("xyz.jpenilla.resource-factory-paper-convention") version "$RESOURCE_FACTORY_PLUGIN.version" +#elseif ($RESOURCE_FACTORY_PLUGIN.enabled && !$USE_PAPER_MANIFEST) + id("xyz.jpenilla.resource-factory-bukkit-convention") version "$RESOURCE_FACTORY_PLUGIN.version" #end -#if ($USE_GREMLIN) - id("xyz.jpenilla.gremlin-gradle") version "$GREMLIN_VERSION" +#if ($GREMLIN_PLUGIN.enabled) + id("xyz.jpenilla.gremlin-gradle") version "$GREMLIN_PLUGIN.version" #end #end } @@ -51,11 +51,11 @@ repositories { mavenCentral() #if ($IS_SPIGOT) maven("https://hub.spigotmc.org/nexus/content/repositories/snapshots/") -#elseif ($IS_PAPER && !$USE_PAPERWEIGHT_USERDEV) +#elseif ($IS_PAPER && !$PAPERWEIGHT_USERDEV_PLUGIN.enabled) maven("https://repo.papermc.io/repository/maven-public/") #end } -#if ($USE_GREMLIN) +#if ($GREMLIN_PLUGIN.enabled) configurations.compileOnly { extendsFrom(configurations.runtimeDownload.get()) @@ -67,31 +67,31 @@ dependencies { compileOnly("org.spigotmc:spigot-api:${MC_VERSION}-R0.1-SNAPSHOT") #elseif ($IS_SPIGOT && $USE_VERSION_CATALOG) compileOnly(libs.spigot.api) -#elseif ($IS_PAPER && !$USE_PAPERWEIGHT_USERDEV && !$USE_VERSION_CATALOG) +#elseif ($IS_PAPER && !$PAPERWEIGHT_USERDEV_PLUGIN.enabled && !$USE_VERSION_CATALOG) compileOnly("io.papermc.paper:paper-api:${MC_VERSION}-R0.1-SNAPSHOT") -#elseif ($IS_PAPER && !$USE_PAPERWEIGHT_USERDEV && $USE_VERSION_CATALOG) +#elseif ($IS_PAPER && !$PAPERWEIGHT_USERDEV_PLUGIN.enabled && $USE_VERSION_CATALOG) compileOnly(libs.paper.api) -#elseif ($IS_PAPER && $USE_PAPERWEIGHT_USERDEV && !$USE_VERSION_CATALOG) +#elseif ($IS_PAPER && $PAPERWEIGHT_USERDEV_PLUGIN.enabled && !$USE_VERSION_CATALOG) paperweight.paperDevBundle("${MC_VERSION}-R0.1-SNAPSHOT") -#elseif ($IS_PAPER && $USE_PAPERWEIGHT_USERDEV && $USE_VERSION_CATALOG) +#elseif ($IS_PAPER && $PAPERWEIGHT_USERDEV_PLUGIN.enabled && $USE_VERSION_CATALOG) paperweight.paperDevBundle(libs.versions.paper.api.get()) #end -#if ($USE_GREMLIN && !$USE_VERSION_CATALOG) - implementation("xyz.jpenilla:gremlin-runtime:0.0.9") -#elseif ($USE_GREMLIN && $USE_VERSION_CATALOG) +#if ($GREMLIN_PLUGIN.enabled && !$USE_VERSION_CATALOG) + implementation("xyz.jpenilla:gremlin-runtime:$GREMLIN_PLUGIN.version") +#elseif ($GREMLIN_PLUGIN.enabled && $USE_VERSION_CATALOG) implementation(libs.gremlin.runtime) #end -#if ($LANGUAGE=='Kotlin' && !$USE_VERSION_CATALOG && !$USE_GREMLIN) +#if ($LANGUAGE=='Kotlin' && !$USE_VERSION_CATALOG && !$GREMLIN_PLUGIN.enabled) implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") -#elseif ($LANGUAGE=='Kotlin' && $USE_VERSION_CATALOG && !$USE_GREMLIN) +#elseif ($LANGUAGE=='Kotlin' && $USE_VERSION_CATALOG && !$GREMLIN_PLUGIN.enabled) implementation(libs.kotlin.stdlib) -#elseif ($LANGUAGE=='Kotlin' && !$USE_VERSION_CATALOG && $USE_GREMLIN) +#elseif ($LANGUAGE=='Kotlin' && !$USE_VERSION_CATALOG && $GREMLIN_PLUGIN.enabled) runtimeDownload("org.jetbrains.kotlin:kotlin-stdlib-jdk8") -#elseif ($LANGUAGE=='Kotlin' && $USE_VERSION_CATALOG && $USE_GREMLIN) +#elseif ($LANGUAGE=='Kotlin' && $USE_VERSION_CATALOG && $GREMLIN_PLUGIN.enabled) runtimeDownload(libs.kotlin.stdlib) #end } -#if ($USE_RESOURCE_FACTORY_PLUGIN) +#if ($RESOURCE_FACTORY_PLUGIN.enabled) #if ($USE_PAPER_MANIFEST) paperPluginYaml { @@ -111,13 +111,13 @@ bukkitPluginYaml { #if (${INCLUDE_PLUGIN_BOOTSTRAP}) bootstrapper = "${MAIN_CLASS.packageName}.${MAIN_CLASS.className}Bootstrap" #end -#if (${INCLUDE_PLUGIN_LOADER} && !${USE_GREMLIN} && !${USE_PAPER_MANIFEST}) +#if (${INCLUDE_PLUGIN_LOADER} && !${GREMLIN_PLUGIN.enabled} && !${USE_PAPER_MANIFEST}) paperPluginLoader = "${MAIN_CLASS.packageName}.${MAIN_CLASS.className}Loader" -#elseif (${USE_GREMLIN} && !${USE_PAPER_MANIFEST}) +#elseif (${GREMLIN_PLUGIN.enabled} && !${USE_PAPER_MANIFEST}) paperPluginLoader = "xyz.jpenilla.gremlin.runtime.platformsupport.DefaultsPaperPluginLoader" -#elseif (${INCLUDE_PLUGIN_LOADER} && !${USE_GREMLIN} && ${USE_PAPER_MANIFEST}) +#elseif (${INCLUDE_PLUGIN_LOADER} && !${GREMLIN_PLUGIN.enabled} && ${USE_PAPER_MANIFEST}) loader = "${MAIN_CLASS.packageName}.${MAIN_CLASS.className}Loader" -#elseif (${USE_GREMLIN} && ${USE_PAPER_MANIFEST}) +#elseif (${GREMLIN_PLUGIN.enabled} && ${USE_PAPER_MANIFEST}) loader = "xyz.jpenilla.gremlin.runtime.platformsupport.DefaultsPaperPluginLoader" #end #if ($API_VERSION) @@ -148,14 +148,14 @@ kotlin { } #end -#if ($USE_GREMLIN || $INCLUDE_SHADOW_PLUGIN || $INCLUDE_RUN_PAPER_PLUGIN || $!USE_RESOURCE_FACTORY_PLUGIN) +#if ($GREMLIN_PLUGIN.enabled || $SHADOW_PLUGIN.enabled || $RUN_PAPER_PLUGIN.enabled || !$RESOURCE_FACTORY_PLUGIN.enabled) tasks { -#if ($USE_GREMLIN || $INCLUDE_SHADOW_PLUGIN || $LANGUAGE == 'Kotlin') +#if ($GREMLIN_PLUGIN.enabled || $SHADOW_PLUGIN.enabled || $LANGUAGE == 'Kotlin') build { dependsOn(shadowJar) } #end -#if ($INCLUDE_RUN_PAPER_PLUGIN) +#if ($RUN_PAPER_PLUGIN.enabled) runServer { #if ($USE_VERSION_CATALOG) minecraftVersion(libs.versions.minecraft.get()) @@ -172,7 +172,7 @@ tasks { #end } #end -#if (!$USE_RESOURCE_FACTORY_PLUGIN) +#if (!$RESOURCE_FACTORY_PLUGIN.enabled) processResources { val props = mapOf("version" to version) #if ($USE_PAPER_MANIFEST) diff --git a/bukkit/libs.versions.toml.ft b/bukkit/libs.versions.toml.ft index 38cde06..ac61cbb 100644 --- a/bukkit/libs.versions.toml.ft +++ b/bukkit/libs.versions.toml.ft @@ -8,28 +8,28 @@ paper-api = "${MC_VERSION}-R0.1-SNAPSHOT" #elseif ($IS_SPIGOT) spigot-api = "${MC_VERSION}-R0.1-SNAPSHOT" #end -#if ($INCLUDE_RUN_PAPER_PLUGIN) +#if ($RUN_PAPER_PLUGIN.enabled) minecraft = "${MC_VERSION}" #end -#if ($USE_PAPERWEIGHT_USERDEV) -paperweight-userdev = "$PAPERWEIGHT_VERSION" +#if ($PAPERWEIGHT_USERDEV_PLUGIN.enabled) +paperweight-userdev = "$PAPERWEIGHT_USERDEV_PLUGIN.version" #end -#if ($USE_GREMLIN || $INCLUDE_SHADOW_PLUGIN) -shadow = "$SHADOW_VERSION" +#if ($GREMLIN_PLUGIN.enabled || $SHADOW_PLUGIN.enabled) +shadow = "$SHADOW_PLUGIN.version" #end -#if ($INCLUDE_RUN_PAPER_PLUGIN) -run-task = "$RUN_PAPER_VERSION" +#if ($RUN_PAPER_PLUGIN.enabled) +run-task = "$RUN_PAPER_PLUGIN.version" #end -#if ($USE_RESOURCE_FACTORY_PLUGIN) -resource-factory = "$RESOURCE_FACTORY_VERSION" +#if ($RESOURCE_FACTORY_PLUGIN.enabled) +resource-factory = "$RESOURCE_FACTORY_PLUGIN.version" #end -#if ($USE_GREMLIN) -gremlin = "$GREMLIN_VERSION" +#if ($GREMLIN_PLUGIN.enabled) +gremlin = "$GREMLIN_PLUGIN.version" #end [libraries] -#if ($IS_PAPER && !$USE_PAPERWEIGHT_USERDEV) +#if ($IS_PAPER && !$PAPERWEIGHT_USERDEV_PLUGIN.enabled) paper-api = { module = "io.papermc.paper:paper-api", version.ref = "paper-api" } #elseif ($IS_SPIGOT) spigot-api = { module = "org.spigotmc:spigot-api", version.ref = "spigot-api" } @@ -37,25 +37,25 @@ spigot-api = { module = "org.spigotmc:spigot-api", version.ref = "spigot-api" } #if ($LANGUAGE=='Kotlin') kotlin-stdlib = { module = "org.jetbrains.kotlin:kotlin-stdlib-jdk8", version.ref = "kotlin" } #end -#if ($USE_GREMLIN) +#if ($GREMLIN_PLUGIN.enabled) gremlin-runtime = { module = "xyz.jpenilla:gremlin-runtime", version.ref = "gremlin" } #end [plugins] -#if ($USE_PAPERWEIGHT_USERDEV) +#if ($PAPERWEIGHT_USERDEV_PLUGIN.enabled) paperweight-userdev = { id = "io.papermc.paperweight.userdev", version.ref = "paperweight-userdev" } #end -#if ($USE_GREMLIN || $INCLUDE_SHADOW_PLUGIN) +#if ($GREMLIN_PLUGIN.enabled || $SHADOW_PLUGIN.enabled) shadow = { id = "com.gradleup.shadow", version.ref = "shadow" } #end -#if ($INCLUDE_RUN_PAPER_PLUGIN) +#if ($RUN_PAPER_PLUGIN.enabled) run-paper = { id = "xyz.jpenilla.run-paper", version.ref = "run-task" } #end -#if ($USE_RESOURCE_FACTORY_PLUGIN && $USE_PAPER_MANIFEST) +#if ($RESOURCE_FACTORY_PLUGIN.enabled && $USE_PAPER_MANIFEST) resource-factory-paper = { id = "xyz.jpenilla.resource-factory-paper-convention", version.ref = "resource-factory" } -#elseif ($USE_RESOURCE_FACTORY_PLUGIN && !$USE_PAPER_MANIFEST) +#elseif ($RESOURCE_FACTORY_PLUGIN.enabled && !$USE_PAPER_MANIFEST) resource-factory-bukkit = { id = "xyz.jpenilla.resource-factory-bukkit-convention", version.ref = "resource-factory" } #end -#if ($USE_GREMLIN) +#if ($GREMLIN_PLUGIN.enabled) gremlin-gradle = { id = "xyz.jpenilla.gremlin-gradle", version.ref = "gremlin" } #end diff --git a/bukkit/paper.mcdev.template.json b/bukkit/paper.mcdev.template.json index 2c96a35..f90a6a3 100644 --- a/bukkit/paper.mcdev.template.json +++ b/bukkit/paper.mcdev.template.json @@ -15,6 +15,17 @@ "Maven" ] }, + { + "name": "USE_VERSION_CATALOG", + "type": "boolean", + "default": false, + "visible": { + "dependsOn": [ + "BUILD_SYSTEM" + ], + "condition": "$BUILD_SYSTEM == 'Gradle'" + } + }, { "name": "LANGUAGE", "type": "string", @@ -74,6 +85,34 @@ "type": "boolean", "default": false }, + { + "name": "INCLUDE_PLUGIN_BOOTSTRAP", + "type": "boolean", + "default": false, + "visible": { + "dependsOn": [ + "USE_PAPER_MANIFEST" + ], + "condition": "$USE_PAPER_MANIFEST" + } + }, + { + "name": "INCLUDE_PLUGIN_LOADER", + "type": "boolean", + "default": false + }, + { + "name": "JAVA_PLUGIN_LOADER", + "type": "boolean", + "default": true, + "visible": { + "dependsOn": [ + "LANGUAGE", + "INCLUDE_PLUGIN_LOADER" + ], + "condition": "$LANGUAGE=='Kotlin' && $INCLUDE_PLUGIN_LOADER" + } + }, { "label": "creator.ui.optional_settings.label", "collapsible": true, @@ -115,13 +154,16 @@ ] }, { - "label": "creator.ui.advanced_settings.label", + "label": "creator.ui.gradle_plugins.label", "collapsible": true, "groupProperties": [ { - "name": "USE_VERSION_CATALOG", - "type": "boolean", - "default": false, + "name": "RUN_PAPER_PLUGIN", + "type": "gradle_plugin", + "default": true, + "parameters": { + "sourceUrl": "https://plugins.gradle.org/m2/xyz/jpenilla/run-paper/xyz.jpenilla.run-paper.gradle.plugin/maven-metadata.xml" + }, "visible": { "dependsOn": [ "BUILD_SYSTEM" @@ -130,112 +172,39 @@ } }, { - "name": "USE_GREMLIN", + "name": "ACCEPT_EULA", "type": "boolean", "default": false, "visible": { "dependsOn": [ + "RUN_PAPER_PLUGIN", "BUILD_SYSTEM" ], - "condition": "$BUILD_SYSTEM == 'Gradle'" - } - }, - { - "name": "GREMLIN_VERSION", - "type": "maven_artifact_version", - "parameters": { - "sourceUrl": "https://plugins.gradle.org/m2/xyz/jpenilla/gremlin-gradle/maven-metadata.xml" - }, - "visible": { - "dependsOn": [ "USE_GREMLIN" ], - "condition": "$USE_GREMLIN" + "condition": "$RUN_PAPER_PLUGIN.enabled && $BUILD_SYSTEM == 'Gradle'" } }, { - "name": "INCLUDE_SHADOW_PLUGIN", - "type": "boolean", + "name": "SHADOW_PLUGIN", + "type": "gradle_plugin", "default": "$LANGUAGE=='Kotlin'", - "visible": { - "dependsOn": [ - "LANGUAGE", - "BUILD_SYSTEM", - "USE_GREMLIN" - ], - "condition": "!$USE_GREMLIN && $LANGUAGE != 'Kotlin' && $BUILD_SYSTEM == 'Gradle'" - } - }, - { - "name": "SHADOW_VERSION", - "type": "maven_artifact_version", "parameters": { "sourceUrl": "https://repo.maven.apache.org/maven2/com/gradleup/shadow/shadow-gradle-plugin/maven-metadata.xml" }, - "visible": { - "dependsOn": [ "LANGUAGE", "INCLUDE_SHADOW_PLUGIN" ], - "condition": "$USE_GREMLIN || $LANGUAGE == 'Kotlin' || $INCLUDE_SHADOW_PLUGIN" - } - }, - { - "name": "INCLUDE_PLUGIN_BOOTSTRAP", - "type": "boolean", - "default": false, "visible": { "dependsOn": [ - "USE_PAPER_MANIFEST" - ], - "condition": "$USE_PAPER_MANIFEST" - } - }, - { - "name": "INCLUDE_PLUGIN_LOADER", - "type": "boolean", - "default": "$USE_GREMLIN", - "visible": { - "dependsOn": [ - "USE_GREMLIN" - ], - "condition": "!$USE_GREMLIN" - } - }, - { - "name": "JAVA_PLUGIN_LOADER", - "type": "boolean", - "default": true, - "visible": { - "dependsOn": [ - "USE_GREMLIN", "LANGUAGE", - "INCLUDE_PLUGIN_LOADER" - ], - "condition": "!$USE_GREMLIN && $LANGUAGE=='Kotlin' && $INCLUDE_PLUGIN_LOADER" - } - }, - { - "name": "USE_RESOURCE_FACTORY_PLUGIN", - "type": "boolean", - "default": false, - "visible": { - "dependsOn": [ "BUILD_SYSTEM" ], - "condition": "$BUILD_SYSTEM == 'Gradle'" + "condition": "$LANGUAGE != 'Kotlin' && $BUILD_SYSTEM == 'Gradle'" } }, { - "name": "RESOURCE_FACTORY_VERSION", - "type": "maven_artifact_version", + "name": "PAPERWEIGHT_USERDEV_PLUGIN", + "type": "gradle_plugin", + "default": false, "parameters": { - "sourceUrl": "https://plugins.gradle.org/m2/xyz/jpenilla/resource-factory/maven-metadata.xml" + "sourceUrl": "https://plugins.gradle.org/m2/io/papermc/paperweight/paperweight-userdev/maven-metadata.xml" }, - "visible": { - "dependsOn": [ "USE_RESOURCE_FACTORY_PLUGIN" ], - "condition": "$USE_RESOURCE_FACTORY_PLUGIN" - } - }, - { - "name": "USE_PAPERWEIGHT_USERDEV", - "type": "boolean", - "default": false, "visible": { "dependsOn": [ "BUILD_SYSTEM" @@ -244,20 +213,12 @@ } }, { - "name": "PAPERWEIGHT_VERSION", - "type": "maven_artifact_version", + "name": "RESOURCE_FACTORY_PLUGIN", + "type": "gradle_plugin", + "default": false, "parameters": { - "sourceUrl": "https://plugins.gradle.org/m2/io/papermc/paperweight/paperweight-userdev/maven-metadata.xml" + "sourceUrl": "https://plugins.gradle.org/m2/xyz/jpenilla/resource-factory/maven-metadata.xml" }, - "visible": { - "dependsOn": [ "USE_PAPERWEIGHT_USERDEV" ], - "condition": "$USE_PAPERWEIGHT_USERDEV" - } - }, - { - "name": "INCLUDE_RUN_PAPER_PLUGIN", - "type": "boolean", - "default": true, "visible": { "dependsOn": [ "BUILD_SYSTEM" @@ -266,26 +227,17 @@ } }, { - "name": "RUN_PAPER_VERSION", - "type": "maven_artifact_version", + "name": "GREMLIN_PLUGIN", + "type": "gradle_plugin", + "default": false, "parameters": { - "sourceUrl": "https://plugins.gradle.org/m2/xyz/jpenilla/run-paper/xyz.jpenilla.run-paper.gradle.plugin/maven-metadata.xml" + "sourceUrl": "https://plugins.gradle.org/m2/xyz/jpenilla/gremlin-gradle/maven-metadata.xml" }, - "visible": { - "dependsOn": [ "INCLUDE_RUN_PAPER_PLUGIN" ], - "condition": "$INCLUDE_RUN_PAPER_PLUGIN" - } - }, - { - "name": "ACCEPT_EULA", - "type": "boolean", - "default": false, "visible": { "dependsOn": [ - "INCLUDE_RUN_PAPER_PLUGIN", "BUILD_SYSTEM" ], - "condition": "$INCLUDE_RUN_PAPER_PLUGIN && $BUILD_SYSTEM == 'Gradle'" + "condition": "$BUILD_SYSTEM == 'Gradle'" } } ] diff --git a/messages.properties b/messages.properties index 0b01629..ee4e83e 100644 --- a/messages.properties +++ b/messages.properties @@ -29,7 +29,7 @@ platform.neoforge.label=NeoForge platform.sponge.label=Sponge platform.velocity.label=Velocity -creator.ui.advanced_settings.label=Advanced Options +creator.ui.gradle_plugins.label=Gradle Plugins creator.ui.use_datagen.label=Use Datagen: creator.ui.use_paper_manifest.label=Use Paper Manifest: From f801fd7a76b49b85a6df03e9c4cf99e48d9b9b32 Mon Sep 17 00:00:00 2001 From: Kyle Wood Date: Sun, 18 Jan 2026 19:01:56 -0600 Subject: [PATCH 17/20] Add visibility to Gradle Plugins group --- bukkit/paper.mcdev.template.json | 6 +++ bukkit/spigot.mcdev.template.json | 68 ++++++++++++++++--------------- 2 files changed, 42 insertions(+), 32 deletions(-) diff --git a/bukkit/paper.mcdev.template.json b/bukkit/paper.mcdev.template.json index f90a6a3..46f92b0 100644 --- a/bukkit/paper.mcdev.template.json +++ b/bukkit/paper.mcdev.template.json @@ -156,6 +156,12 @@ { "label": "creator.ui.gradle_plugins.label", "collapsible": true, + "visible": { + "dependsOn": [ + "BUILD_SYSTEM" + ], + "condition": "$BUILD_SYSTEM == 'Gradle'" + }, "groupProperties": [ { "name": "RUN_PAPER_PLUGIN", diff --git a/bukkit/spigot.mcdev.template.json b/bukkit/spigot.mcdev.template.json index 42329e4..8821927 100644 --- a/bukkit/spigot.mcdev.template.json +++ b/bukkit/spigot.mcdev.template.json @@ -15,6 +15,17 @@ "Maven" ] }, + { + "name": "USE_VERSION_CATALOG", + "type": "boolean", + "default": false, + "visible": { + "dependsOn": [ + "BUILD_SYSTEM" + ], + "condition": "$BUILD_SYSTEM == 'Gradle'" + } + }, { "name": "LANGUAGE", "type": "string", @@ -131,24 +142,37 @@ ] }, { - "label": "creator.ui.advanced_settings.label", + "label": "creator.ui.gradle_plugins.label", "collapsible": true, + "visible": { + "dependsOn": [ + "BUILD_SYSTEM" + ], + "condition": "$BUILD_SYSTEM == 'Gradle'" + }, "groupProperties": [ { - "name": "USE_VERSION_CATALOG", - "type": "boolean", - "default": false, + "name": "SHADOW_PLUGIN", + "type": "gradle_plugin", + "default": "$LANGUAGE=='Kotlin'", + "parameters": { + "sourceUrl": "https://repo.maven.apache.org/maven2/com/gradleup/shadow/shadow-gradle-plugin/maven-metadata.xml" + }, "visible": { "dependsOn": [ + "LANGUAGE", "BUILD_SYSTEM" ], - "condition": "$BUILD_SYSTEM == 'Gradle'" + "condition": "$LANGUAGE != 'Kotlin' && $BUILD_SYSTEM == 'Gradle'" } }, { - "name": "USE_RESOURCE_FACTORY_PLUGIN", - "type": "boolean", + "name": "RESOURCE_FACTORY_PLUGIN", + "type": "gradle_plugin", "default": false, + "parameters": { + "sourceUrl": "https://plugins.gradle.org/m2/xyz/jpenilla/resource-factory/maven-metadata.xml" + }, "visible": { "dependsOn": [ "BUILD_SYSTEM" @@ -157,37 +181,17 @@ } }, { - "name": "RESOURCE_FACTORY_VERSION", - "type": "maven_artifact_version", + "name": "GREMLIN_PLUGIN", + "type": "gradle_plugin", + "default": false, "parameters": { - "sourceUrl": "https://plugins.gradle.org/m2/xyz/jpenilla/resource-factory/maven-metadata.xml" + "sourceUrl": "https://plugins.gradle.org/m2/xyz/jpenilla/gremlin-gradle/maven-metadata.xml" }, - "visible": { - "dependsOn": [ "USE_RESOURCE_FACTORY_PLUGIN" ], - "condition": "$USE_RESOURCE_FACTORY_PLUGIN" - } - }, - { - "name": "INCLUDE_SHADOW_PLUGIN", - "type": "boolean", - "default": "$LANGUAGE=='Kotlin'", "visible": { "dependsOn": [ - "LANGUAGE", "BUILD_SYSTEM" ], - "condition": "$LANGUAGE == 'Java' && $BUILD_SYSTEM == 'Gradle'" - } - }, - { - "name": "SHADOW_VERSION", - "type": "maven_artifact_version", - "parameters": { - "sourceUrl": "https://repo.maven.apache.org/maven2/com/gradleup/shadow/shadow-gradle-plugin/maven-metadata.xml" - }, - "visible": { - "dependsOn": [ "INCLUDE_SHADOW_PLUGIN" ], - "condition": "$INCLUDE_SHADOW_PLUGIN" + "condition": "$BUILD_SYSTEM == 'Gradle'" } } ] From 6fc8f5cc254b050d3fb37d48f1eb68798555393d Mon Sep 17 00:00:00 2001 From: Strokkur24 Date: Mon, 19 Jan 2026 20:11:50 +0100 Subject: [PATCH 18/20] Add forceValue properties and some template cleanup --- bukkit/build.gradle.kts.ft | 40 ++++++------- bukkit/gradle.properties.ft | 3 + bukkit/libs.versions.toml.ft | 4 +- bukkit/paper.mcdev.template.json | 94 ++++++++++++++++++------------- bukkit/plugin.yml.ft | 2 +- bukkit/spigot.mcdev.template.json | 53 +++++++---------- 6 files changed, 102 insertions(+), 94 deletions(-) diff --git a/bukkit/build.gradle.kts.ft b/bukkit/build.gradle.kts.ft index 64adeca..1dfba69 100644 --- a/bukkit/build.gradle.kts.ft +++ b/bukkit/build.gradle.kts.ft @@ -1,4 +1,4 @@ -#if ($RESOURCE_FACTORY_PLUGIN.enabled && $LOAD_AT) +#if ($RESOURCE_FACTORY_PLUGIN.enabled && $LOAD_AT != "POSTWORLD") import xyz.jpenilla.resourcefactory.bukkit.BukkitPluginYaml #end @@ -12,7 +12,7 @@ plugins { #if ($PAPERWEIGHT_USERDEV_PLUGIN.enabled) alias(libs.plugins.paperweight.userdev) #end -#if ($GREMLIN_PLUGIN.enabled || $SHADOW_PLUGIN.enabled || $LANGUAGE == 'Kotlin') +#if ($SHADOW_PLUGIN.enabled) alias(libs.plugins.shadow) #end #if ($RUN_PAPER_PLUGIN.enabled) @@ -30,7 +30,7 @@ plugins { #if ($PAPERWEIGHT_USERDEV_PLUGIN.enabled) id("io.papermc.paperweight.userdev") version "$PAPERWEIGHT_USERDEV_PLUGIN.version" #end -#if ($GREMLIN_PLUGIN.enabled || $SHADOW_PLUGIN.enabled || $LANGUAGE == 'Kotlin') +#if ($SHADOW_PLUGIN.enabled) id("com.gradleup.shadow") version "$SHADOW_PLUGIN.version" #end #if ($RUN_PAPER_PLUGIN.enabled) @@ -58,7 +58,7 @@ repositories { #if ($GREMLIN_PLUGIN.enabled) configurations.compileOnly { - extendsFrom(configurations.runtimeDownload.get()) + extendsFrom(configurations.runtimeDownload.get()) } #end @@ -98,15 +98,6 @@ paperPluginYaml { #else bukkitPluginYaml { #end - name = project.name -#if ($DESCRIPTION) - description = "${DESCRIPTION}" -#end -#if ($LOG_PREFIX) - prefix = "${LOG_PREFIX}" -#end - version = project.version.toString() - main = "${MAIN_CLASS}" #if (${INCLUDE_PLUGIN_BOOTSTRAP}) bootstrapper = "${MAIN_CLASS.packageName}.${MAIN_CLASS.className}Bootstrap" @@ -123,11 +114,11 @@ bukkitPluginYaml { #if ($API_VERSION) apiVersion = "${API_VERSION}" #end -#if ($LOAD_AT) - load = BukkitPluginYaml.PluginLoadOrder.${LOAD_AT.toUpperCase()} -#end -#if ($AUTHORS || $WEBSITE) +#if ($AUTHORS || $WEBSITE || $LOG_PREFIX || $LOAD_AT != "POSTWORLD") +#end +#if ($LOAD_AT != "POSTWORLD") + load = BukkitPluginYaml.PluginLoadOrder.$LOAD_AT #end #if ($AUTHORS) authors.addAll(${AUTHORS.toStringQuoted()}) @@ -135,6 +126,9 @@ bukkitPluginYaml { #if ($WEBSITE) website = "${WEBSITE}" #end +#if ($LOG_PREFIX) + prefix = "${LOG_PREFIX}" +#end } #end @@ -148,14 +142,17 @@ kotlin { } #end -#if ($GREMLIN_PLUGIN.enabled || $SHADOW_PLUGIN.enabled || $RUN_PAPER_PLUGIN.enabled || !$RESOURCE_FACTORY_PLUGIN.enabled) +#if ($SHADOW_PLUGIN.enabled || $RUN_PAPER_PLUGIN.enabled || !$RESOURCE_FACTORY_PLUGIN.enabled) tasks { -#if ($GREMLIN_PLUGIN.enabled || $SHADOW_PLUGIN.enabled || $LANGUAGE == 'Kotlin') +#if ($SHADOW_PLUGIN.enabled) build { dependsOn(shadowJar) } #end #if ($RUN_PAPER_PLUGIN.enabled) +#if ($SHADOW_PLUGIN.enabled) + +#end runServer { #if ($USE_VERSION_CATALOG) minecraftVersion(libs.versions.minecraft.get()) @@ -173,8 +170,11 @@ tasks { } #end #if (!$RESOURCE_FACTORY_PLUGIN.enabled) +#if ($SHADOW_PLUGIN.enabled || $RUN_PAPER_PLUGIN.enabled) + +#end processResources { - val props = mapOf("version" to version) + val props = mapOf("version" to version #if ($DESCRIPTION), "description" to project.description #end) #if ($USE_PAPER_MANIFEST) filesMatching("paper-plugin.yml") { #else diff --git a/bukkit/gradle.properties.ft b/bukkit/gradle.properties.ft index b6da00d..fd2d0d6 100644 --- a/bukkit/gradle.properties.ft +++ b/bukkit/gradle.properties.ft @@ -1,5 +1,8 @@ group=${BUILD_COORDS.groupId} version=${BUILD_COORDS.version} +#if ($DESCRIPTION) +description=${DESCRIPTION} +#end org.gradle.configuration-cache=true org.gradle.parallel=true diff --git a/bukkit/libs.versions.toml.ft b/bukkit/libs.versions.toml.ft index ac61cbb..85873bf 100644 --- a/bukkit/libs.versions.toml.ft +++ b/bukkit/libs.versions.toml.ft @@ -15,7 +15,7 @@ minecraft = "${MC_VERSION}" #if ($PAPERWEIGHT_USERDEV_PLUGIN.enabled) paperweight-userdev = "$PAPERWEIGHT_USERDEV_PLUGIN.version" #end -#if ($GREMLIN_PLUGIN.enabled || $SHADOW_PLUGIN.enabled) +#if ($SHADOW_PLUGIN.enabled) shadow = "$SHADOW_PLUGIN.version" #end #if ($RUN_PAPER_PLUGIN.enabled) @@ -45,7 +45,7 @@ gremlin-runtime = { module = "xyz.jpenilla:gremlin-runtime", version.ref = "grem #if ($PAPERWEIGHT_USERDEV_PLUGIN.enabled) paperweight-userdev = { id = "io.papermc.paperweight.userdev", version.ref = "paperweight-userdev" } #end -#if ($GREMLIN_PLUGIN.enabled || $SHADOW_PLUGIN.enabled) +#if ($SHADOW_PLUGIN.enabled) shadow = { id = "com.gradleup.shadow", version.ref = "shadow" } #end #if ($RUN_PAPER_PLUGIN.enabled) diff --git a/bukkit/paper.mcdev.template.json b/bukkit/paper.mcdev.template.json index 46f92b0..f224a37 100644 --- a/bukkit/paper.mcdev.template.json +++ b/bukkit/paper.mcdev.template.json @@ -96,26 +96,10 @@ "condition": "$USE_PAPER_MANIFEST" } }, - { - "name": "INCLUDE_PLUGIN_LOADER", - "type": "boolean", - "default": false - }, - { - "name": "JAVA_PLUGIN_LOADER", - "type": "boolean", - "default": true, - "visible": { - "dependsOn": [ - "LANGUAGE", - "INCLUDE_PLUGIN_LOADER" - ], - "condition": "$LANGUAGE=='Kotlin' && $INCLUDE_PLUGIN_LOADER" - } - }, { "label": "creator.ui.optional_settings.label", "collapsible": true, + "order": 2, "groupProperties": [ { "name": "DESCRIPTION", @@ -148,14 +132,14 @@ "STARTUP", "POSTWORLD" ], - "default": "POSTWORLD", - "nullIfDefault": true + "default": "POSTWORLD" } ] }, { "label": "creator.ui.gradle_plugins.label", "collapsible": true, + "order": 2, "visible": { "dependsOn": [ "BUILD_SYSTEM" @@ -163,6 +147,21 @@ "condition": "$BUILD_SYSTEM == 'Gradle'" }, "groupProperties": [ + { + "name": "GREMLIN_PLUGIN", + "type": "gradle_plugin", + "default": false, + "order": 10, + "parameters": { + "sourceUrl": "https://plugins.gradle.org/m2/xyz/jpenilla/gremlin-gradle/maven-metadata.xml" + }, + "visible": { + "dependsOn": [ + "BUILD_SYSTEM" + ], + "condition": "$BUILD_SYSTEM == 'Gradle'" + } + }, { "name": "RUN_PAPER_PLUGIN", "type": "gradle_plugin", @@ -198,10 +197,17 @@ }, "visible": { "dependsOn": [ - "LANGUAGE", "BUILD_SYSTEM" ], - "condition": "$LANGUAGE != 'Kotlin' && $BUILD_SYSTEM == 'Gradle'" + "condition": "$BUILD_SYSTEM == 'Gradle'" + }, + "forceValue": { + "dependsOn": [ + "LANGUAGE", + "GREMLIN_PLUGIN" + ], + "condition": "$LANGUAGE == 'Kotlin' || $GREMLIN_PLUGIN.enabled", + "value": "true" } }, { @@ -231,23 +237,33 @@ ], "condition": "$BUILD_SYSTEM == 'Gradle'" } - }, - { - "name": "GREMLIN_PLUGIN", - "type": "gradle_plugin", - "default": false, - "parameters": { - "sourceUrl": "https://plugins.gradle.org/m2/xyz/jpenilla/gremlin-gradle/maven-metadata.xml" - }, - "visible": { - "dependsOn": [ - "BUILD_SYSTEM" - ], - "condition": "$BUILD_SYSTEM == 'Gradle'" - } } ] }, + { + "name": "INCLUDE_PLUGIN_LOADER", + "type": "boolean", + "order": 1, + "default": false, + "forceValue": { + "dependsOn": "GREMLIN_PLUGIN", + "condition": "$GREMLIN_PLUGIN.enabled", + "value": "false" + } + }, + { + "name": "JAVA_PLUGIN_LOADER", + "type": "boolean", + "order": 1, + "default": true, + "visible": { + "dependsOn": [ + "LANGUAGE", + "INCLUDE_PLUGIN_LOADER" + ], + "condition": "$LANGUAGE=='Kotlin' && $INCLUDE_PLUGIN_LOADER" + } + }, { "name": "JAVA_VERSION", "type": "integer", @@ -320,12 +336,12 @@ { "template": "plugin.yml.ft", "destination": "src/main/resources/plugin.yml", - "condition": "!$USE_PAPER_MANIFEST && !$USE_RESOURCE_FACTORY_PLUGIN" + "condition": "!$RESOURCE_FACTORY_PLUGIN.enabled && !$USE_PAPER_MANIFEST" }, { "template": "plugin.yml.ft", "destination": "src/main/resources/paper-plugin.yml", - "condition": "$USE_PAPER_MANIFEST && !$USE_RESOURCE_FACTORY_PLUGIN" + "condition": "!$RESOURCE_FACTORY_PLUGIN.enabled && $USE_PAPER_MANIFEST" }, { "template": "MainClass.java.ft", @@ -352,12 +368,12 @@ { "template": "LoaderClass.java.ft", "destination": "src/main/java/${MAIN_CLASS.packagePath}/${MAIN_CLASS.className}Loader.java", - "condition": "!$USE_GREMLIN && $INCLUDE_PLUGIN_LOADER && $JAVA_PLUGIN_LOADER" + "condition": "$INCLUDE_PLUGIN_LOADER && $JAVA_PLUGIN_LOADER" }, { "template": "LoaderClass.kt.ft", "destination": "src/main/kotlin/${MAIN_CLASS.packagePath}/${MAIN_CLASS.className}Loader.kt", - "condition": "!$USE_GREMLIN && $INCLUDE_PLUGIN_LOADER && !$JAVA_PLUGIN_LOADER" + "condition": "$INCLUDE_PLUGIN_LOADER && !$JAVA_PLUGIN_LOADER" } ], "finalizers": [ diff --git a/bukkit/plugin.yml.ft b/bukkit/plugin.yml.ft index b4f91ac..1e59c74 100644 --- a/bukkit/plugin.yml.ft +++ b/bukkit/plugin.yml.ft @@ -1,6 +1,6 @@ name: ${PLUGIN_NAME} #if (${DESCRIPTION}) -description: ${DESCRIPTION} +description: $description #end #if (${LOG_PREFIX}) prefix: ${LOG_PREFIX} diff --git a/bukkit/spigot.mcdev.template.json b/bukkit/spigot.mcdev.template.json index 8821927..8e470d6 100644 --- a/bukkit/spigot.mcdev.template.json +++ b/bukkit/spigot.mcdev.template.json @@ -41,7 +41,9 @@ "sourceUrl": "https://repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/maven-metadata.xml" }, "visible": { - "dependsOn": ["LANGUAGE"], + "dependsOn": [ + "LANGUAGE" + ], "condition": "$LANGUAGE == 'Kotlin'" } }, @@ -84,7 +86,9 @@ ], "visible": false, "derives": { - "parents": ["MC_VERSION"], + "parents": [ + "MC_VERSION" + ], "method": "extractVersionMajorMinor" } }, @@ -97,7 +101,10 @@ "name": "MAIN_CLASS", "type": "class_fqn", "derives": { - "parents": ["BUILD_COORDS", "PLUGIN_NAME"], + "parents": [ + "BUILD_COORDS", + "PLUGIN_NAME" + ], "method": "suggestClassName" } }, @@ -158,12 +165,10 @@ "parameters": { "sourceUrl": "https://repo.maven.apache.org/maven2/com/gradleup/shadow/shadow-gradle-plugin/maven-metadata.xml" }, - "visible": { - "dependsOn": [ - "LANGUAGE", - "BUILD_SYSTEM" - ], - "condition": "$LANGUAGE != 'Kotlin' && $BUILD_SYSTEM == 'Gradle'" + "forceValue": { + "dependsOn": "LANGUAGE", + "condition": "$LANGUAGE == 'Kotlin'", + "value": "true" } }, { @@ -172,26 +177,6 @@ "default": false, "parameters": { "sourceUrl": "https://plugins.gradle.org/m2/xyz/jpenilla/resource-factory/maven-metadata.xml" - }, - "visible": { - "dependsOn": [ - "BUILD_SYSTEM" - ], - "condition": "$BUILD_SYSTEM == 'Gradle'" - } - }, - { - "name": "GREMLIN_PLUGIN", - "type": "gradle_plugin", - "default": false, - "parameters": { - "sourceUrl": "https://plugins.gradle.org/m2/xyz/jpenilla/gremlin-gradle/maven-metadata.xml" - }, - "visible": { - "dependsOn": [ - "BUILD_SYSTEM" - ], - "condition": "$BUILD_SYSTEM == 'Gradle'" } } ] @@ -203,7 +188,9 @@ "default": 17, "visible": false, "derives": { - "parents": ["MC_VERSION"], + "parents": [ + "MC_VERSION" + ], "method": "recommendJavaVersionForMcVersion", "default": 17 } @@ -267,7 +254,7 @@ { "template": "plugin.yml.ft", "destination": "src/main/resources/plugin.yml", - "condition": "!$USE_RESOURCE_FACTORY_PLUGIN" + "condition": "!RESOURCE_FACTORY_PLUGIN.enabled" }, { "template": "MainClass.java.ft", @@ -285,7 +272,9 @@ "finalizers": [ { "type": "run_gradle_tasks", - "tasks": ["wrapper --gradle-version=latest"], + "tasks": [ + "wrapper --gradle-version=latest" + ], "condition": "$BUILD_SYSTEM=='Gradle'" }, { From 89fa6943cc856f060f03fe4342139c551cd761c2 Mon Sep 17 00:00:00 2001 From: Kyle Wood Date: Mon, 19 Jan 2026 14:39:24 -0600 Subject: [PATCH 19/20] Create Build run configurations on project creation --- bukkit/paper.mcdev.template.json | 29 +++++++++++++++++++++++++++-- bukkit/spigot.mcdev.template.json | 16 ++++++++++++++++ bungeecord/.mcdev.template.json | 24 ++++++++++++++++++++---- fabric/.mcdev.template.json | 11 +++++++++-- forge/.mcdev.template.json | 13 ++++++++++++- neoforge/.mcdev.template.json | 11 +++++++++-- sponge/.mcdev.template.json | 24 ++++++++++++++++++++---- velocity/.mcdev.template.json | 24 ++++++++++++++++++++---- 8 files changed, 133 insertions(+), 19 deletions(-) diff --git a/bukkit/paper.mcdev.template.json b/bukkit/paper.mcdev.template.json index f224a37..3d3e007 100644 --- a/bukkit/paper.mcdev.template.json +++ b/bukkit/paper.mcdev.template.json @@ -384,13 +384,38 @@ ], "condition": "$BUILD_SYSTEM=='Gradle'" }, + { + "type": "import_gradle_project", + "condition": "$BUILD_SYSTEM=='Gradle'" + }, + { + "type": "add_gradle_run", + "tasks": [ + "build" + ], + "name": "Build", + "condition": "$BUILD_SYSTEM=='Gradle'" + }, + { + "type": "add_gradle_run", + "tasks": [ + "runServer" + ], + "name": "Run", + "select": true, + "condition": "$RUN_PAPER_PLUGIN.enabled && $BUILD_SYSTEM=='Gradle'" + }, { "type": "import_maven_project", "condition": "$BUILD_SYSTEM=='Maven'" }, { - "type": "import_gradle_project", - "condition": "$BUILD_SYSTEM=='Gradle'" + "type": "add_maven_run", + "goals": [ + "package" + ], + "name": "Build", + "condition": "$BUILD_SYSTEM=='Maven'" }, { "type": "git_add_all", diff --git a/bukkit/spigot.mcdev.template.json b/bukkit/spigot.mcdev.template.json index 8e470d6..5c00f2d 100644 --- a/bukkit/spigot.mcdev.template.json +++ b/bukkit/spigot.mcdev.template.json @@ -281,10 +281,26 @@ "type": "import_gradle_project", "condition": "$BUILD_SYSTEM=='Gradle'" }, + { + "type": "add_gradle_run", + "tasks": [ + "build" + ], + "name": "Build", + "condition": "$BUILD_SYSTEM=='Gradle'" + }, { "type": "import_maven_project", "condition": "$BUILD_SYSTEM=='Maven'" }, + { + "type": "add_maven_run", + "goals": [ + "package" + ], + "name": "Build", + "condition": "$BUILD_SYSTEM=='Maven'" + }, { "type": "git_add_all", "condition": "$USE_GIT" diff --git a/bungeecord/.mcdev.template.json b/bungeecord/.mcdev.template.json index 8e06ac2..48d6b23 100644 --- a/bungeecord/.mcdev.template.json +++ b/bungeecord/.mcdev.template.json @@ -162,18 +162,34 @@ ], "finalizers": [ { - "type": "import_maven_project", - "condition": "$BUILD_SYSTEM=='Maven'" + "type": "run_gradle_tasks", + "tasks": ["wrapper"], + "condition": "$BUILD_SYSTEM=='Gradle'" }, { "type": "import_gradle_project", "condition": "$BUILD_SYSTEM=='Gradle'" }, { - "type": "run_gradle_tasks", - "tasks": ["wrapper"], + "type": "add_gradle_run", + "tasks": [ + "build" + ], + "name": "Build", "condition": "$BUILD_SYSTEM=='Gradle'" }, + { + "type": "import_maven_project", + "condition": "$BUILD_SYSTEM=='Maven'" + }, + { + "type": "add_maven_run", + "goals": [ + "package" + ], + "name": "Build", + "condition": "$BUILD_SYSTEM=='Maven'" + }, { "type": "git_add_all", "condition": "$USE_GIT" diff --git a/fabric/.mcdev.template.json b/fabric/.mcdev.template.json index 807418a..32b1511 100644 --- a/fabric/.mcdev.template.json +++ b/fabric/.mcdev.template.json @@ -249,12 +249,19 @@ } ], "finalizers": [ + { + "type": "run_gradle_tasks", + "tasks": ["wrapper"] + }, { "type": "import_gradle_project" }, { - "type": "run_gradle_tasks", - "tasks": ["wrapper"] + "type": "add_gradle_run", + "tasks": [ + "build" + ], + "name": "Build" }, { "type": "git_add_all", diff --git a/forge/.mcdev.template.json b/forge/.mcdev.template.json index 26e3cf0..d30c952 100644 --- a/forge/.mcdev.template.json +++ b/forge/.mcdev.template.json @@ -189,12 +189,23 @@ } ], "finalizers": [ + { + "type": "run_gradle_tasks", + "tasks": ["wrapper"] + }, { "type": "import_gradle_project" }, { "type": "run_gradle_tasks", - "tasks": ["wrapper", "genIntellijRuns"] + "tasks": ["genIntellijRuns"] + }, + { + "type": "add_gradle_run", + "tasks": [ + "build" + ], + "name": "Build" }, { "type": "git_add_all", diff --git a/neoforge/.mcdev.template.json b/neoforge/.mcdev.template.json index 489d229..9623974 100644 --- a/neoforge/.mcdev.template.json +++ b/neoforge/.mcdev.template.json @@ -227,12 +227,19 @@ } ], "finalizers": [ + { + "type": "run_gradle_tasks", + "tasks": ["wrapper"] + }, { "type": "import_gradle_project" }, { - "type": "run_gradle_tasks", - "tasks": ["wrapper"] + "type": "add_gradle_run", + "tasks": [ + "build" + ], + "name": "Build" }, { "type": "git_add_all", diff --git a/sponge/.mcdev.template.json b/sponge/.mcdev.template.json index 29ed0e6..f3495a0 100644 --- a/sponge/.mcdev.template.json +++ b/sponge/.mcdev.template.json @@ -197,18 +197,34 @@ ], "finalizers": [ { - "type": "import_maven_project", - "condition": "$BUILD_SYSTEM=='Maven'" + "type": "run_gradle_tasks", + "tasks": ["wrapper"], + "condition": "$BUILD_SYSTEM=='Gradle'" }, { "type": "import_gradle_project", "condition": "$BUILD_SYSTEM=='Gradle'" }, { - "type": "run_gradle_tasks", - "tasks": ["wrapper"], + "type": "add_gradle_run", + "tasks": [ + "build" + ], + "name": "Build", "condition": "$BUILD_SYSTEM=='Gradle'" }, + { + "type": "import_maven_project", + "condition": "$BUILD_SYSTEM=='Maven'" + }, + { + "type": "add_maven_run", + "goals": [ + "package" + ], + "name": "Build", + "condition": "$BUILD_SYSTEM=='Maven'" + }, { "type": "git_add_all", "condition": "$USE_GIT" diff --git a/velocity/.mcdev.template.json b/velocity/.mcdev.template.json index b38d8ab..2c0749c 100644 --- a/velocity/.mcdev.template.json +++ b/velocity/.mcdev.template.json @@ -191,18 +191,34 @@ ], "finalizers": [ { - "type": "import_maven_project", - "condition": "$BUILD_SYSTEM=='Maven'" + "type": "run_gradle_tasks", + "tasks": ["wrapper"], + "condition": "$BUILD_SYSTEM=='Gradle'" }, { "type": "import_gradle_project", "condition": "$BUILD_SYSTEM=='Gradle'" }, { - "type": "run_gradle_tasks", - "tasks": ["wrapper"], + "type": "add_gradle_run", + "tasks": [ + "build" + ], + "name": "Build", "condition": "$BUILD_SYSTEM=='Gradle'" }, + { + "type": "import_maven_project", + "condition": "$BUILD_SYSTEM=='Maven'" + }, + { + "type": "add_maven_run", + "goals": [ + "package" + ], + "name": "Build", + "condition": "$BUILD_SYSTEM=='Maven'" + }, { "type": "git_add_all", "condition": "$USE_GIT" From 662c7e712c5e016421ff7dafa5738f6209bee167 Mon Sep 17 00:00:00 2001 From: Strokkur24 Date: Sun, 25 Jan 2026 20:26:31 +0100 Subject: [PATCH 20/20] Fix plugin.yml not generating gremlin loader --- bukkit/plugin.yml.ft | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/bukkit/plugin.yml.ft b/bukkit/plugin.yml.ft index 1e59c74..3f76e7a 100644 --- a/bukkit/plugin.yml.ft +++ b/bukkit/plugin.yml.ft @@ -11,13 +11,13 @@ main: ${MAIN_CLASS} #if (${INCLUDE_PLUGIN_BOOTSTRAP}) bootstrapper: ${MAIN_CLASS.packageName}.${MAIN_CLASS.className}Bootstrap #end -#if (${INCLUDE_PLUGIN_LOADER} && !${USE_GREMLIN} && !${USE_PAPER_MANIFEST}) +#if (${INCLUDE_PLUGIN_LOADER} && !${GREMLIN_PLUGIN.enabled} && !${USE_PAPER_MANIFEST}) paperPluginLoader: ${MAIN_CLASS.packageName}.${MAIN_CLASS.className}Loader -#elseif (${USE_GREMLIN} && !${USE_PAPER_MANIFEST}) +#elseif (${GREMLIN_PLUGIN.enabled} && !${USE_PAPER_MANIFEST}) paperPluginLoader: xyz.jpenilla.gremlin.runtime.platformsupport.DefaultsPaperPluginLoader -#elseif (${INCLUDE_PLUGIN_LOADER} && !${USE_GREMLIN} && ${USE_PAPER_MANIFEST}) +#elseif (${INCLUDE_PLUGIN_LOADER} && !${GREMLIN_PLUGIN.enabled} && ${USE_PAPER_MANIFEST}) loader: ${MAIN_CLASS.packageName}.${MAIN_CLASS.className}Loader -#elseif (${USE_GREMLIN} && ${USE_PAPER_MANIFEST}) +#elseif (${GREMLIN_PLUGIN.enabled} && ${USE_PAPER_MANIFEST}) loader: xyz.jpenilla.gremlin.runtime.platformsupport.DefaultsPaperPluginLoader #end #if (${API_VERSION})