diff --git a/build.gradle.kts b/build.gradle.kts index 7835537..1c30ca2 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,11 +1,12 @@ -@file:Suppress("UnstableApiUsage") +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + plugins { `kotlin-dsl` `maven-publish` `java-gradle-plugin` - id("com.gradle.plugin-publish") version "1.2.0" + id("com.gradle.plugin-publish") version "1.3.1" } group = "gay.pizza.foundation" @@ -17,13 +18,13 @@ repositories { } dependencies { - implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.21") - implementation("org.jetbrains.kotlin:kotlin-serialization:1.8.21") - implementation("com.github.johnrengelman:shadow:8.1.1") - implementation("com.google.code.gson:gson:2.10.1") + implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:2.1.20") + implementation("org.jetbrains.kotlin:kotlin-serialization:2.1.20") + implementation("com.gradleup.shadow:com.gradleup.shadow.gradle.plugin:8.3.6") + implementation("com.google.code.gson:gson:2.12.1") // Implementation of crypto used in smart downloader. - implementation("org.bouncycastle:bcprov-jdk15on:1.70") + implementation("org.bouncycastle:bcprov-jdk18on:1.80") } gradlePlugin { @@ -78,14 +79,14 @@ if (gradlePublishingKey != null && gradlePublishingSecret != null) { } java { - val version = JavaVersion.toVersion("17") + val version = JavaVersion.toVersion("21") sourceCompatibility = version targetCompatibility = version } tasks.compileKotlin { - kotlinOptions { - jvmTarget = "17" + compilerOptions { + jvmTarget.value(JvmTarget.JVM_21) } } @@ -128,7 +129,7 @@ publishing { } tasks.withType { - gradleVersion = "8.1.1" + gradleVersion = "8.13" } java { diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index ccebba7..c1962a7 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 37aef8d..c6f0030 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index 79a61d4..aeb74cb 100755 --- a/gradlew +++ b/gradlew @@ -85,9 +85,6 @@ done APP_BASE_NAME=${0##*/} APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' - # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -197,6 +194,10 @@ if "$cygwin" || "$msys" ; then done fi + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + # Collect all arguments for the java command; # * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of # shell script including quotes and variable substitutions, so put them in diff --git a/samples/mixed/bukkit-plugins/build.gradle.kts b/samples/mixed/bukkit-plugins/build.gradle.kts index 7daa471..20192bd 100644 --- a/samples/mixed/bukkit-plugins/build.gradle.kts +++ b/samples/mixed/bukkit-plugins/build.gradle.kts @@ -4,8 +4,8 @@ plugins { concreteRoot { minecraftServerPath.set("server") - paperServerVersionGroup.set("1.19") - paperApiVersion.set("1.19.3-R0.1-SNAPSHOT") + paperServerVersionGroup.set("1.21") + paperApiVersion.set("1.21.4-R0.1-SNAPSHOT") acceptServerEula.set(true) expansiveItemInclusion.set(true) } diff --git a/samples/mixed/gradle/wrapper/gradle-wrapper.jar b/samples/mixed/gradle/wrapper/gradle-wrapper.jar index ccebba7..9bbc975 100644 Binary files a/samples/mixed/gradle/wrapper/gradle-wrapper.jar and b/samples/mixed/gradle/wrapper/gradle-wrapper.jar differ diff --git a/samples/mixed/gradle/wrapper/gradle-wrapper.properties b/samples/mixed/gradle/wrapper/gradle-wrapper.properties index 37aef8d..37f853b 100644 --- a/samples/mixed/gradle/wrapper/gradle-wrapper.properties +++ b/samples/mixed/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/samples/mixed/gradlew b/samples/mixed/gradlew index 79a61d4..faf9300 100755 --- a/samples/mixed/gradlew +++ b/samples/mixed/gradlew @@ -15,6 +15,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +# SPDX-License-Identifier: Apache-2.0 +# ############################################################################## # @@ -55,7 +57,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. @@ -83,10 +85,8 @@ done # This is normally unused # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -133,10 +133,13 @@ location of your Java installation." fi else JAVACMD=java - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the location of your Java installation." + fi fi # Increase the maximum file descriptors if we can. @@ -144,7 +147,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then case $MAX_FD in #( max*) # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC2039,SC3045 MAX_FD=$( ulimit -H -n ) || warn "Could not query maximum file descriptor limit" esac @@ -152,7 +155,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then '' | soft) :;; #( *) # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC2039,SC3045 ulimit -n "$MAX_FD" || warn "Could not set maximum file descriptor limit to $MAX_FD" esac @@ -197,11 +200,15 @@ if "$cygwin" || "$msys" ; then done fi -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ diff --git a/samples/mixed/gradlew.bat b/samples/mixed/gradlew.bat index 93e3f59..9d21a21 100644 --- a/samples/mixed/gradlew.bat +++ b/samples/mixed/gradlew.bat @@ -13,6 +13,8 @@ @rem See the License for the specific language governing permissions and @rem limitations under the License. @rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem @if "%DEBUG%"=="" @echo off @rem ########################################################################## @@ -43,11 +45,11 @@ set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 if %ERRORLEVEL% equ 0 goto execute -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail @@ -57,11 +59,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe if exist "%JAVA_EXE%" goto execute -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail diff --git a/samples/shared/build.gradle.kts b/samples/shared/build.gradle.kts index 569ba7c..21b07e9 100644 --- a/samples/shared/build.gradle.kts +++ b/samples/shared/build.gradle.kts @@ -5,7 +5,7 @@ plugins { concreteRoot { minecraftServerPath.set("server") - paperServerVersionGroup.set("1.19") - paperApiVersion.set("1.19.3-R0.1-SNAPSHOT") + paperServerVersionGroup.set("1.21") + paperApiVersion.set("1.21.4-R0.1-SNAPSHOT") acceptServerEula.set(true) } diff --git a/samples/shared/gradle/wrapper/gradle-wrapper.jar b/samples/shared/gradle/wrapper/gradle-wrapper.jar index ccebba7..9bbc975 100644 Binary files a/samples/shared/gradle/wrapper/gradle-wrapper.jar and b/samples/shared/gradle/wrapper/gradle-wrapper.jar differ diff --git a/samples/shared/gradle/wrapper/gradle-wrapper.properties b/samples/shared/gradle/wrapper/gradle-wrapper.properties index 37aef8d..37f853b 100644 --- a/samples/shared/gradle/wrapper/gradle-wrapper.properties +++ b/samples/shared/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/samples/shared/gradlew b/samples/shared/gradlew index 79a61d4..faf9300 100755 --- a/samples/shared/gradlew +++ b/samples/shared/gradlew @@ -15,6 +15,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +# SPDX-License-Identifier: Apache-2.0 +# ############################################################################## # @@ -55,7 +57,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. @@ -83,10 +85,8 @@ done # This is normally unused # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -133,10 +133,13 @@ location of your Java installation." fi else JAVACMD=java - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the location of your Java installation." + fi fi # Increase the maximum file descriptors if we can. @@ -144,7 +147,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then case $MAX_FD in #( max*) # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC2039,SC3045 MAX_FD=$( ulimit -H -n ) || warn "Could not query maximum file descriptor limit" esac @@ -152,7 +155,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then '' | soft) :;; #( *) # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC2039,SC3045 ulimit -n "$MAX_FD" || warn "Could not set maximum file descriptor limit to $MAX_FD" esac @@ -197,11 +200,15 @@ if "$cygwin" || "$msys" ; then done fi -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ diff --git a/samples/shared/gradlew.bat b/samples/shared/gradlew.bat index 93e3f59..9d21a21 100644 --- a/samples/shared/gradlew.bat +++ b/samples/shared/gradlew.bat @@ -13,6 +13,8 @@ @rem See the License for the specific language governing permissions and @rem limitations under the License. @rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem @if "%DEBUG%"=="" @echo off @rem ########################################################################## @@ -43,11 +45,11 @@ set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 if %ERRORLEVEL% equ 0 goto execute -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail @@ -57,11 +59,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe if exist "%JAVA_EXE%" goto execute -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail diff --git a/samples/simple/build.gradle.kts b/samples/simple/build.gradle.kts index 9d0ffad..dbf018b 100644 --- a/samples/simple/build.gradle.kts +++ b/samples/simple/build.gradle.kts @@ -4,7 +4,7 @@ plugins { concreteRoot { minecraftServerPath.set("server") - paperServerVersionGroup.set("1.19") - paperApiVersion.set("1.19.3-R0.1-SNAPSHOT") + paperServerVersionGroup.set("1.21") + paperApiVersion.set("1.21.4-R0.1-SNAPSHOT") acceptServerEula.set(true) } diff --git a/samples/simple/gradle/wrapper/gradle-wrapper.jar b/samples/simple/gradle/wrapper/gradle-wrapper.jar index ccebba7..9bbc975 100644 Binary files a/samples/simple/gradle/wrapper/gradle-wrapper.jar and b/samples/simple/gradle/wrapper/gradle-wrapper.jar differ diff --git a/samples/simple/gradle/wrapper/gradle-wrapper.properties b/samples/simple/gradle/wrapper/gradle-wrapper.properties index 37aef8d..37f853b 100644 --- a/samples/simple/gradle/wrapper/gradle-wrapper.properties +++ b/samples/simple/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/samples/simple/gradlew b/samples/simple/gradlew index 79a61d4..faf9300 100755 --- a/samples/simple/gradlew +++ b/samples/simple/gradlew @@ -15,6 +15,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +# SPDX-License-Identifier: Apache-2.0 +# ############################################################################## # @@ -55,7 +57,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. @@ -83,10 +85,8 @@ done # This is normally unused # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -133,10 +133,13 @@ location of your Java installation." fi else JAVACMD=java - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the location of your Java installation." + fi fi # Increase the maximum file descriptors if we can. @@ -144,7 +147,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then case $MAX_FD in #( max*) # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC2039,SC3045 MAX_FD=$( ulimit -H -n ) || warn "Could not query maximum file descriptor limit" esac @@ -152,7 +155,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then '' | soft) :;; #( *) # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC2039,SC3045 ulimit -n "$MAX_FD" || warn "Could not set maximum file descriptor limit to $MAX_FD" esac @@ -197,11 +200,15 @@ if "$cygwin" || "$msys" ; then done fi -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ diff --git a/samples/simple/gradlew.bat b/samples/simple/gradlew.bat index 93e3f59..9d21a21 100644 --- a/samples/simple/gradlew.bat +++ b/samples/simple/gradlew.bat @@ -13,6 +13,8 @@ @rem See the License for the specific language governing permissions and @rem limitations under the License. @rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem @if "%DEBUG%"=="" @echo off @rem ########################################################################## @@ -43,11 +45,11 @@ set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 if %ERRORLEVEL% equ 0 goto execute -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail @@ -57,11 +59,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe if exist "%JAVA_EXE%" goto execute -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail diff --git a/src/main/kotlin/gay/pizza/foundation/concrete/ConcreteBaseBukkitPlugin.kt b/src/main/kotlin/gay/pizza/foundation/concrete/ConcreteBaseBukkitPlugin.kt index 600c818..318c068 100644 --- a/src/main/kotlin/gay/pizza/foundation/concrete/ConcreteBaseBukkitPlugin.kt +++ b/src/main/kotlin/gay/pizza/foundation/concrete/ConcreteBaseBukkitPlugin.kt @@ -11,7 +11,7 @@ open class ConcreteBaseBukkitPlugin : ConcreteBasePlugin() { project.repositories { maven { name = "papermc" - url = URI.create("https://papermc.io/repo/repository/maven-public/") + url = URI.create("https://repo.papermc.io/repository/maven-public/") } } diff --git a/src/main/kotlin/gay/pizza/foundation/concrete/ConcreteBasePlugin.kt b/src/main/kotlin/gay/pizza/foundation/concrete/ConcreteBasePlugin.kt index d026aad..449ebb8 100644 --- a/src/main/kotlin/gay/pizza/foundation/concrete/ConcreteBasePlugin.kt +++ b/src/main/kotlin/gay/pizza/foundation/concrete/ConcreteBasePlugin.kt @@ -7,6 +7,7 @@ import org.gradle.api.plugins.JavaPluginExtension import org.gradle.kotlin.dsl.create import org.gradle.kotlin.dsl.getByType import org.gradle.kotlin.dsl.withType +import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.tasks.KotlinCompile open class ConcreteBasePlugin : Plugin { @@ -29,15 +30,15 @@ open class ConcreteBasePlugin : Plugin { project.plugins.apply("org.jetbrains.kotlin.plugin.serialization") project.extensions.getByType().apply { - val javaVersion = JavaVersion.toVersion(17) + val javaVersion = JavaVersion.toVersion(21) sourceCompatibility = javaVersion targetCompatibility = javaVersion } project.tasks.withType().forEach { it.apply { - kotlinOptions.apply { - jvmTarget = "17" + compilerOptions { + jvmTarget.value(JvmTarget.JVM_21) } } } diff --git a/src/main/kotlin/gay/pizza/foundation/concrete/ConcretePluginPlugin.kt b/src/main/kotlin/gay/pizza/foundation/concrete/ConcretePluginPlugin.kt index 277b7ff..4343d4d 100644 --- a/src/main/kotlin/gay/pizza/foundation/concrete/ConcretePluginPlugin.kt +++ b/src/main/kotlin/gay/pizza/foundation/concrete/ConcretePluginPlugin.kt @@ -4,12 +4,11 @@ import org.gradle.api.Project import org.gradle.kotlin.dsl.get import org.gradle.language.jvm.tasks.ProcessResources -@Suppress("UnstableApiUsage") class ConcretePluginPlugin : ConcreteBaseBukkitPlugin() { override fun apply(project: Project) { super.apply(project) - project.plugins.apply("com.github.johnrengelman.shadow") + project.plugins.apply("com.gradleup.shadow") // During IDEA project import, if this code is active, it will print warnings. // This will make the VERSION field unexpanded if you run using the IntelliJ build system. diff --git a/src/main/kotlin/gay/pizza/foundation/concrete/ConcreteRootPlugin.kt b/src/main/kotlin/gay/pizza/foundation/concrete/ConcreteRootPlugin.kt index e7be0c7..6896813 100644 --- a/src/main/kotlin/gay/pizza/foundation/concrete/ConcreteRootPlugin.kt +++ b/src/main/kotlin/gay/pizza/foundation/concrete/ConcreteRootPlugin.kt @@ -4,14 +4,15 @@ import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.kotlin.dsl.apply import org.gradle.kotlin.dsl.create +import org.gradle.kotlin.dsl.register import java.nio.file.Paths class ConcreteRootPlugin : Plugin { override fun apply(project: Project) { project.apply(plugin = "base") project.extensions.create("concreteRoot") - val setupPaperServer = project.tasks.create("setupPaperServer") - val runPaperServer = project.tasks.create("runPaperServer") + val setupPaperServer = project.tasks.register("setupPaperServer").get() + val runPaperServer = project.tasks.register("runPaperServer").get() runPaperServer.dependsOn(setupPaperServer) val maybeLocalServerPathString = project.properties["localMinecraftServerPath"]?.toString() @@ -20,8 +21,8 @@ class ConcreteRootPlugin : Plugin { val localServerJarFileName = project.properties["localMinecraftServerJarFileName"]?.toString() ?: "server.jar" val currentWorkingDirectory = System.getProperty("user.dir") val localServerDirectory = Paths.get(currentWorkingDirectory).resolve(maybeLocalServerPathString).toFile() - val setupLocalMinecraftServer = project.tasks.create("setupLocalMinecraftServer") - val runLocalMinecraftServer = project.tasks.create("runLocalMinecraftServer") + val setupLocalMinecraftServer = project.tasks.register("setupLocalMinecraftServer").get() + val runLocalMinecraftServer = project.tasks.register("runLocalMinecraftServer").get() runLocalMinecraftServer.dependsOn(setupLocalMinecraftServer) setupLocalMinecraftServer.minecraftServerDirectory = localServerDirectory @@ -29,7 +30,7 @@ class ConcreteRootPlugin : Plugin { runLocalMinecraftServer.serverJarFileName = localServerJarFileName } - val updateManifests = project.tasks.create("updateManifests") + val updateManifests = project.tasks.register("updateManifests") project.tasks.getByName("assemble").dependsOn(updateManifests) } } diff --git a/src/main/kotlin/gay/pizza/foundation/concrete/PaperVersionClient.kt b/src/main/kotlin/gay/pizza/foundation/concrete/PaperVersionClient.kt index 167e521..bc7ea32 100644 --- a/src/main/kotlin/gay/pizza/foundation/concrete/PaperVersionClient.kt +++ b/src/main/kotlin/gay/pizza/foundation/concrete/PaperVersionClient.kt @@ -10,7 +10,7 @@ class PaperVersionClient( private val client: HttpClient = HttpClient.newHttpClient(), private val gson: Gson = Globals.gson ) { - private val apiBaseUrl = URI.create("https://papermc.io/api/v2/") + private val apiBaseUrl = URI.create("https://api.papermc.io/v2/") fun getVersionBuilds(group: String): List { val response = client.send( diff --git a/src/main/kotlin/gay/pizza/foundation/concrete/RunLocalMinecraftServer.kt b/src/main/kotlin/gay/pizza/foundation/concrete/RunLocalMinecraftServer.kt index 82907be..6155db4 100644 --- a/src/main/kotlin/gay/pizza/foundation/concrete/RunLocalMinecraftServer.kt +++ b/src/main/kotlin/gay/pizza/foundation/concrete/RunLocalMinecraftServer.kt @@ -1,9 +1,11 @@ package gay.pizza.foundation.concrete import org.gradle.api.tasks.Internal +import org.gradle.process.ExecOperations import java.io.File +import javax.inject.Inject -open class RunLocalMinecraftServer : RunMinecraftServer() { +open class RunLocalMinecraftServer @Inject constructor(execOperations: ExecOperations) : RunMinecraftServer(execOperations) { @Internal lateinit var minecraftServerDirectory: File diff --git a/src/main/kotlin/gay/pizza/foundation/concrete/RunMinecraftServer.kt b/src/main/kotlin/gay/pizza/foundation/concrete/RunMinecraftServer.kt index 25e1ffe..1460203 100644 --- a/src/main/kotlin/gay/pizza/foundation/concrete/RunMinecraftServer.kt +++ b/src/main/kotlin/gay/pizza/foundation/concrete/RunMinecraftServer.kt @@ -4,10 +4,12 @@ import org.gradle.api.DefaultTask import org.gradle.api.tasks.Input import org.gradle.api.tasks.Internal import org.gradle.api.tasks.TaskAction +import org.gradle.process.ExecOperations import java.io.File import java.util.jar.JarFile +import javax.inject.Inject -abstract class RunMinecraftServer : DefaultTask() { +abstract class RunMinecraftServer @Inject constructor(private var execOperations: ExecOperations) : DefaultTask() { init { outputs.upToDateWhen { false } } @@ -24,7 +26,7 @@ abstract class RunMinecraftServer : DefaultTask() { val serverJarFile = minecraftServerDirectory.resolve(getServerJarName()) val mainClassName = readMainClass(serverJarFile) - project.javaexec { + execOperations.javaexec { classpath(serverJarFile.absolutePath) workingDir(minecraftServerDirectory) diff --git a/src/main/kotlin/gay/pizza/foundation/concrete/RunPaperServer.kt b/src/main/kotlin/gay/pizza/foundation/concrete/RunPaperServer.kt index 6037299..3568b5b 100644 --- a/src/main/kotlin/gay/pizza/foundation/concrete/RunPaperServer.kt +++ b/src/main/kotlin/gay/pizza/foundation/concrete/RunPaperServer.kt @@ -2,9 +2,11 @@ package gay.pizza.foundation.concrete import org.gradle.api.tasks.Internal import org.gradle.kotlin.dsl.getByType +import org.gradle.process.ExecOperations import java.io.File +import javax.inject.Inject -open class RunPaperServer : RunMinecraftServer() { +open class RunPaperServer @Inject constructor(execOperations: ExecOperations) : RunMinecraftServer(execOperations) { init { outputs.upToDateWhen { false } } diff --git a/src/main/kotlin/gay/pizza/foundation/concrete/SetupPaperServer.kt b/src/main/kotlin/gay/pizza/foundation/concrete/SetupPaperServer.kt index 9c3f5dc..4a14d36 100644 --- a/src/main/kotlin/gay/pizza/foundation/concrete/SetupPaperServer.kt +++ b/src/main/kotlin/gay/pizza/foundation/concrete/SetupPaperServer.kt @@ -20,6 +20,7 @@ open class SetupPaperServer : SetupMinecraftServer() { fun setupPaperServer() { val concrete = project.extensions.getByType() val minecraftServerDirectory = getServerDirectory() + minecraftServerDirectory.mkdirs() val paperJarFile = project.file("${minecraftServerDirectory}/paper.jar") if (!paperJarFile.exists() || shouldUpdatePaperServer) { downloadLatestBuild(concrete.paperServerVersionGroup.get(), paperJarFile) diff --git a/src/main/kotlin/gay/pizza/foundation/concrete/UpdateManifestTask.kt b/src/main/kotlin/gay/pizza/foundation/concrete/UpdateManifestTask.kt index 76f0f19..2b5aa03 100644 --- a/src/main/kotlin/gay/pizza/foundation/concrete/UpdateManifestTask.kt +++ b/src/main/kotlin/gay/pizza/foundation/concrete/UpdateManifestTask.kt @@ -2,10 +2,9 @@ package gay.pizza.foundation.concrete import org.gradle.api.DefaultTask import org.gradle.api.tasks.TaskAction -import java.nio.file.Files import java.nio.file.Path -import kotlin.io.path.name import kotlin.io.path.relativeTo +import kotlin.io.path.writeText open class UpdateManifestTask : DefaultTask() { @TaskAction @@ -29,7 +28,7 @@ open class UpdateManifestTask : DefaultTask() { }.toMap() val legacyUpdateFile = manifestsDir.resolve("update.json") - Files.writeString(legacyUpdateFile, Globals.gson.toJson(legacyUpdateManifest)) + legacyUpdateFile.writeText(Globals.gson.toJson(legacyUpdateManifest)) val extensibleUpdateManifestItems = project.findItemProjects().map { project -> val concreteItemExtension = project.concreteItemExtension!! @@ -60,12 +59,11 @@ open class UpdateManifestTask : DefaultTask() { ) val extensibleUpdateManifestFile = manifestsDir.resolve("manifest.json") - Files.writeString( - extensibleUpdateManifestFile, Globals.gsonPretty.toJson(extensibleUpdateManifest) + "\n") + extensibleUpdateManifestFile.writeText(Globals.gson.toJson(extensibleUpdateManifest) + "\n") } private fun ensureManifestsDirectory(): Path { - val manifestsDir = project.buildDir.resolve("manifests") + val manifestsDir = project.layout.buildDirectory.asFile.get().resolve("manifests") manifestsDir.mkdirs() return manifestsDir.toPath() }