This commit is contained in:
nea
2022-07-29 20:51:53 +02:00
parent 386ee78026
commit f4bf70032a
18 changed files with 119 additions and 274 deletions

View File

@@ -1,51 +1,24 @@
import net.fabricmc.loom.api.LoomGradleExtensionAPI
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins { plugins {
java java
`kotlin-dsl` `maven-publish`
id("architectury-plugin") version "3.4-SNAPSHOT" kotlin("jvm") version "1.7.10"
id("dev.architectury.loom") version "0.12.0.+" apply false id("dev.architectury.loom") version "0.12.0.+"
id("com.github.johnrengelman.plugin-shadow") version "2.0.3"
} }
architectury { loom {
minecraft = rootProject.property("minecraft_version").toString() accessWidenerPath.set(project.file("src/main/resources/notenoughupdates.accesswidener"))
} launches {
removeIf { it.name != "client" }
subprojects { named("client") {
apply(plugin = "dev.architectury.loom") property("fabric.log.level", "info")
}
val loom = project.extensions.getByName<LoomGradleExtensionAPI>("loom")
dependencies {
"minecraft"("com.mojang:minecraft:${project.property("minecraft_version")}")
// The following line declares the mojmap mappings, you may use other mappings as well
"mappings"(
loom.officialMojangMappings()
)
// The following line declares the yarn mappings you may select this one as well.
// "mappings"("net.fabricmc:yarn:1.18.2+build.3:v2")
} }
} }
allprojects { repositories {
apply(plugin = "java")
apply(plugin = "architectury-plugin")
apply(plugin = "maven-publish")
apply(plugin = "org.jetbrains.kotlin.jvm")
base.archivesName.set(rootProject.property("archives_base_name").toString())
//base.archivesBaseName = rootProject.property("archives_base_name").toString()
version = rootProject.property("mod_version").toString()
group = rootProject.property("maven_group").toString()
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.
maven("https://maven.terraformersmc.com/releases/") maven("https://maven.terraformersmc.com/releases/")
maven("https://maven.shedaniel.me") maven("https://maven.shedaniel.me")
maven("https://pkgs.dev.azure.com/djtheredstoner/DevAuth/_packaging/public/maven/v1") maven("https://pkgs.dev.azure.com/djtheredstoner/DevAuth/_packaging/public/maven/v1")
@@ -55,30 +28,65 @@ allprojects {
} }
} }
mavenLocal() mavenLocal()
} }
dependencies { val shadowMe by configurations.creating {
"compileClasspath"("org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.21") configurations.implementation.get().extendsFrom(this)
implementation("io.github.moulberry:neurepoparser:0.0.1") }
}
tasks.withType<JavaCompile> { dependencies {
// Minecraft dependencies
"minecraft"("com.mojang:minecraft:${project.property("minecraft_version")}")
"mappings"(loom.officialMojangMappings())
// Fabric dependencies
modImplementation("net.fabricmc:fabric-loader:${project.property("fabric_loader_version")}")
modApi("net.fabricmc.fabric-api:fabric-api:${project.property("fabric_api_version")}")
modImplementation("net.fabricmc:fabric-language-kotlin:1.8.2+kotlin.1.7.10")
// Actual dependencies
modCompileOnly("me.shedaniel:RoughlyEnoughItems-api:${rootProject.property("rei_version")}")
shadowMe("io.github.moulberry:neurepoparser:0.0.1")
// Dev environment preinstalled mods
modRuntimeOnly("me.shedaniel:RoughlyEnoughItems-fabric:${project.property("rei_version")}")
modRuntimeOnly("me.djtheredstoner:DevAuth-fabric:${project.property("devauth_version")}")
modRuntimeOnly("maven.modrinth:modmenu:${project.property("modmenu_version")}")
}
version = rootProject.property("mod_version").toString()
group = rootProject.property("maven_group").toString()
tasks.withType<JavaCompile> {
options.encoding = "UTF-8" options.encoding = "UTF-8"
options.release.set(17) options.release.set(17)
} }
java { java {
withSourcesJar() withSourcesJar()
toolchain.languageVersion.set(JavaLanguageVersion.of(17)) toolchain.languageVersion.set(JavaLanguageVersion.of(17))
} }
// could not set to 17, up to 16 // could not set to 17, up to 16
val compileKotlin: KotlinCompile by tasks val compileKotlin: KotlinCompile by tasks
compileKotlin.kotlinOptions { compileKotlin.kotlinOptions {
jvmTarget = "16" jvmTarget = "16"
} }
val compileTestKotlin: KotlinCompile by tasks val compileTestKotlin: KotlinCompile by tasks
compileTestKotlin.kotlinOptions { compileTestKotlin.kotlinOptions {
jvmTarget = "16" jvmTarget = "16"
} }
tasks.shadowJar {
configurations = listOf(shadowMe)
archiveClassifier.set("dev-thicc")
}
tasks.remapJar {
injectAccessWidener.set(true)
inputFile.set(tasks.shadowJar.flatMap { it.archiveFile })
dependsOn(tasks.shadowJar)
archiveClassifier.set("thicc")
} }

