Skip to content

Commit 0b97677

Browse files
committed
update to loom 1.17 and bump minimum neoforge version
1 parent d019bd0 commit 0b97677

9 files changed

Lines changed: 72 additions & 101 deletions

File tree

build.gradle

Lines changed: 29 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
2-
31
import java.text.SimpleDateFormat
42

53
buildscript {
@@ -10,8 +8,8 @@ buildscript {
108

119
plugins {
1210
id "architectury-plugin" version "3.5-SNAPSHOT"
13-
id "dev.architectury.loom-no-remap" version "1.14-SNAPSHOT" apply false
14-
id "com.gradleup.shadow" version "9.4.2"
11+
id "dev.architectury.loom-no-remap" version "1.17-SNAPSHOT" apply false
12+
id "com.gradleup.shadow" version "9.4.2" apply false
1513
id "com.github.hierynomus.license" version "0.16.1" apply false
1614
id "me.shedaniel.unified-publishing" version "0.1.+" apply false
1715
id "maven-publish"
@@ -21,79 +19,48 @@ architectury {
2119
minecraft = rootProject.minecraft_version
2220
}
2321

24-
subprojects {
25-
apply plugin: "dev.architectury.loom-no-remap"
26-
27-
dependencies {
28-
minecraft "com.mojang:minecraft:${rootProject.architectury.minecraft}"
29-
}
30-
31-
repositories {
32-
maven { url "https://maven.neoforged.net/releases/" }
33-
if (rootProject.neoforge_pr != "") {
34-
maven {
35-
url "https://prmaven.neoforged.net/NeoForge/pr$rootProject.neoforge_pr"
36-
content {
37-
includeModule("net.neoforged", "neoforge")
38-
}
39-
}
40-
}
41-
}
42-
43-
afterEvaluate {
44-
tasks.withType(ShadowJar).configureEach {
45-
zip64 = true
46-
}
47-
}
48-
}
49-
5022
allprojects {
5123
apply plugin: "java-library"
5224
apply plugin: "architectury-plugin"
5325
apply plugin: "com.github.hierynomus.license"
5426

27+
group = rootProject.maven_group
28+
5529
ext {
5630
isSnapshot = System.getenv("PR_NUM") != null
31+
runNumber = System.getenv("GITHUB_RUN_NUMBER") ?: "9999"
5732
}
5833

59-
def runNumber = (System.getenv("GITHUB_RUN_NUMBER") == null ? "9999" : System.getenv("GITHUB_RUN_NUMBER"))
60-
6134
if (!ext.isSnapshot) {
62-
version = rootProject.base_version + "." + runNumber + rootProject.version_suffix
35+
version = rootProject.base_version + "." + ext.runNumber + rootProject.version_suffix
6336
ext.archivesBaseName = rootProject.archives_base_name
6437
} else {
65-
version = rootProject.base_version + "-PR." + System.getenv("PR_NUM") + "." + runNumber
38+
version = rootProject.base_version + "-PR." + System.getenv("PR_NUM") + "." + ext.runNumber
6639
ext.archivesBaseName = rootProject.archives_base_name_snapshot
6740
}
6841

6942
base {
7043
archivesName = archivesBaseName + "-$project.name"
7144
}
7245

73-
group = rootProject.maven_group
74-
75-
tasks.withType(JavaCompile) {
46+
tasks.withType(JavaCompile).configureEach {
7647
options.encoding = "UTF-8"
7748
options.release = 25
7849
}
7950

8051
javadoc {
81-
// Architectury's common javadoc has references to platform code, which cannot be resolved normally.
82-
// Let's just skip the errors!
52+
// common javadoc has references to platform code that cannot be resolved normally
8353
failOnError = false
8454
}
8555

8656
license {
8757
header = rootProject.file("HEADER")
88-
8958
ext {
9059
name = "architectury"
9160
year = "2020, 2021, 2022"
9261
}
93-
9462
include "**/*.java"
9563
exclude "**/NbtType.java"
96-
9764
ignoreFailures = true
9865
}
9966

@@ -131,5 +98,25 @@ allprojects {
13198
}
13299
}
133100

101+
subprojects {
102+
apply plugin: "dev.architectury.loom-no-remap"
103+
104+
dependencies {
105+
minecraft "com.mojang:minecraft:${rootProject.architectury.minecraft}"
106+
}
107+
108+
repositories {
109+
maven { url "https://maven.neoforged.net/releases/" }
110+
if (rootProject.neoforge_pr != "") {
111+
maven {
112+
url "https://prmaven.neoforged.net/NeoForge/pr$rootProject.neoforge_pr"
113+
content {
114+
includeModule("net.neoforged", "neoforge")
115+
}
116+
}
117+
}
118+
}
119+
}
120+
134121
task licenseFormatAll
135122
subprojects { p -> licenseFormatAll.dependsOn("${p.path}:licenseFormat") }

common/build.gradle

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,10 @@ import java.nio.file.FileSystems
4343
import java.nio.file.Files
4444
import java.nio.file.Path
4545

46-
task generateAccessWidener {
46+
tasks.register("generateAccessWidener") {
4747
doLast {
4848
List<String> lines = ["", "##############################", "# This section is generated automatically with Gradle task generateAccessWidener!!!", "##############################", ""]
49-
Path inputJar = loom.namedMinecraftProvider.parentMinecraftProvider.mergedJar.path
49+
Path inputJar = loom.namedMinecraftProvider.minecraftProvider.mergedJar
5050
logger.lifecycle("Generating access widener for $inputJar")
5151

5252
try (def fs = FileSystems.newFileSystem(URI.create("jar:${inputJar.toUri()}"), [create: false])) {
@@ -139,11 +139,9 @@ static def generateCreativeTabs(List<String> lines, FileSystem fs) {
139139

140140
static ClassNode loadClass(Path path) {
141141
def node = new ClassNode()
142-
143142
try (def is = Files.newInputStream(path)) {
144143
new ClassReader(is).accept(node, ClassReader.SKIP_CODE | ClassReader.SKIP_DEBUG | ClassReader.SKIP_FRAMES)
145144
}
146-
147145
return node
148146
}
149147

fabric/build.gradle

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
1-
plugins {
2-
id "com.gradleup.shadow" version "9.4.2"
3-
id "me.shedaniel.unified-publishing"
4-
}
1+
apply plugin: "com.gradleup.shadow"
2+
apply plugin: "me.shedaniel.unified-publishing"
53

64
loom {
75
accessWidenerPath = project(":common").loom.accessWidenerPath
@@ -14,7 +12,7 @@ architectury {
1412

1513
configurations {
1614
common
17-
shadowCommon // Don't use shadow from the shadow plugin because we don't want IDEA to index this.
15+
shadowCommon
1816
compileClasspath.extendsFrom common
1917
runtimeClasspath.extendsFrom common
2018
developmentFabric.extendsFrom common
@@ -34,28 +32,28 @@ dependencies {
3432
}
3533

3634
processResources {
35+
inputs.property "version", project.version
3736
filesMatching("fabric.mod.json") {
3837
expand "version": project.version
3938
}
40-
inputs.property "version", project.version
39+
}
40+
41+
jar {
42+
archiveClassifier = "raw"
4143
}
4244

4345
shadowJar {
44-
exclude "architectury-common.accessWidener"
4546
exclude "architectury.common.json"
4647

4748
dependsOn jar
4849
mainSpec.sourcePaths.clear()
4950
from(zipTree(jar.archiveFile))
5051
configurations = [project.configurations.shadowCommon]
5152
archiveClassifier = null
53+
zip64 = true
5254
from rootProject.file("LICENSE.md")
5355
}
5456

55-
jar {
56-
archiveClassifier = "raw"
57-
}
58-
5957
assemble.dependsOn shadowJar
6058

6159
configurations {
@@ -71,12 +69,10 @@ configurations {
7169

7270
sourcesJar {
7371
afterEvaluate {
74-
[":common"].forEach {
75-
def depSources = project(it).sourcesJar
76-
dependsOn depSources
77-
from(depSources.archiveFile.map { zipTree(it) }) {
78-
exclude "architectury.accessWidener"
79-
}
72+
def depSources = project(":common").sourcesJar
73+
dependsOn depSources
74+
from(depSources.archiveFile.map { zipTree(it) }) {
75+
exclude "architectury.accessWidener"
8076
}
8177
}
8278
}

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ org.gradle.daemon=false
44
platforms=fabric,neoforge
55

66
minecraft_version=26.1.2
7-
supported_version=26.1/26.1.1/26.1.2
7+
supported_version=26.1.2
88

99
artifact_type=release
1010

neoforge/build.gradle

Lines changed: 24 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
1-
plugins {
2-
id "com.gradleup.shadow" version "9.4.2"
3-
id "me.shedaniel.unified-publishing"
4-
}
1+
import org.gradle.jvm.tasks.Jar
2+
3+
apply plugin: "com.gradleup.shadow"
4+
apply plugin: "me.shedaniel.unified-publishing"
55

66
loom {
77
accessWidenerPath = project(":common").loom.accessWidenerPath
8+
9+
neoForge {
10+
convertAccessWideners(tasks.named("shadowJar", Jar), "architectury.accessWidener")
11+
}
812
}
913

1014
architectury {
@@ -16,7 +20,7 @@ architectury {
1620

1721
configurations {
1822
common
19-
shadowCommon // Don't use shadow from the shadow plugin because we don't want IDEA to index this.
23+
shadowCommon
2024
compileClasspath.extendsFrom common
2125
runtimeClasspath.extendsFrom common
2226
developmentNeoForge.extendsFrom common
@@ -30,39 +34,39 @@ dependencies {
3034
}
3135

3236
processResources {
37+
inputs.property "version", project.version
3338
filesMatching("META-INF/neoforge.mods.toml") {
3439
expand "version": project.version
3540
}
36-
inputs.property "META-INF/neoforge.mods.toml", project.version
41+
}
42+
43+
jar {
44+
archiveClassifier = "raw"
3745
}
3846

3947
shadowJar {
4048
exclude "fabric.mod.json"
41-
exclude "architectury-common.accessWidener"
4249
exclude "architectury.common.json"
4350

4451
dependsOn jar
4552
mainSpec.sourcePaths.clear()
4653
from(zipTree(jar.archiveFile))
4754
configurations = [project.configurations.shadowCommon]
4855
archiveClassifier = null
56+
zip64 = true
4957
from rootProject.file("LICENSE.md")
5058

51-
// Replace classes with forge's version
59+
// Replace the common stubs with the NeoForge-native implementations via relocation.
5260
exclude "dev/architectury/core/block/ArchitecturyLiquidBlock.class"
5361
exclude "dev/architectury/core/fluid/ArchitecturyFlowingFluid.class"
54-
exclude 'dev/architectury/core/fluid/ArchitecturyFlowingFluid$Source.class'
55-
exclude 'dev/architectury/core/fluid/ArchitecturyFlowingFluid$Flowing.class'
56-
exclude 'dev/architectury/core/item/ArchitecturyBucketItem.class'
62+
exclude "dev/architectury/core/fluid/ArchitecturyFlowingFluid\$Source.class"
63+
exclude "dev/architectury/core/fluid/ArchitecturyFlowingFluid\$Flowing.class"
64+
exclude "dev/architectury/core/item/ArchitecturyBucketItem.class"
5765
relocate "dev.architectury.core.block.forge.imitator", "dev.architectury.core.block"
5866
relocate "dev.architectury.core.fluid.forge.imitator", "dev.architectury.core.fluid"
5967
relocate "dev.architectury.core.item.forge.imitator", "dev.architectury.core.item"
6068
}
6169

62-
jar {
63-
archiveClassifier = "raw"
64-
}
65-
6670
assemble.dependsOn shadowJar
6771

6872
configurations {
@@ -78,12 +82,10 @@ configurations {
7882

7983
sourcesJar {
8084
afterEvaluate {
81-
[":common"].forEach {
82-
def depSources = project(it).sourcesJar
83-
dependsOn depSources
84-
from(depSources.archiveFile.map { zipTree(it) }) {
85-
exclude "architectury.accessWidener"
86-
}
85+
def depSources = project(":common").sourcesJar
86+
dependsOn depSources
87+
from(depSources.archiveFile.map { zipTree(it) }) {
88+
exclude "architectury.accessWidener"
8789
}
8890
}
8991
}
@@ -117,7 +119,7 @@ publishing {
117119
}
118120

119121
unifiedPublishing {
120-
if (rootProject.neoforge_pr != "") return // Don't publish PRs
122+
if (rootProject.neoforge_pr != "") return
121123
project {
122124
displayName = "[NeoForge $rootProject.supported_version] v$project.version"
123125
releaseType = "$rootProject.artifact_type"
@@ -145,4 +147,3 @@ unifiedPublishing {
145147
}
146148
}
147149
}
148-

neoforge/src/main/resources/META-INF/neoforge.mods.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,14 @@ license = "LGPL-3"
1717
[[dependencies.architectury]]
1818
modId = "minecraft"
1919
type = "required"
20-
versionRange = "[26.1,)"
20+
versionRange = "[26.1.2,)"
2121
ordering = "NONE"
2222
side = "BOTH"
2323

2424
[[dependencies.architectury]]
2525
modId = "neoforge"
2626
type = "required"
27-
versionRange = "[26.1.0.1-beta,)"
27+
versionRange = "[26.1.2.21-beta,)"
2828
ordering = "NONE"
2929
side = "BOTH"
3030

testmod-common/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
loom {
2-
accessWidenerPath = project(':common').file("src/main/resources/architectury.accessWidener")
2+
accessWidenerPath = project(":common").file("src/main/resources/architectury.accessWidener")
33
}
44

55
dependencies {

testmod-fabric/build.gradle

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
1-
plugins {
2-
id "com.gradleup.shadow" version "9.4.2"
3-
id "com.matthewprenger.cursegradle"
4-
}
5-
61
loom {
72
accessWidenerPath = project(":common").loom.accessWidenerPath
83
}

testmod-neoforge/build.gradle

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
1-
plugins {
2-
id "com.gradleup.shadow" version "9.4.2"
3-
id "com.matthewprenger.cursegradle"
4-
}
5-
61
loom {
72
accessWidenerPath = project(":common").loom.accessWidenerPath
83

@@ -22,7 +17,6 @@ architectury {
2217

2318
configurations {
2419
common
25-
forgeLike
2620
compileClasspath.extendsFrom common
2721
runtimeClasspath.extendsFrom common
2822
developmentNeoForge.extendsFrom common

0 commit comments

Comments
 (0)