diff --git a/build.gradle.kts b/build.gradle.kts index 007754d..65f9511 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,287 +1,27 @@ -import dev.s7a.gradle.minecraft.server.tasks.LaunchMinecraftServerTask -import io.papermc.hangarpublishplugin.HangarPublishTask -import io.papermc.hangarpublishplugin.internal.util.capitalized - plugins { - id("java") - id("idea") - id("org.jetbrains.kotlin.jvm") version "2.3.0" - id("com.gradleup.shadow") version "9.4.1" - id("dev.s7a.gradle.minecraft.server") version "4.0.2" - id("io.insert-koin.compiler.plugin") version "1.0.0-RC1" - id("dev.detekt") version "2.0.0-alpha.2" - id("io.papermc.hangar-publish-plugin") version "0.1.3" - id("com.modrinth.minotaur") version "2.8.7" - id("org.flywaydb.flyway") version "11.10.5" - id("com.github.gmazzo.buildconfig") version "5.6.7" -} - -val buildPaperVersion: String by project -val paperVersions: String by project - -repositories { - mavenCentral() - maven { - url = uri("https://repo.papermc.io/repository/maven-public/") - } -} - -java { - toolchain.languageVersion.set(JavaLanguageVersion.of(25)) -} - -kotlin { - jvmToolchain(25) -} - -val kotlinVersion: String by project -val koinVersion: String by project -val bstatsVersion: String by project -val arrowVersion: String by project -val flywayVersion: String by project -val sqliteVersion: String by project -val mysqlVersion: String by project - -buildscript { - dependencies { - classpath("org.flywaydb:flyway-mysql:11.10.5") - } + id("waystones.base") + id("waystones.build-config") + id("waystones.detekt") + id("waystones.shadow") + id("waystones.flyway") + id("waystones.minecraft-server") + id("waystones.hangar-publish") + id("waystones.modrinth-publish") + id("waystones.resource-processing") } dependencies { compileOnly("io.papermc.paper:paper-api:$buildPaperVersion.build.+") - implementation("org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion") - implementation("io.insert-koin:koin-core:$koinVersion") - implementation("io.insert-koin:koin-annotations:$koinVersion") - - implementation("org.bstats:bstats-bukkit:$bstatsVersion") - shadow("io.arrow-kt:arrow-core:$arrowVersion") - // Database dependencies - shadow("org.flywaydb:flyway-core:$flywayVersion") - shadow("org.xerial:sqlite-jdbc:$sqliteVersion") - shadow("com.mysql:mysql-connector-j:$mysqlVersion") - - - detektPlugins("dev.detekt:detekt-rules-ktlint-wrapper:2.0.0-alpha.2") - - testImplementation("io.mockk:mockk:1.14.2") - testImplementation("io.kotest:kotest-runner-junit5:5.9.1") -} - -buildConfig { - generateAtSync = true - documentation.set("Generated by BuildConfig plugin, do not edit") - packageName("xyz.atrius.waystones.autogenerated") - className("WaystoneDependencyVersions") - useKotlinOutput() - buildConfigField("kotlinVersion", kotlinVersion) - buildConfigField("koinVersion", koinVersion) - buildConfigField("arrowVersion", arrowVersion) - buildConfigField("flywayVersion", flywayVersion) - buildConfigField("sqliteVersion", sqliteVersion) - buildConfigField("mysqlVersion", mysqlVersion) + implementation(libs.kotlin.stdlib) + implementation(libs.koin.core) + implementation(libs.koin.annotations) + implementation(libs.bstats.bukkit) + implementation(libs.arrow.core) + implementation(libs.flyway.core) + implementation(libs.flyway.mysql) + implementation(libs.sqlite.jdbc) + implementation(libs.mysql.connector) + detektPlugins(libs.detekt.ktlint) + testImplementation(libs.mockk) + testImplementation(libs.kotest.runner) } - -flyway { - url = System.getenv("DB_URL") - user = System.getenv("DB_USER") - password = System.getenv("DB_USER_PASSWORD") - locations = arrayOf( - "filesystem:$projectDir/src/main/resources/db/migration/common/**", - "filesystem:$projectDir/src/main/resources/db/migration/${System.getenv("DB_TYPE")}/**", - ) - cleanDisabled = false -} - -tasks.flywayClean { - notCompatibleWithConfigurationCache("Plugin does not handle this well currently") -} - -tasks.flywayValidate { - notCompatibleWithConfigurationCache("Plugin does not handle this well currently") -} - -tasks.flywayMigrate { - notCompatibleWithConfigurationCache("Plugin does not handle this well currently") -} - -group = "xyz.atrius" -description = "Waystones" - -val pluginVersion = "$version-$buildPaperVersion" -val outputProjectName = "${project.name}-$pluginVersion" - -tasks.shadowJar { - minimize() - archiveClassifier.set("") - archiveVersion.set(pluginVersion) - val location = project.group.toString() - relocate("kotlin", location) - relocate("org.bstats", location) -} - -tasks.withType().configureEach { - useJUnitPlatform() -} - -fun buildProviders(vararg properties: String): Map> = properties - .associateWith { providers.provider { project.properties[it] } } - -tasks.processResources { - val providers = buildProviders( - "version", - "buildPaperVersion", - "pluginApiVersion", - "paperVersions", - "pluginWebsite", - ) - -// doLast { - filesMatching("paper-plugin.yml") { - expand(providers.mapValues { it.value.get() }) - } -// } -} - -tasks.build { - delete( - "build/MinecraftServer/plugins/waystones", - "build/MinecraftServer/plugins/$outputProjectName.jar", - "build/libs" - ) -} - -tasks.register("buildPlugin") { - notCompatibleWithConfigurationCache("Do not cache artifacts") - dependsOn("shadowJar") - - doFirst { - copy { - from(rootDir.resolve("build/libs")) - .include("$outputProjectName.jar") - into(rootDir.resolve("build/MinecraftServer/plugins")) - } - } -} - -detekt { - autoCorrect = true - buildUponDefaultConfig = true - config.setFrom("$projectDir/config/detekt.yml") -} - -tasks.register("testPlugin") { - notCompatibleWithConfigurationCache("Do not cache artifacts") - dependsOn("buildPlugin") - jarUrl.set(LaunchMinecraftServerTask.JarUrl.Paper(buildPaperVersion)) - agreeEula.set(true) -} - -val gitHash: String by lazy { - providers - .exec { commandLine("git", "rev-parse", "--short", "HEAD") } - .standardOutput - .asText - .map { it.trim() } - .get() -} -val supported = paperVersions - .split(",") - .map { it.trim() } - -tasks.withType { - notCompatibleWithConfigurationCache("Do not cache artifacts") -} - -private fun extractChangelog(content: String): String { - val lines = content.split("\n") - var skip = true - - if (lines.size == 1) { - return content - } - - for (i in lines.indices) { - if (!lines[i].startsWith("## ")) { - continue - } - - if (skip) { - skip = false - continue - } - - return lines - .subList(0, i) - .joinToString("\n") - .trim() - } - - return content -} - -hangarPublish { - publications.register("WaystonesRelease") { - version = pluginVersion - id = "waystones" - channel = "Release" - changelog = file("CHANGELOG.md") - .readText() - .let(::extractChangelog) - apiKey = System.getenv("HANGAR_API_TOKEN") - - platforms { - paper { - jar = tasks.shadowJar.flatMap { it.archiveFile } - platformVersions = supported - } - } - } - - publications.register("WaystonesSnapshot") { - version = "$pluginVersion-SNAPSHOT+$gitHash" - id = "waystones" - channel = "Snapshot" - changelog = "${project.name.capitalized()} Dev Snapshot [$gitHash]" - apiKey = System.getenv("HANGAR_API_TOKEN") - - platforms { - paper { - jar = tasks.shadowJar.flatMap { it.archiveFile } - platformVersions = supported - } - } - } -} - -tasks.modrinth { - notCompatibleWithConfigurationCache("Do not cache artifacts") -} - -modrinth { - val channel = System - .getenv("MODRINTH_PUBLISH_CHANNEL") - ?: "alpha" - - when (channel) { - "release" -> { - versionNumber = pluginVersion - changelog = file("CHANGELOG.md") - .readText() - .let(::extractChangelog) - } - - else -> { - versionNumber = "$pluginVersion-SNAPSHOT+$gitHash" - changelog = "${project.name.capitalized()} Dev Snapshot [$gitHash]" - } - } - // Common values - token = System.getenv("MODRINTH_TOKEN") - projectId = "atri-waystones" - versionName = "${project.name.capitalized()} $pluginVersion" - uploadFile.set(tasks.shadowJar) - gameVersions = supported - loaders = listOf("paper") - versionType = channel -} \ No newline at end of file diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts new file mode 100644 index 0000000..a4acb44 --- /dev/null +++ b/buildSrc/build.gradle.kts @@ -0,0 +1,20 @@ +plugins { + `kotlin-dsl` +} + +fun DependencyHandlerScope.plugin(plugin: Provider) = + plugin.map { "${it.pluginId}:${it.pluginId}.gradle.plugin:${it.version.requiredVersion}" } + +dependencies { + implementation(plugin(libs.plugins.kotlin.jvm)) + implementation(plugin(libs.plugins.koin.compiler)) + implementation(plugin(libs.plugins.shadow)) + implementation(plugin(libs.plugins.minecraft.server)) + implementation(plugin(libs.plugins.detekt)) + implementation(plugin(libs.plugins.hangar)) + implementation(plugin(libs.plugins.modrinth)) + implementation(plugin(libs.plugins.flyway)) + implementation(plugin(libs.plugins.buildconfig)) + + implementation(files(libs.javaClass.superclass.protectionDomain.codeSource.location)) +} diff --git a/buildSrc/settings.gradle.kts b/buildSrc/settings.gradle.kts new file mode 100644 index 0000000..e6cf7b7 --- /dev/null +++ b/buildSrc/settings.gradle.kts @@ -0,0 +1,14 @@ +dependencyResolutionManagement { + repositories { + mavenCentral() + maven("https://repo.papermc.io/repository/maven-public/") + maven("https://plugins.gradle.org/m2/") + } + versionCatalogs { + create("libs") { + from(files("../gradle/libs.versions.toml")) + } + } +} + +rootProject.name = "buildSrc" diff --git a/buildSrc/src/main/kotlin/BuildUtils.kt b/buildSrc/src/main/kotlin/BuildUtils.kt new file mode 100644 index 0000000..931bbd4 --- /dev/null +++ b/buildSrc/src/main/kotlin/BuildUtils.kt @@ -0,0 +1,69 @@ +import org.gradle.api.Project +import org.gradle.api.provider.Provider +import org.gradle.api.tasks.TaskContainer + +fun String.capitalized(): String = replaceFirstChar { + when (it.isLowerCase()) { + true -> it.titlecase() + else -> it.toString() + } +} + +fun extractChangelog(content: String): String { + val lines = content.split("\n") + var skip = true + + if (lines.size == 1) { + return content + } + + for (i in lines.indices) { + if (!lines[i].startsWith("## ")) { + continue + } + + if (skip) { + skip = false; + continue + } + + return lines + .subList(0, i) + .joinToString("\n") + .trim() + } + + return content +} + +val Project.buildPaperVersion: String + get() = project.properties["buildPaperVersion"] as String + +val Project.paperVersions: String + get() = project.properties["paperVersions"] as String + +val Project.pluginVersion: String + get() = "${project.version}-$buildPaperVersion" + +val Project.outputProjectName: String + get() = "${project.name}-$pluginVersion" + +val Project.supportedVersions: List + get() = paperVersions + .split(",") + .map { it.trim() } + +val Project.gitHash: Provider + get() = providers + .exec { commandLine("git", "rev-parse", "--short", "HEAD") } + .standardOutput + .asText + .map { it.trim() } + +fun TaskContainer.disableConfigurationCache(vararg taskNames: String) { + taskNames.forEach { name -> + named(name) { + notCompatibleWithConfigurationCache("Plugin does not handle configuration cache well") + } + } +} diff --git a/buildSrc/src/main/kotlin/waystones.base.gradle.kts b/buildSrc/src/main/kotlin/waystones.base.gradle.kts new file mode 100644 index 0000000..e1415f6 --- /dev/null +++ b/buildSrc/src/main/kotlin/waystones.base.gradle.kts @@ -0,0 +1,22 @@ +plugins { + java + idea + id("org.jetbrains.kotlin.jvm") + id("io.insert-koin.compiler.plugin") +} + +group = "xyz.atrius" +description = "Waystones" + +java { + toolchain.languageVersion.set(JavaLanguageVersion.of(25)) +} + +kotlin { + jvmToolchain(25) +} + +repositories { + mavenCentral() + maven("https://repo.papermc.io/repository/maven-public/") +} diff --git a/buildSrc/src/main/kotlin/waystones.build-config.gradle.kts b/buildSrc/src/main/kotlin/waystones.build-config.gradle.kts new file mode 100644 index 0000000..5fb2b38 --- /dev/null +++ b/buildSrc/src/main/kotlin/waystones.build-config.gradle.kts @@ -0,0 +1,22 @@ +import org.gradle.accessors.dm.LibrariesForLibs + +plugins { + id("waystones.base") + id("com.github.gmazzo.buildconfig") +} + +val libs = extensions.getByName("libs") + +buildConfig { + generateAtSync = true + documentation.set("Generated by BuildConfig plugin, do not edit") + packageName("xyz.atrius.waystones.autogenerated") + className("WaystoneDependencyVersions") + useKotlinOutput() + buildConfigField("kotlinVersion", libs.kotlin.stdlib.get().version) + buildConfigField("koinVersion", libs.koin.core.get().version) + buildConfigField("arrowVersion", libs.arrow.core.get().version) + buildConfigField("flywayVersion", libs.flyway.core.get().version) + buildConfigField("sqliteVersion", libs.sqlite.jdbc.get().version) + buildConfigField("mysqlVersion", libs.mysql.connector.get().version) +} diff --git a/buildSrc/src/main/kotlin/waystones.detekt.gradle.kts b/buildSrc/src/main/kotlin/waystones.detekt.gradle.kts new file mode 100644 index 0000000..1605254 --- /dev/null +++ b/buildSrc/src/main/kotlin/waystones.detekt.gradle.kts @@ -0,0 +1,18 @@ +import org.gradle.accessors.dm.LibrariesForLibs + +plugins { + id("waystones.base") + id("dev.detekt") +} + +val libs = the() + +dependencies { + detektPlugins(libs.detekt.ktlint) +} + +detekt { + autoCorrect = true + buildUponDefaultConfig = true + config.setFrom("$projectDir/config/detekt.yml") +} diff --git a/buildSrc/src/main/kotlin/waystones.flyway.gradle.kts b/buildSrc/src/main/kotlin/waystones.flyway.gradle.kts new file mode 100644 index 0000000..d0325af --- /dev/null +++ b/buildSrc/src/main/kotlin/waystones.flyway.gradle.kts @@ -0,0 +1,17 @@ +plugins { + id("waystones.base") + id("org.flywaydb.flyway") +} + +flyway { + url = System.getenv("DB_URL") + user = System.getenv("DB_USER") + password = System.getenv("DB_USER_PASSWORD") + locations = arrayOf( + "filesystem:$projectDir/src/main/resources/db/migration/common/**", + "filesystem:$projectDir/src/main/resources/db/migration/${System.getenv("DB_TYPE")}/**", + ) + cleanDisabled = false +} + +tasks.disableConfigurationCache("flywayClean", "flywayValidate", "flywayMigrate") diff --git a/buildSrc/src/main/kotlin/waystones.hangar-publish.gradle.kts b/buildSrc/src/main/kotlin/waystones.hangar-publish.gradle.kts new file mode 100644 index 0000000..d38fa00 --- /dev/null +++ b/buildSrc/src/main/kotlin/waystones.hangar-publish.gradle.kts @@ -0,0 +1,45 @@ +import io.papermc.hangarpublishplugin.HangarPublishTask + +plugins { + id("waystones.base") + id("waystones.shadow") + id("io.papermc.hangar-publish-plugin") +} + +tasks.withType { + notCompatibleWithConfigurationCache("Do not cache artifacts") +} + +hangarPublish { + publications.register("WaystonesRelease") { + version = pluginVersion + id = "waystones" + channel = "Release" + changelog = file("CHANGELOG.md") + .readText() + .let(::extractChangelog) + apiKey = System.getenv("HANGAR_API_TOKEN") + + platforms { + paper { + jar = tasks.shadowJar.flatMap { it.archiveFile } + platformVersions = supportedVersions + } + } + } + + publications.register("WaystonesSnapshot") { + version = "$pluginVersion-SNAPSHOT+$gitHash" + id = "waystones" + channel = "Snapshot" + changelog = "${project.name.capitalized()} Dev Snapshot [$gitHash.get()]" + apiKey = System.getenv("HANGAR_API_TOKEN") + + platforms { + paper { + jar = tasks.shadowJar.flatMap { it.archiveFile } + platformVersions = supportedVersions + } + } + } +} diff --git a/buildSrc/src/main/kotlin/waystones.minecraft-server.gradle.kts b/buildSrc/src/main/kotlin/waystones.minecraft-server.gradle.kts new file mode 100644 index 0000000..b991a2d --- /dev/null +++ b/buildSrc/src/main/kotlin/waystones.minecraft-server.gradle.kts @@ -0,0 +1,35 @@ +import dev.s7a.gradle.minecraft.server.tasks.LaunchMinecraftServerTask + +plugins { + id("waystones.base") + id("waystones.shadow") + id("dev.s7a.gradle.minecraft.server") +} + +tasks.build { + delete( + "build/MinecraftServer/plugins/waystones", + "build/MinecraftServer/plugins/$outputProjectName.jar", + "build/libs" + ) +} + +tasks.register("buildPlugin") { + notCompatibleWithConfigurationCache("Do not cache artifacts") + dependsOn("shadowJar") + + doFirst { + copy { + from(rootDir.resolve("build/libs")) + .include("$outputProjectName.jar") + into(rootDir.resolve("build/MinecraftServer/plugins")) + } + } +} + +tasks.register("testPlugin") { + notCompatibleWithConfigurationCache("Do not cache artifacts") + dependsOn("buildPlugin") + jarUrl.set(LaunchMinecraftServerTask.JarUrl.Paper(buildPaperVersion)) + agreeEula.set(true) +} diff --git a/buildSrc/src/main/kotlin/waystones.modrinth-publish.gradle.kts b/buildSrc/src/main/kotlin/waystones.modrinth-publish.gradle.kts new file mode 100644 index 0000000..f10e20e --- /dev/null +++ b/buildSrc/src/main/kotlin/waystones.modrinth-publish.gradle.kts @@ -0,0 +1,33 @@ +plugins { + id("waystones.base") + id("waystones.shadow") + id("com.modrinth.minotaur") +} + +val channel = System.getenv("MODRINTH_PUBLISH_CHANNEL") ?: "alpha" + +modrinth { + when (channel) { + "release" -> { + versionNumber = pluginVersion + changelog = file("CHANGELOG.md") + .readText() + .let(::extractChangelog) + } + else -> { + versionNumber = "$pluginVersion-SNAPSHOT+$gitHash" + changelog = "${project.name.capitalized()} Dev Snapshot [$gitHash.get()]" + } + } + token = System.getenv("MODRINTH_TOKEN") + projectId = "atri-waystones" + versionName = "${project.name.capitalized()} $pluginVersion" + uploadFile.set(tasks.shadowJar) + gameVersions = supportedVersions + loaders = listOf("paper") + versionType = channel +} + +tasks.modrinth { + notCompatibleWithConfigurationCache("Do not cache artifacts") +} diff --git a/buildSrc/src/main/kotlin/waystones.resource-processing.gradle.kts b/buildSrc/src/main/kotlin/waystones.resource-processing.gradle.kts new file mode 100644 index 0000000..19ca926 --- /dev/null +++ b/buildSrc/src/main/kotlin/waystones.resource-processing.gradle.kts @@ -0,0 +1,27 @@ +plugins { + id("waystones.base") +} + +val versionProp = providers.gradleProperty("version") +val buildPaperVersionProp = providers.gradleProperty("buildPaperVersion") +val pluginApiVersionProp = providers.gradleProperty("pluginApiVersion") +val paperVersionsProp = providers.gradleProperty("paperVersions") +val pluginWebsiteProp = providers.gradleProperty("pluginWebsite") + +tasks.processResources { + val version = versionProp.get() + val buildPaperVersion = buildPaperVersionProp.get() + val pluginApiVersion = pluginApiVersionProp.get() + val paperVersions = paperVersionsProp.get() + val pluginWebsite = pluginWebsiteProp.get() + + filesMatching("paper-plugin.yml") { + expand( + "version" to version, + "buildPaperVersion" to buildPaperVersion, + "pluginApiVersion" to pluginApiVersion, + "paperVersions" to paperVersions, + "pluginWebsite" to pluginWebsite, + ) + } +} diff --git a/buildSrc/src/main/kotlin/waystones.shadow.gradle.kts b/buildSrc/src/main/kotlin/waystones.shadow.gradle.kts new file mode 100644 index 0000000..f415977 --- /dev/null +++ b/buildSrc/src/main/kotlin/waystones.shadow.gradle.kts @@ -0,0 +1,16 @@ +plugins { + id("waystones.base") + id("com.gradleup.shadow") +} + +tasks.shadowJar { + minimize { + exclude(dependency("org.flywaydb:flyway-mysql:.*")) + } + mergeServiceFiles() + archiveClassifier.set("") + archiveVersion.set(pluginVersion) + val location = project.group.toString() + relocate("kotlin", location) + relocate("org.bstats", location) +} diff --git a/gradle.properties b/gradle.properties index 8a3dec5..996cb52 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,14 +4,7 @@ org.gradle.jvmargs=-Xmx4098m version=2.2.0 # x-release-please-end -bstatsVersion=3.1.0 buildPaperVersion=26.1.2 pluginApiVersion=26.1 paperVersions=26.1 -pluginWebsite=https://github.com/AtriusX/Waystones -kotlinVersion=2.3.0 -koinVersion=4.2.1 -arrowVersion=2.1.2 -flywayVersion=11.10.5 -sqliteVersion=3.50.3.0 -mysqlVersion=9.4.0 \ No newline at end of file +pluginWebsite=https://github.com/AtriusX/Waystones \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 0000000..284f83a --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,43 @@ +[versions] +kotlin = "2.3.0" +koin = "4.2.1" +arrow = "2.1.2" +flyway = "11.10.5" +sqlite = "3.50.3.0" +mysql = "9.4.0" +bstats = "3.1.0" +detekt = "2.0.0-alpha.2" +shadow = "9.4.1" +minecraft-server = "4.0.2" +koin-compiler = "1.0.0-RC1" +hangar = "0.1.3" +modrinth = "2.8.7" +buildconfig = "5.6.7" +mockk = "1.14.2" +kotest = "5.9.1" + +[libraries] +paper-api = { module = "io.papermc.paper:paper-api", version = "26.1.2.build.+" } +kotlin-stdlib = { module = "org.jetbrains.kotlin:kotlin-stdlib", version.ref = "kotlin" } +koin-core = { module = "io.insert-koin:koin-core", version.ref = "koin" } +koin-annotations = { module = "io.insert-koin:koin-annotations", version.ref = "koin" } +bstats-bukkit = { module = "org.bstats:bstats-bukkit", version.ref = "bstats" } +arrow-core = { module = "io.arrow-kt:arrow-core", version.ref = "arrow" } +flyway-core = { module = "org.flywaydb:flyway-core", version.ref = "flyway" } +flyway-mysql = { module = "org.flywaydb:flyway-mysql", version.ref = "flyway" } +sqlite-jdbc = { module = "org.xerial:sqlite-jdbc", version.ref = "sqlite" } +mysql-connector = { module = "com.mysql:mysql-connector-j", version.ref = "mysql" } +detekt-ktlint = { module = "dev.detekt:detekt-rules-ktlint-wrapper", version.ref = "detekt" } +mockk = { module = "io.mockk:mockk", version.ref = "mockk" } +kotest-runner = { module = "io.kotest:kotest-runner-junit5", version.ref = "kotest" } + +[plugins] +kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } +shadow = { id = "com.gradleup.shadow", version.ref = "shadow" } +minecraft-server = { id = "dev.s7a.gradle.minecraft.server", version.ref = "minecraft-server" } +koin-compiler = { id = "io.insert-koin.compiler.plugin", version.ref = "koin-compiler" } +detekt = { id = "dev.detekt", version.ref = "detekt" } +hangar = { id = "io.papermc.hangar-publish-plugin", version.ref = "hangar" } +modrinth = { id = "com.modrinth.minotaur", version.ref = "modrinth" } +flyway = { id = "org.flywaydb.flyway", version.ref = "flyway" } +buildconfig = { id = "com.github.gmazzo.buildconfig", version.ref = "buildconfig" } diff --git a/settings.gradle b/settings.gradle.kts similarity index 51% rename from settings.gradle rename to settings.gradle.kts index f1c0c62..4b97a9b 100644 --- a/settings.gradle +++ b/settings.gradle.kts @@ -1,7 +1,3 @@ -/* - * This file was generated by the Gradle 'init' task. - */ - pluginManagement { repositories { mavenCentral() @@ -9,4 +5,4 @@ pluginManagement { } } -rootProject.name = 'waystones' +rootProject.name = "waystones"