Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial port of mui to 1.20, MAJORLY BROKEN #89

Draft
wants to merge 14 commits into
base: 1.20
Choose a base branch
from
1,203 changes: 37 additions & 1,166 deletions build.gradle

Large diffs are not rendered by default.

79 changes: 56 additions & 23 deletions dependencies.gradle
Original file line number Diff line number Diff line change
@@ -1,26 +1,59 @@
//file:noinspection DependencyNotationArgument
// TODO remove when fixed in RFG ^
/*
* Add your dependencies here. Common configurations:
* - implementation("group:name:version:classifier"): if you need this for internal implementation details of the mod.
* Available at compiletime and runtime for your environment.
*
* - compileOnlyApi("g:n:v:c"): if you need this for internal implementation details of the mod.
* Available at compiletime but not runtime for your environment.
*
* - annotationProcessor("g:n:v:c"): mostly for java compiler plugins, if you know you need this, use it, otherwise don't worry
*
* - testCONFIG("g:n:v:c"): replace CONFIG by one of the above, same as above but for the test sources instead of main
*
* You can exclude transitive dependencies (dependencies of the chosen dependency) by appending { transitive = false } if needed.
*
* To add a mod with CurseMaven, replace '("g:n:v:c")' in the above with 'rfg.deobf("curse.maven:project_slug-project_id:file_id")'
* Example: implementation rfg.deobf("curse.maven:gregtech-ce-unofficial-557242:4527757")
*
* To shadow a dependency, use 'shadowImplementation'. For more info, see https://github.com/GregTechCEu/Buildscripts/blob/master/docs/shadow.md
*
* For more details, see https://docs.gradle.org/8.0.1/userguide/java_library_plugin.html#sec:java_library_configurations_graph
*/
dependencies {
minecraft "com.mojang:minecraft:${libs.versions.minecraft.get()}"
mappings loom.layered {
it.mappings("org.quiltmc:quilt-mappings:${libs.versions.minecraft.get()}+build.${libs.versions.quiltMappings.get()}:intermediary-v2")
it.parchment("org.parchmentmc.data:parchment-${libs.versions.minecraft.get()}:${libs.versions.parchment.get()}@zip")
it.officialMojangMappings { nameSyntheticMembers = false }
}

forge forge.minecraftForge

implementation 'com.google.code.findbugs:jsr305:3.0.2'

// tests
testImplementation 'org.junit.jupiter:junit-jupiter-engine:5.9.2'
testImplementation 'io.javalin:javalin:5.4.2'
testImplementation 'org.mockito:mockito-core:5.2.0'

// Registrate
modApi(include("com.tterrag.registrate:Registrate:${forge.versions.registrate.get()}"))

// JEI
modCompileOnly(forge.jei.common.api) { transitive = false }
modCompileOnly(forge.jei.forge.api) { transitive = false }
modCompileOnly(forge.jei.forge.impl) { transitive = false }

// REI
modCompileOnly forge.rei.plugin
modCompileOnly forge.rei.api
modCompileOnly forge.rei.forge

// EMI
modCompileOnly("dev.emi:emi-forge:${forge.versions.emi.get()}:api")
modImplementation forge.emi

// TOP
modCompileOnly(forge.theoneprobe) { transitive = false }

// Jade
modImplementation(forge.jade)

// AE2
modImplementation(forge.ae2) { transitive = false }
modCompileOnly("curse.maven:ae2wtlib-459929:5217955")

//AlmostUnified
modCompileOnly(forge.almostUnified.forge)

// KJS
modImplementation forge.kubejs

// Mixin Extras
implementation(annotationProcessor("io.github.llamalad7:mixinextras-common:${this.forge.versions.mixinextras.get()}"))
api(include("io.github.llamalad7:mixinextras-forge:${this.forge.versions.mixinextras.get()}"))

// Configuration
modApi(forge.configuration)
include(forge.configuration)

}
368 changes: 192 additions & 176 deletions gradle.properties

Large diffs are not rendered by default.

51 changes: 51 additions & 0 deletions gradle/scripts/architectury_loom.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
architectury {
platformSetupLoomIde()
forge()
}

static def isJetBrainsRuntime() {
return System.getProperty('java.vm.vendor').contains('JetBrains')
}

loom {
silentMojangMappingsLicense()

forge {
mixinConfig(
"${mod_id}.mixins.json",
)

dataGen{
mod(mod_id)
}
}

runConfigs.named("data").configure {
programArg("--existing=" + file("src/main/resources").absolutePath)
}

if (isJetBrainsRuntime()) {
runs {
client {
vmArgs '-XX:+AllowEnhancedClassRedefinition'
vmArgs '-XX:HotswapAgent=fatjar'
}
}
}
runs {
create("gameTestServer") {
server()
name("Minecraft Game Test")
source("main")

property("forge.enabledGameTestNamespaces", mod_id)
property("forge.gameTestServer", "true")

mods {
create(mod_id) {
sourceSet("main")
}
}
}
}
}
12 changes: 12 additions & 0 deletions gradle/scripts/capabilities.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
configurations {
/* TODO fix?
modImplementation {
outgoing {
capability("com.lowdragmc.ldlib:ldlib-forge-${this.libs.versions.minecraft.get()}:${this.forge.versions.ldlib.get()}")
capability("com.tterrag.registrate:Registrate:${this.forge.versions.registrate.get()}")
capability("dev.toma.configuration:configuration-forge-${this.libs.versions.minecraft.get()}:${this.forge.versions.configuration.get()}")
capability("io.github.llamalad7:mixinextras-forge:${this.forge.versions.mixinextras.get()}")
}
}
*/
}
35 changes: 35 additions & 0 deletions gradle/scripts/jars.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
apply plugin: "dev.architectury.loom"

