diff --git a/bootstrap.sh b/bootstrap.sh index 7e3516b..46a1e94 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -1,4 +1,4 @@ #!/usr/bin/bash # Fetch all submodule content. -git submodule update --force --recursive --init --remote +git submodule update --force --recursive --init diff --git a/build.gradle.kts b/build.gradle.kts index c30a21f..83b6995 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,35 +1,27 @@ +import java.io.BufferedReader + plugins { - id("org.jetbrains.kotlin.jvm") version "2.1.21" - id("com.gradleup.shadow") version "8.3.5" // Import shadow API. - id("de.undercouch.download") version "5.6.0" - id("maven-publish") - id("eclipse") + kotlin("jvm") version "2.1.21" + id("com.gradleup.shadow") version "8.3.5" + eclipse } -group = "nl.skbotnl.chatog" -version = "2.1.6" +val commitHash = Runtime + .getRuntime() + .exec(arrayOf("git", "rev-parse", "--short=10", "HEAD")) + .let { process -> + process.waitFor() + val output = process.inputStream.use { + it.bufferedReader().use(BufferedReader::readText) + } + process.destroy() + output.trim() + } val apiVersion = "1.19" -publishing { - publications { - create("mavenPublication") { - groupId = "nl.skbotnl.chatog" - artifactId = "Chat-OG" - version = version - } - } -} - -tasks.named("processResources") { - val props = mapOf( - "version" to version, - "apiVersion" to apiVersion, - ) - filesMatching("plugin.yml") { - expand(props) - } -} +group = "nl.skbotnl.chatog" +version = "$apiVersion-$commitHash" repositories { mavenCentral() @@ -53,6 +45,7 @@ dependencies { compileOnly("me.clip:placeholderapi:2.11.6") compileOnly("net.essentialsx:EssentialsX:2.21.0") compileOnly(files("libs/AnnouncerPlus-1.4.1.jar")) + implementation("net.dv8tion:JDA:5.5.1") { exclude(module = "opus-java") } @@ -65,43 +58,48 @@ dependencies { implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2") } -tasks.withType().configureEach { - isPreserveFileTimestamps = false - isReproducibleFileOrder = true -} - -tasks.shadowJar { - minimize() - archiveClassifier.set("") -} - -tasks.named("clean").configure { - onlyIf { - System.getenv("SELF_MAVEN_LOCAL_REPO") == null - } +val targetJavaVersion = 17 +kotlin { + jvmToolchain(targetJavaVersion) } tasks.build { dependsOn("shadowJar") } -tasks.jar.configure { +tasks.jar { archiveClassifier.set("part") } -tasks.withType().configureEach { - options.compilerArgs.add("-parameters") - options.encoding = "UTF-8" - options.forkOptions.executable = File(options.forkOptions.javaHome, "bin/javac").path +tasks.shadowJar { + archiveClassifier.set("") + minimize() } -kotlin { - jvmToolchain(17) +tasks.named("processResources") { + val props = mapOf( + "version" to version, + "apiVersion" to apiVersion, + ) + inputs.properties(props) + filteringCharset = "UTF-8" + filesMatching("plugin.yml") { + expand(props) + } + + from("LICENSE") { + into("/") + } +} + +tasks.withType().configureEach { + isPreserveFileTimestamps = false + isReproducibleFileOrder = true } java { toolchain { - languageVersion = JavaLanguageVersion.of(17) + languageVersion = JavaLanguageVersion.of(targetJavaVersion) vendor = JvmVendorSpec.GRAAL_VM } } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index e644113..1b33c55 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 a441313..002b867 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.8-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew index 1aa94a4..23d15a9 100755 --- a/gradlew +++ b/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/. @@ -84,7 +86,7 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit +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 @@ -112,7 +114,7 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar +CLASSPATH="\\\"\\\"" # Determine the Java command to use to start the JVM. @@ -203,7 +205,7 @@ fi DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# * 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. @@ -211,7 +213,7 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ "$@" # Stop when "xargs" is not available. diff --git a/gradlew.bat b/gradlew.bat index 7101f8e..5eed7ee 100644 --- a/gradlew.bat +++ b/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 ########################################################################## @@ -68,11 +70,11 @@ goto fail :execute @rem Setup the command line -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar +set CLASSPATH= @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* :end @rem End local scope for the variables with windows NT shell diff --git a/settings.gradle.kts b/settings.gradle.kts index 0110a58..c1235b6 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,12 +1,16 @@ plugins { - id("org.gradle.toolchains.foojay-resolver-convention") version("0.8.0") + id("org.gradle.toolchains.foojay-resolver-convention") version("1.0.0") } rootProject.name = "Chat-OG" -exec { - workingDir(rootDir) - commandLine("sh", "bootstrap.sh") +val process: Process = ProcessBuilder("sh", "bootstrap.sh") + .directory(rootDir) + .start() + +val exitValue = process.waitFor() +if (exitValue != 0) { + throw GradleException("bootstrap.sh failed with exit code $exitValue") } include("libs:Utilities-OG")