This commit is contained in:
nea
2022-07-12 14:20:22 +02:00
commit 372eec27e5
35 changed files with 1333 additions and 0 deletions

108
forge/build.gradle.kts Normal file
View File

@@ -0,0 +1,108 @@
plugins {
id("com.github.johnrengelman.shadow") version "7.1.2"
}
architectury {
platformSetupLoomIde()
forge()
}
loom {
accessWidenerPath.set(project(":common").loom.accessWidenerPath)
forge {
convertAccessWideners.set(true)
extraAccessWideners.add(loom.accessWidenerPath.get().asFile.name)
}
}
/**
* @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 developmentForge: Configuration = configurations.getByName("developmentForge")
configurations {
compileClasspath.get().extendsFrom(configurations["common"])
runtimeClasspath.get().extendsFrom(configurations["common"])
developmentForge.extendsFrom(configurations["common"])
}
dependencies {
forge("net.minecraftforge:forge:${rootProject.property("forge_version")}")
// Remove the next line if you don't want to depend on the API
modApi("dev.architectury:architectury-forge:${rootProject.property("architectury_version")}")
common(project(":common", configuration = "namedElements")) { isTransitive = false }
shadowCommon(project(":common", configuration = "transformProductionForge")) { isTransitive = false }
common(kotlin("stdlib-jdk8"))
modRuntimeOnly("me.shedaniel:RoughlyEnoughItems-forge:${rootProject.property("rei_version")}")
}
val javaComponent = components["java"] as AdhocComponentWithVariants
javaComponent.withVariantsFromConfiguration(configurations["sourcesElements"]) {
skip()
}
tasks {
processResources {
inputs.property("version", project.version)
filesMatching("META-INF/mods.toml") {
expand("version" to project.version)
}
}
shadowJar {
exclude("fabric.mod.json")
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 {
/**
* 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("forge") }
* name will be examplemod-1.0.0-forge.jar
*/
archiveClassifier.set("forge")
}
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>("mavenForge") {
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.
}
}
}

1
forge/gradle.properties Normal file
View File

@@ -0,0 +1 @@
loom.platform=forge

View File

@@ -0,0 +1,14 @@
package net.examplemod.forge
import net.minecraftforge.fml.loading.FMLPaths
import java.nio.file.Path
import net.examplemod.ExampleExpectPlatform
@Suppress("unused")
object ExampleExpectPlatformImpl {
/**
* This is our actual method to [ExampleExpectPlatform.getConfigDirectory].
*/
@JvmStatic
fun getConfigDirectory(): Path = FMLPaths.CONFIGDIR.get()
}

View File

@@ -0,0 +1,16 @@
package net.examplemod.forge
import dev.architectury.platform.forge.EventBuses
import net.examplemod.ExampleMod
import net.examplemod.ExampleMod.init
import net.minecraftforge.fml.common.Mod
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext
@Mod(ExampleMod.MOD_ID)
class ExampleModForge {
init {
// Submit our event bus to let architectury register our content on the right time
EventBuses.registerModEventBus(ExampleMod.MOD_ID, FMLJavaModLoadingContext.get().modEventBus)
init()
}
}

View File

@@ -0,0 +1,35 @@
modLoader = "javafml"
loaderVersion = "[40,)"
#issueTrackerURL = "TODO"
license = "LGPL-3.0"
[[mods]]
modId = "notenoughupdates"
version = "${version}"
displayName = "Not Enough Updates"
authors = "nea89"
description = '''
Not Enough Updates - A mod for Hypixel Skyblock
'''
#logoFile = ""
[[dependencies.notenoughupdates]]
modId = "forge"
mandatory = true
versionRange = "[40,)"
ordering = "NONE"
side = "BOTH"
[[dependencies.notenoughupdates]]
modId = "minecraft"
mandatory = true
versionRange = "[1.18.2,)"
ordering = "NONE"
side = "BOTH"
[[dependencies.notenoughupdates]]
modId = "architectury"
mandatory = true
versionRange = "[4.2.50,)"
ordering = "AFTER"
side = "BOTH"

View File

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

View File

@@ -0,0 +1,6 @@
{
"pack": {
"description": "Example Mod",
"pack_format": 8
}
}