Kotlin Init

This commit is contained in:
nelle 2024-03-09 20:25:03 -07:00
parent 096c48a243
commit dfd46a9b56
6 changed files with 174 additions and 28 deletions

142
build.gradle.kts Normal file
View file

@ -0,0 +1,142 @@
// This is to suppress false warnings generated by a bug in IntelliJ
@file:Suppress("DSL_SCOPE_VIOLATION", "MISSING_DEPENDENCY_CLASS", "FUNCTION_CALL_EXPECTED", "PropertyName")
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
java
`maven-publish`
alias(libs.plugins.kotlin)
alias(libs.plugins.quilt.loom)
}
val archives_base_name: String by project
base.archivesName.set(archives_base_name)
val javaVersion = 17
repositories {
// Add repositories to retrieve artifacts from in here.
// You should only use this when depending on other mods because
// Loom adds the essential maven repositories to download Minecraft and libraries from automatically.
// See https://docs.gradle.org/current/userguide/declaring_repositories.html
// for more information about repositories.
}
// All the dependencies are declared at gradle/libs.version.toml and referenced with "libs.<id>"
// See https://docs.gradle.org/current/userguide/platforms.html for information on how version catalogs work.
dependencies {
minecraft(libs.minecraft)
mappings(
variantOf(libs.quilt.mappings) {
classifier("intermediary-v2")
}
)
// Replace the above line with the block below if you want to use Mojang mappings as your primary mappings, falling back on QM for parameters and Javadocs
/*
mappings(
loom.layered {
mappings(variantOf(libs.quilt.mappings) { classifier("intermediary-v2") })
officialMojangMappings()
}
)
*/
modImplementation(libs.quilt.loader)
// QSL is not a complete API; You will need Quilted Fabric API to fill in the gaps.
// Quilted Fabric API will automatically pull in the correct QSL version.
modImplementation(libs.qfapi)
// modImplementation(libs.bundles.qfapi) // If you wish to use the deprecated Fabric API modules
modImplementation(libs.qkl)
}
tasks {
withType<KotlinCompile> {
kotlinOptions {
jvmTarget = javaVersion.toString()
// languageVersion: A.B of the kotlin plugin version A.B.C
languageVersion = libs.plugins.kotlin.get().version.requiredVersion.substringBeforeLast('.')
}
}
withType<JavaCompile>.configureEach {
options.encoding = "UTF-8"
options.isDeprecation = true
options.release.set(javaVersion)
}
processResources {
filteringCharset = "UTF-8"
inputs.property("version", project.version)
filesMatching("quilt.mod.json") {
expand(
mapOf(
"version" to project.version
)
)
}
}
javadoc {
options.encoding = "UTF-8"
}
// Run `./gradlew wrapper --gradle-version <newVersion>` or `gradle wrapper --gradle-version <newVersion>` to update gradle scripts
// BIN distribution should be sufficient for the majority of mods
wrapper {
distributionType = Wrapper.DistributionType.BIN
}
jar {
from("LICENSE") {
rename { "LICENSE_${archives_base_name}" }
}
}
}
val targetJavaVersion = JavaVersion.toVersion(javaVersion)
if (JavaVersion.current() < targetJavaVersion) {
kotlin.jvmToolchain(javaVersion)
java.toolchain {
languageVersion.set(JavaLanguageVersion.of(javaVersion))
}
}
java {
// Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task if it is present.
// If you remove this line, sources will not be generated.
withSourcesJar()
// If this mod is going to be a library, then it should also generate Javadocs in order to aid with development.
// Uncomment this line to generate them.
// withJavadocJar()
// Still required by IDEs such as Eclipse and VSC
sourceCompatibility = targetJavaVersion
targetCompatibility = targetJavaVersion
}
// Configure the maven publication
publishing {
publications {
register<MavenPublication>("Maven") {
from(components.getByName("java"))
}
}
// See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing.
repositories {
// Add repositories to publish to here.
// Notice: This block does NOT have the same function as the block in the top level.
// The repositories here will be used for publishing your artifact, not for
// retrieving dependencies.
}
}

View file

@ -5,7 +5,7 @@ org.gradle.parallel = true
modid=sine-termino modid=sine-termino
# Mod Properties # Mod Properties
version = 0.0.10 version = 0.1.0
maven_group = xyz.limepot maven_group = xyz.limepot
archives_base_name = stellarworks archives_base_name = stellarworks
projchangelog = Changelog! projchangelog = Changelog!

View file

@ -1,24 +1,26 @@
[versions] [versions]
# The latest versions are available at https://lambdaurora.dev/tools/import_quilt.html kotlin = "1.8.22"
minecraft = "1.20.1"
quilt_mappings = "1.20.1+build.1"
quilt_loader = "0.19.1"
quilted_fabric_api = "7.0.3+0.83.1-1.20.1" minecraft = "1.20.1"
qfapi = "7.5.0+0.91.0-1.20.1"
qkl = "2.1.0+kt.1.8.22+flk.1.9.4"
loader = "0.23.1"
mappings = "1.20.1+build.23"
loom = "1.2.3"
[libraries] [libraries]
minecraft = { module = "com.mojang:minecraft", version.ref = "minecraft" } minecraft = { module = "com.mojang:minecraft", version.ref = "minecraft" }
quilt_mappings = { module = "org.quiltmc:quilt-mappings", version.ref = "quilt_mappings" } qfapi = { module = "org.quiltmc.quilted-fabric-api:quilted-fabric-api", version.ref = "qfapi" }
quilt_loader = { module = "org.quiltmc:quilt-loader", version.ref = "quilt_loader" } qfapi_deprecated = { module = "org.quiltmc.quilted-fabric-api:quilted-fabric-api-deprecated", version.ref = "qfapi" }
quilted_fabric_api = { module = "org.quiltmc.quilted-fabric-api:quilted-fabric-api", version.ref = "quilted_fabric_api" }
quilted_fabric_api_deprecated = { module = "org.quiltmc.quilted-fabric-api:quilted-fabric-api-deprecated", version.ref = "quilted_fabric_api" }
qkl = { module = "org.quiltmc.quilt-kotlin-libraries:quilt-kotlin-libraries", version.ref = "qkl" }
quilt_loader = { module = "org.quiltmc:quilt-loader", version.ref = "loader" }
quilt_mappings = { module = "org.quiltmc:quilt-mappings", version.ref = "mappings" }
# If you have multiple similar dependencies, you can declare a dependency bundle and reference it on the build script with "libs.bundles.example".
[bundles] [bundles]
quilted_fabric_api = ["quilted_fabric_api", "quilted_fabric_api_deprecated"] quilted_fabric_api = ["qfapi", "qfapi_deprecated"]
[plugins] [plugins]
quilt_loom = { id = "org.quiltmc.loom", version = "1.2.+" } kotlin = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
quilt_loom = { id = "org.quiltmc.loom", version.ref = "loom" }

View file

@ -1,14 +0,0 @@
pluginManagement {
repositories {
maven {
name = 'Quilt'
url = 'https://maven.quiltmc.org/repository/release'
}
// Currently needed for Intermediary and other temporary dependencies
maven {
name = 'Fabric'
url = 'https://maven.fabricmc.net/'
}
gradlePluginPortal()
}
}

16
settings.gradle.kts Normal file
View file

@ -0,0 +1,16 @@
pluginManagement {
repositories {
maven {
name = "Quilt"
url = uri("https://maven.quiltmc.org/repository/release")
}
// Currently needed for Intermediary and other temporary dependencies
maven {
name = "Fabric"
url = uri("https://maven.fabricmc.net/")
}
gradlePluginPortal()
mavenCentral()
}
}