diff --git a/README.md b/README.md index c1c1885..d4c6241 100644 --- a/README.md +++ b/README.md @@ -9,9 +9,9 @@ [7]: https://github.com/MinnDevelopment/strumbot [8]: https://minndevelopment.github.io/jda-ktx/ -[![Kotlin](https://img.shields.io/badge/kotlin-1.6.21-blue.svg?logo=kotlin)](http://kotlinlang.org) -[![kotlinx-coroutines](https://img.shields.io/badge/kotlinx.coroutines-1.6.1-blue.svg?logo=kotlin)][2] -[![JDA](https://img.shields.io/badge/JDA-5.0.0--beta.1-blue.svg)][1] +[![Kotlin](https://img.shields.io/badge/kotlin-1.9.22-blue.svg?logo=kotlin)](http://kotlinlang.org) +[![kotlinx-coroutines](https://img.shields.io/badge/kotlinx.coroutines-1.7.3-blue.svg?logo=kotlin)][2] +[![JDA](https://img.shields.io/badge/JDA-5.0.0--beta.19-blue.svg)][1] [![docs](https://img.shields.io/github/deployments/minndevelopment/jda-ktx/github-pages?label=docs)][8] # jda-ktx @@ -21,9 +21,9 @@ Great in combination with [kotlinx-coroutines][2] and [jda-reactor][3]. ## Required Dependencies -- Kotlin **1.6.21** -- kotlinx.coroutines **1.6.1** -- JDA **5.0.0-beta.1** +- Kotlin **1.9.22** +- kotlinx.coroutines **1.7.3** +- JDA **5.0.0-beta.19** ## Examples diff --git a/build.gradle.kts b/build.gradle.kts index e34bc3f..3a00c26 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -6,33 +6,65 @@ import java.net.URL buildscript { dependencies { - classpath("org.jetbrains.dokka:dokka-base:1.6.21") + classpath("org.jetbrains.dokka:dokka-base:1.+") } + + dependencyLocking.lockAllConfigurations() } plugins { `maven-publish` - kotlin("jvm") version "1.6.21" - id("io.gitlab.arturbosch.detekt") version "1.19.0" - id("org.jetbrains.dokka") version "1.6.21" + kotlin("jvm") version "1.+" + id("io.gitlab.arturbosch.detekt") version "1.+" + id("org.jetbrains.dokka") version "1.+" +} + +group = "club.minnced" +version = "0.11.0-beta.19" +val jdaVersion = "5.0.0-beta.19" + + + +//////////////////////////////// +// Dependency Version Locking // +//////////////////////////////// + +fun ComponentSelectionRules.notRc() { + all { + if (candidate.version.contains("RC", ignoreCase = true)) + reject("not a release version") + } } -group = "dev.minn" -version = "0.10.0-beta.1" +// To update lockfile, run ./gradlew dependencies --update-locks ':' +// To update all locks use ./gradlew dependencies --write-locks + +configurations { + compileClasspath { + resolutionStrategy.activateDependencyLocking() + resolutionStrategy.componentSelection.notRc() + } + runtimeClasspath { + resolutionStrategy.activateDependencyLocking() + resolutionStrategy.componentSelection.notRc() + } +} + +dependencyLocking { + lockMode.set(LockMode.STRICT) +} + + + +/////////////////////////// +// Compile Configuration // +/////////////////////////// configure { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } -//kotlin { -// sourceSets.all { -// languageSettings.apply { -// languageVersion = "1.7" -// } -// } -//} - tasks.withType { kotlinOptions.jvmTarget = "1.8" kotlinOptions.freeCompilerArgs = listOf( @@ -41,20 +73,33 @@ tasks.withType { ) } + + +//////////////////////////// +// Dependency Declaration // +//////////////////////////// + repositories { mavenCentral() - maven("https://jitpack.io/") } dependencies { - compileOnly("net.dv8tion:JDA:5.0.0-beta.1") -// compileOnly("com.github.dv8fromtheworld:JDA:8571e62") - compileOnly("ch.qos.logback:logback-classic:1.2.10") - compileOnly("club.minnced:discord-webhooks:0.7.5") - api(kotlin("stdlib-jdk8")) - api("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.1") + compileOnly("ch.qos.logback:logback-classic:latest.release") + compileOnly("club.minnced:discord-webhooks:latest.release") + + api(kotlin("stdlib")) + api("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.+") + + implementation("net.dv8tion:JDA:$jdaVersion") } + + + +//////////////////////// +// Task Configuration // +//////////////////////// + val javadoc: Javadoc by tasks val sourcesJar = task("sourcesJar") { @@ -77,6 +122,12 @@ tasks { } } + + +//////////////// +// Publishing // +//////////////// + publishing.publications { register("Release") { from(components["java"]) @@ -86,20 +137,42 @@ publishing.publications { artifact(javadocJar) artifact(sourcesJar) + + // Uses the resolved version instead of the 1.+ wildcards + // See https://docs.gradle.org/current/userguide/publishing_maven.html#publishing_maven:resolved_dependencies + versionMapping { + usage("java-api") { + fromResolutionOf("runtimeClasspath") + } + usage("java-runtime") { + fromResolutionResult() + } + } } } + +///////////// +// Linting // +///////////// + + detekt { parallel = true autoCorrect = false - config = files("detekt.yml") + config.from(files("detekt.yml")) } tasks.test.get().dependsOn(tasks.getByName("detekt")) + +/////////////////// +// Documentation // +/////////////////// + tasks.getByName("dokkaHtml", DokkaTask::class) { dokkaSourceSets.configureEach { includes.from("packages.md") @@ -119,5 +192,4 @@ tasks.getByName("dokkaHtml", DokkaTask::class) { footerMessage = "Copyright © 2020 Florian Spieß" } } - } diff --git a/buildscript-gradle.lockfile b/buildscript-gradle.lockfile new file mode 100644 index 0000000..ae4a3ff --- /dev/null +++ b/buildscript-gradle.lockfile @@ -0,0 +1,61 @@ +# This is a Gradle generated file for dependency locking. +# Manual edits can break the build and are not advised. +# This file is expected to be part of source control. +com.fasterxml.jackson.core:jackson-annotations:2.12.7=classpath +com.fasterxml.jackson.core:jackson-core:2.12.7=classpath +com.fasterxml.jackson.core:jackson-databind:2.12.7.1=classpath +com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.12.7=classpath +com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.12.7=classpath +com.fasterxml.jackson.module:jackson-module-kotlin:2.12.7=classpath +com.fasterxml.jackson:jackson-bom:2.12.7=classpath +com.fasterxml.woodstox:woodstox-core:6.2.4=classpath +io.gitlab.arturbosch.detekt:detekt-gradle-plugin:1.23.4=classpath +io.gitlab.arturbosch.detekt:io.gitlab.arturbosch.detekt.gradle.plugin:1.23.4=classpath +jakarta.activation:jakarta.activation-api:1.2.1=classpath +jakarta.xml.bind:jakarta.xml.bind-api:2.3.2=classpath +org.codehaus.woodstox:stax2-api:4.2.1=classpath +org.freemarker:freemarker:2.3.31=classpath +org.jetbrains.dokka:analysis-markdown:1.9.10=classpath +org.jetbrains.dokka:dokka-base:1.9.10=classpath +org.jetbrains.dokka:dokka-core:1.9.10=classpath +org.jetbrains.dokka:dokka-gradle-plugin:1.9.10=classpath +org.jetbrains.dokka:org.jetbrains.dokka.gradle.plugin:1.9.10=classpath +org.jetbrains.intellij.deps:trove4j:1.0.20200330=classpath +org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin:1.9.22=classpath +org.jetbrains.kotlin:kotlin-android-extensions:1.9.22=classpath +org.jetbrains.kotlin:kotlin-build-tools-api:1.9.22=classpath +org.jetbrains.kotlin:kotlin-compiler-embeddable:1.9.22=classpath +org.jetbrains.kotlin:kotlin-compiler-runner:1.9.22=classpath +org.jetbrains.kotlin:kotlin-daemon-client:1.9.22=classpath +org.jetbrains.kotlin:kotlin-daemon-embeddable:1.9.22=classpath +org.jetbrains.kotlin:kotlin-gradle-plugin-annotations:1.9.22=classpath +org.jetbrains.kotlin:kotlin-gradle-plugin-api:1.9.22=classpath +org.jetbrains.kotlin:kotlin-gradle-plugin-idea-proto:1.9.22=classpath +org.jetbrains.kotlin:kotlin-gradle-plugin-idea:1.9.22=classpath +org.jetbrains.kotlin:kotlin-gradle-plugin-model:1.9.22=classpath +org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.22=classpath +org.jetbrains.kotlin:kotlin-gradle-plugins-bom:1.9.22=classpath +org.jetbrains.kotlin:kotlin-klib-commonizer-api:1.9.22=classpath +org.jetbrains.kotlin:kotlin-native-utils:1.9.22=classpath +org.jetbrains.kotlin:kotlin-project-model:1.9.22=classpath +org.jetbrains.kotlin:kotlin-reflect:1.9.20=classpath +org.jetbrains.kotlin:kotlin-scripting-common:1.9.22=classpath +org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.9.22=classpath +org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:1.9.22=classpath +org.jetbrains.kotlin:kotlin-scripting-jvm:1.9.22=classpath +org.jetbrains.kotlin:kotlin-stdlib-common:1.9.20=classpath +org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.10=classpath +org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.10=classpath +org.jetbrains.kotlin:kotlin-stdlib:1.9.20=classpath +org.jetbrains.kotlin:kotlin-tooling-core:1.9.22=classpath +org.jetbrains.kotlin:kotlin-util-io:1.9.22=classpath +org.jetbrains.kotlin:kotlin-util-klib:1.9.22=classpath +org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.3=classpath +org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.3=classpath +org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.3=classpath +org.jetbrains.kotlinx:kotlinx-html-jvm:0.7.5=classpath +org.jetbrains:annotations:13.0=classpath +org.jetbrains:markdown-jvm:0.3.1=classpath +org.jetbrains:markdown:0.3.1=classpath +org.jsoup:jsoup:1.15.3=classpath +empty= diff --git a/gradle.lockfile b/gradle.lockfile new file mode 100644 index 0000000..3b27875 --- /dev/null +++ b/gradle.lockfile @@ -0,0 +1,33 @@ +# This is a Gradle generated file for dependency locking. +# Manual edits can break the build and are not advised. +# This file is expected to be part of source control. +ch.qos.logback:logback-classic:1.4.14=compileClasspath +ch.qos.logback:logback-core:1.4.14=compileClasspath +club.minnced:discord-webhooks:0.8.4=compileClasspath +club.minnced:opus-java-api:1.1.1=compileClasspath,runtimeClasspath +club.minnced:opus-java-natives:1.1.1=compileClasspath,runtimeClasspath +club.minnced:opus-java:1.1.1=compileClasspath,runtimeClasspath +com.fasterxml.jackson.core:jackson-annotations:2.16.0=runtimeClasspath +com.fasterxml.jackson.core:jackson-core:2.16.0=runtimeClasspath +com.fasterxml.jackson.core:jackson-databind:2.16.0=runtimeClasspath +com.fasterxml.jackson:jackson-bom:2.16.0=runtimeClasspath +com.neovisionaries:nv-websocket-client:2.14=compileClasspath,runtimeClasspath +com.squareup.okhttp3:okhttp:4.12.0=compileClasspath,runtimeClasspath +com.squareup.okio:okio-jvm:3.6.0=compileClasspath,runtimeClasspath +com.squareup.okio:okio:3.6.0=compileClasspath,runtimeClasspath +net.dv8tion:JDA:5.0.0-beta.19=compileClasspath,runtimeClasspath +net.java.dev.jna:jna:4.4.0=runtimeClasspath +net.sf.trove4j:trove4j:3.0.3=runtimeClasspath +org.apache.commons:commons-collections4:4.4=compileClasspath,runtimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-common:1.9.22=compileClasspath,runtimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.10=compileClasspath,runtimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.10=compileClasspath,runtimeClasspath +org.jetbrains.kotlin:kotlin-stdlib:1.9.22=compileClasspath,runtimeClasspath +org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.7.3=compileClasspath,runtimeClasspath +org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.7.3=compileClasspath,runtimeClasspath +org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3=compileClasspath,runtimeClasspath +org.jetbrains:annotations:23.0.0=compileClasspath,runtimeClasspath +org.json:json:20230618=compileClasspath +org.slf4j:slf4j-api:1.7.36=runtimeClasspath +org.slf4j:slf4j-api:2.0.7=compileClasspath +empty= diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 92f06b5..d0d403e 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/src/main/kotlin/dev/minn/jda/ktx/interactions/components/modals.kt b/src/main/kotlin/dev/minn/jda/ktx/interactions/components/modals.kt index 0224f1d..6b4c98d 100644 --- a/src/main/kotlin/dev/minn/jda/ktx/interactions/components/modals.kt +++ b/src/main/kotlin/dev/minn/jda/ktx/interactions/components/modals.kt @@ -156,5 +156,5 @@ class InlineModal(val builder: Modal.Builder) { * * @return The [Modal] instance */ - fun build(): Modal = builder.addActionRows(configuredComponents.mapNotNull { it as? ActionRow }).build() + fun build(): Modal = builder.addComponents(configuredComponents.mapNotNull { it as? ActionRow }).build() }