View File

@@ -1,36 +0,0 @@
plugins {
`maven-publish`
}
architectury {
val enabled_platforms: String by rootProject
common(enabled_platforms.split(","))
}
loom {
accessWidenerPath.set(file("src/main/resources/notenoughupdates.accesswidener"))
}
dependencies {
// We depend on fabric loader here to use the fabric @Environment annotations and get the mixin dependencies
// Do NOT use other classes from fabric loader
modImplementation("net.fabricmc:fabric-loader:${rootProject.property("fabric_loader_version")}")
// Remove the next line if you don't want to depend on the API
modApi("dev.architectury:architectury:${rootProject.property("architectury_version")}")
modCompileOnly("me.shedaniel:RoughlyEnoughItems-api:${rootProject.property("rei_version")}")
implementation(kotlin("stdlib-jdk8"))
}
publishing {
publications {
create<MavenPublication>("maven") {
artifactId = rootProject.property("archives_base_name").toString()
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.
}
}

View File

@@ -1,3 +0,0 @@
{
"accessWidener": "notenoughupdates.accesswidener"
}

View File

@@ -1,113 +0,0 @@
plugins {
id("com.github.johnrengelman.shadow") version "7.1.2"
}
architectury {
platformSetupLoomIde()
fabric()
}
loom {
accessWidenerPath.set(project(":common").loom.accessWidenerPath)
launches {
named("client") {
property("fabric.log.level", "info")
}
}
}
/**
* @see: https://docs.gradle.org/current/userguide/migrating_from_groovy_to_kotlin_dsl.html
* */
val common: Configuration by configurations.creating
val shadowCommon: Configuration by configurations.creating // Don't use shadow from the shadow plugin because we don't want IDEA to index this.
val developmentFabric: Configuration = configurations.getByName("developmentFabric")
configurations {
compileClasspath.get().extendsFrom(configurations["common"])
runtimeClasspath.get().extendsFrom(configurations["common"])
developmentFabric.extendsFrom(configurations["common"])
}
dependencies {
modImplementation("net.fabricmc:fabric-loader:${rootProject.property("fabric_loader_version")}")
modApi("net.fabricmc.fabric-api:fabric-api:${rootProject.property("fabric_api_version")}")
// Remove the next line if you don't want to depend on the API
modApi("dev.architectury:architectury-fabric:${rootProject.property("architectury_version")}")
common(project(":common", configuration = "namedElements")) { isTransitive = false }
shadowCommon(project(":common", configuration = "transformProductionFabric")) { isTransitive = false }
common(kotlin("stdlib-jdk8"))
modRuntimeOnly("me.shedaniel:RoughlyEnoughItems-fabric:${rootProject.property("rei_version")}")
modRuntimeOnly("me.djtheredstoner:DevAuth-fabric:${rootProject.property("devauth_version")}")
modRuntimeOnly("maven.modrinth:modmenu:${rootProject.property("modmenu_version")}")
}
val javaComponent = components.getByName("java", AdhocComponentWithVariants::class)
javaComponent.withVariantsFromConfiguration(configurations["sourcesElements"]) {
skip()
}
tasks {
processResources {
inputs.property("version", project.version)
filesMatching("fabric.mod.json") {
expand("version" to project.version)
}
}
shadowJar {
exclude("architectury.common.json")
/**
* magic!
* groovy -> kotlin dsl
* [project.configurations.shadowCommon] -> listOf(project.configurations["shadowCommon"])
* */
configurations = listOf(project.configurations["shadowCommon"])
archiveClassifier.set("dev-shadow")
}
remapJar {
injectAccessWidener.set(true)
/**
* magic!
* groovy -> kotlin dsl
* shadowJar.archiveFile -> shadowJar.flatMap { it.archiveFile }
* */
inputFile.set(shadowJar.flatMap { it.archiveFile })
dependsOn(shadowJar)
/**
* affect suffix of build jar name
* if { archiveClassifier.set("fabric") }
* name will be examplemod-1.0.0-fabric.jar
*/
archiveClassifier.set("fabric")
}
jar {
archiveClassifier.set("dev")
}
sourcesJar {
val commonSources = project(":common").tasks.getByName("sourcesJar", Jar::class)
dependsOn(commonSources)
from(commonSources.archiveFile.map { zipTree(it) })
}
publishing {
publications {
create<MavenPublication>("mavenFabric") {
artifactId = "${rootProject.property("archives_base_name")}-${project.name}"
from(javaComponent)
}
}
// 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.
}
}
}