shadowJar {
exclude "fabric.mod.json"
exclude "architectury.common.json"

configurations = [project.configurations.shadow]
archiveClassifier = "dev-shadow"
}

remapJar {
inputFile.set shadowJar.archiveFile
dependsOn shadowJar
archiveClassifier = null
}

jar {
archiveClassifier = "dev"
}

remapSlimJar {
addNestedDependencies = false
archiveClassifier = "slim"
}

tasks.register('sourcesJar', Jar) {
from delombok.outputs.files
dependsOn delombok
archiveClassifier = "sources"
}

tasks.remapJar.dependsOn('remapSlimJar')


archivesBaseName = "${project.name}-${libs.versions.minecraft.get()}"
47 changes: 47 additions & 0 deletions gradle/scripts/repositories.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
repositories {
mavenLocal()
mavenCentral()
maven { url = "https://api.modrinth.com/maven" } // LazyDFU, Jade
maven { url = "https://maven.terraformersmc.com/releases/" } // Mod Menu, EMI
maven { url = "https://maven.shedaniel.me/" } // Cloth Config, REI
maven {
url "https://cursemaven.com"
content {
includeGroup "curse.maven"
}
} // Curse Forge File
maven {
name = "Jared's maven"
url = "https://maven.blamejared.com/"
} // JEI
maven {
// location of a maven mirror for JEI files, as a fallback
name = "ModMaven"
url = "https://modmaven.dev"
} // JEI mirror, AE2
maven { url = "https://maven.parchmentmc.org" } // Parchment mappings
maven { url = "https://maven.quiltmc.org/repository/release" } // Quilt Mappings
maven { url = "https://maven.firstdarkdev.xyz/snapshots" } // LDLib
maven { // Flywheel
url = "https://maven.tterrag.com/"
content {
// need to be specific here due to version overlaps
includeGroup("com.jozufozu.flywheel")
includeGroup("com.tterrag.registrate")
includeGroup("com.simibubi.create")
}
}
maven { url = "https://maven.theillusivec4.top/" } // Curios
maven { // TOP
url "https://maven.k-4u.nl"
}
maven {
// saps.dev Maven (KubeJS and Rhino)
url = "https://maven.saps.dev/minecraft"
content {
includeGroup "dev.latvian.mods"
}
}
maven { url = "https://maven.jamieswhiteshirt.com/libs-release" } // Reach Entity Attributes
maven { url 'https://jitpack.io' } // Mixin Extras, Fabric ASM
}
30 changes: 30 additions & 0 deletions gradle/scripts/resources.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
String getConfig(String key) {
return project.properties.get(key)
}

def mod_id = getConfig("mod_id")
def version = getConfig("version")
def mod_license = getConfig("mod_license")
def mod_name = getConfig("mod_name")
def mod_description = getConfig("mod_description")
def mod_url = getConfig("mod_url")

processResources {
// set up properties for filling into metadata
var properties = [
"version": version,
"mod_id": mod_id,
"forge_version": forge.versions.forgeShortVersion.get().split("\\.")[0], // only specify major version of forge
"kjs_version": forge.versions.kubejs.get().split("\\.")[0], // only specify major version of kjs
"minecraft_version": libs.versions.minecraft.get(),
"mod_license": mod_license,
"mod_name": mod_name,
"mod_description": mod_description,
"mod_url": mod_url
]
inputs.properties(properties)

filesMatching("META-INF/mods.toml") {
expand properties
}
}
26 changes: 26 additions & 0 deletions gradle/scripts/spotless.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
// Spotless auto-formatter
// See https://github.com/diffplug/spotless/tree/main/plugin-gradle
// Can be locally toggled via spotless:off/spotless:on comments
spotless {
encoding 'UTF-8'

format 'misc', {
target '.gitignore'

trimTrailingWhitespace()
indentWithSpaces(4)
endWithNewline()
}
java {
target 'src/main/java/**/*.java', 'src/test/java/**/*.java'

def orderFile = file("$rootDir/spotless/spotless.importorder")
def formatFile = file("$rootDir/spotless/spotless.eclipseformat.xml")

toggleOffOn()
importOrderFile(orderFile)
removeUnusedImports('cleanthat-javaparser-unnecessaryimport')
endWithNewline()
eclipse('4.31').configFile(formatFile)
}
}
Loading