View File

@@ -1,10 +0,0 @@
package moe.nea.notenoughupdates
import moe.nea.notenoughupdates.NotEnoughUpdates.init
import net.fabricmc.api.ModInitializer
class FabricMain : ModInitializer {
override fun onInitialize() {
init()
}
}

View File

@@ -1,12 +0,0 @@
{
"required": true,
"package": "net.examplemod.mixin.fabric",
"compatibilityLevel": "JAVA_16",
"client": [
],
"mixins": [
],
"injectors": {
"defaultRequire": 1
}
}

View File

@@ -1,7 +1,7 @@
org.gradle.jvmargs=-Xmx4096M org.gradle.jvmargs=-Xmx4096M
minecraft_version=1.19 minecraft_version=1.19
enabled_platforms=fabric loom.platform=fabric
archives_base_name=notenoughupdates archives_base_name=notenoughupdates
mod_version=1.0.0 mod_version=1.0.0
@@ -12,8 +12,6 @@ architectury_version=5.10.33
fabric_loader_version=0.14.8 fabric_loader_version=0.14.8
fabric_api_version=0.58.0+1.19 fabric_api_version=0.58.0+1.19
kotlin_version=1.7.0-RC
rei_version=9.1.518 rei_version=9.1.518
devauth_version=1.0.0 devauth_version=1.0.0
modmenu_version=4.0.4 modmenu_version=4.0.4

View File

@@ -16,8 +16,5 @@ pluginManagement {
} }
} }
include("common")
include("fabric")
rootProject.name = "NotEnoughApdates" rootProject.name = "NotEnoughApdates"

View File

@@ -1,12 +1,11 @@
package moe.nea.notenoughupdates package moe.nea.notenoughupdates
import dev.architectury.registry.registries.Registries
import io.github.moulberry.repo.NEURepository import io.github.moulberry.repo.NEURepository
import net.fabricmc.api.ModInitializer
import java.nio.file.Path import java.nio.file.Path
import java.util.logging.Logger
object NotEnoughUpdates { object NotEnoughUpdates : ModInitializer {
val REGISTRIES by lazy { Registries.get(MOD_ID) } val DATA_DIR = Path.of(".notenoughupdates")
const val MOD_ID = "notenoughupdates" const val MOD_ID = "notenoughupdates"
@@ -14,8 +13,6 @@ object NotEnoughUpdates {
it.reload() it.reload()
} }
override fun onInitialize() {
fun init() {
} }
} }

View File

@@ -0,0 +1,17 @@
package moe.nea.notenoughupdates.repo
import moe.nea.notenoughupdates.NotEnoughUpdates
object RepoDownloadManager {
val repoSavedLocation = NotEnoughUpdates.DATA_DIR.resolve("repo-extracted")
val repoMetadataLocation = NotEnoughUpdates.DATA_DIR.resolve("loaded-repo.json")
data class RepoMetadata(
var latestCommit: String,
var user: String,
var repository: String,
var branch: String,
)
}

View File

@@ -16,19 +16,21 @@
"environment": "client", "environment": "client",
"entrypoints": { "entrypoints": {
"main": [ "main": [
"moe.nea.notenoughupdates.FabricMain" {
"adapter": "kotlin",
"value": "moe.nea.notenoughupdates.NotEnoughUpdates"
}
], ],
"rei": [ "rei": [
"moe.nea.notenoughupdates.rei.NEUReiPlugin" "moe.nea.notenoughupdates.rei.NEUReiPlugin"
] ]
}, },
"mixins": [ "mixins": [
"notenoughupdates.mixins.json", "notenoughupdates.mixins.json"
"notenoughupdates-common.mixins.json"
], ],
"depends": { "depends": {
"fabric": "*", "fabric": "*",
"minecraft": ">=1.18.2", "fabric-language-kotlin": ">=1.8.2+kotlin.1.7.10",
"architectury": ">=4.2.50" "minecraft": ">=1.18.2"
} }
} }

View File

@@ -1,6 +1,6 @@
{ {
"required": true, "required": true,
"package": "net.examplemod.mixin", "package": "moe.nea.notenoughupdates.mixins",
"compatibilityLevel": "JAVA_16", "compatibilityLevel": "JAVA_16",
"client": [ "client": [
], ],