Skip to content

Commit 69a1a48

Browse files
feat: port to 1.20.2
1 parent 7d0d457 commit 69a1a48

File tree

15 files changed

+284
-79
lines changed

15 files changed

+284
-79
lines changed

.github/workflows/build-release.yml

+4-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,10 @@ jobs:
99
build:
1010
if: |
1111
!contains(github.event.head_commit.message, '[ciskip]')
12-
uses: nanite/workflows/.github/workflows/standard-arch-release.yml@v1
12+
uses: nanite/workflows/.github/workflows/[email protected]
13+
with:
14+
gradle-tasks: 'build publish publishMods'
1315
secrets:
1416
nanite-token: ${{ secrets.NANITE_DEPLOY }}
1517
curse-token: ${{ secrets.CURSE_DEPLOY }}
18+
github-token: ${{ secrets.GITHUB_TOKEN }}

CHANGELOG.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
## [81.1.0]
1+
## [82.0.0]
22

33
### Changed
44

5-
- Ported to 1.20.1
5+
- Ported to 1.20.2

build.gradle

+94-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
plugins {
2-
id "architectury-plugin" version "3.4-SNAPSHOT"
3-
id "dev.architectury.loom" version "1.2-SNAPSHOT" apply false
2+
id "architectury-plugin" version "3.4.151"
3+
id "dev.architectury.loom" version "1.4.373" apply false
4+
id "me.modmuss50.mod-publish-plugin" version "0.4.5"
45
}
56

67
architectury {
@@ -51,6 +52,96 @@ allprojects {
5152
java {
5253
withSourcesJar()
5354
}
55+
56+
publishing {
57+
repositories {
58+
if (ENV.NANITE_TOKEN) {
59+
maven {
60+
url "https://maven.nanite.dev/releases"
61+
credentials {
62+
username = "nanite"
63+
password = "${ENV.NANITE_TOKEN}"
64+
}
65+
}
66+
}
67+
}
68+
}
5469
}
5570

56-
task curseforgePublish
71+
publishMods {
72+
dryRun = providers.environmentVariable("CURSE_TOKEN").getOrNull() == null
73+
changelog = file("./CHANGELOG.md").text
74+
version = "${mod_version}"
75+
type = STABLE
76+
77+
def fabricOptions = publishOptions {
78+
file = project.provider { project(":fabric").tasks.remapJar }.flatMap { it.archiveFile }
79+
displayName = "[FABRIC][${minecraft_version}] Default Server Properties ${mod_version}"
80+
modLoaders.add("fabric")
81+
}
82+
83+
def forgeOptions = publishOptions {
84+
file = project.provider { project(":forge").tasks.remapJar }.flatMap { it.archiveFile }
85+
displayName = "[FORGE][${minecraft_version}] Default Server Properties ${mod_version}"
86+
modLoaders.add("forge")
87+
}
88+
89+
def neoForge = publishOptions {
90+
file = project.provider { project(":neoforge").tasks.remapJar }.flatMap { it.archiveFile }
91+
displayName = "[NEOFORGE][${minecraft_version}] Default Server Properties ${mod_version}"
92+
modLoaders.add("neoforge")
93+
}
94+
95+
def curseForgeOptions = curseforgeOptions {
96+
accessToken = providers.environmentVariable("CURSE_TOKEN")
97+
projectId = "${curseforge_id}"
98+
minecraftVersions.add("${minecraft_version}")
99+
}
100+
101+
def modrinthOptions = modrinthOptions {
102+
accessToken = providers.environmentVariable("MODRINTH_TOKEN")
103+
projectId = "${modrinth_id}"
104+
minecraftVersions.add("${minecraft_version}")
105+
}
106+
107+
curseforge("curseforgeFabric") {
108+
from(curseForgeOptions, fabricOptions)
109+
requires {
110+
slug = "fabric-api"
111+
}
112+
}
113+
114+
curseforge("curseforgeForge") {
115+
from(curseForgeOptions, forgeOptions)
116+
}
117+
118+
curseforge("curseforgeNeoForge") {
119+
from(curseForgeOptions, neoForge)
120+
}
121+
122+
modrinth("modrinthFabric") {
123+
from(modrinthOptions, fabricOptions)
124+
requires {
125+
slug = "fabric-api"
126+
}
127+
}
128+
129+
modrinth("modrinthForge") {
130+
from(modrinthOptions, forgeOptions)
131+
}
132+
133+
modrinth("modrinthNeoforge") {
134+
from(modrinthOptions, neoForge)
135+
}
136+
137+
github {
138+
file = project.provider { project(":forge").tasks.remapJar }.flatMap { it.archiveFile }
139+
additionalFiles.from project.provider { project(":fabric").tasks.remapJar }.flatMap { it.archiveFile }
140+
additionalFiles.from project.provider { project(":neoforge").tasks.remapJar }.flatMap { it.archiveFile }
141+
142+
repository = "${project.github_repo}"
143+
accessToken = providers.environmentVariable("GITHUB_TOKEN")
144+
commitish = providers.environmentVariable("GITHUB_SHA").orElse("dryRun")
145+
tagName = providers.environmentVariable("GITHUB_REF_NAME").orElse("dryRun")
146+
}
147+
}

fabric/build.gradle

-31
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
plugins {
22
id "com.github.johnrengelman.shadow" version "7.1.2"
3-
id "com.matthewprenger.cursegradle" version "1.4.0"
43
}
54

65
architectury {
@@ -78,34 +77,4 @@ publishing {
7877
from components.java
7978
}
8079
}
81-
82-
repositories {
83-
if (ENV.NANITE_TOKEN) {
84-
maven {
85-
url "https://maven.nanite.dev/releases"
86-
credentials {
87-
username = "nanite"
88-
password = "${ENV.NANITE_TOKEN}"
89-
}
90-
}
91-
}
92-
}
93-
}
94-
95-
if (ENV.CURSE_TOKEN) {
96-
curseforge {
97-
apiKey = ENV.CURSE_TOKEN
98-
project {
99-
id = rootProject.curseforge_id
100-
releaseType = "beta"
101-
addGameVersion "Fabric"
102-
addGameVersion "Java 17"
103-
addGameVersion "${rootProject.minecraft_version}"
104-
mainArtifact(remapJar.getArchiveFile())
105-
changelog = file("./../CHANGELOG.md")
106-
changelogType = 'markdown'
107-
}
108-
}
10980
}
110-
111-
rootProject.tasks.getByName("curseforgePublish").dependsOn tasks.getByName("curseforge")

forge/build.gradle

+1-32
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
plugins {
22
id "com.github.johnrengelman.shadow" version "7.1.2"
3-
id "com.matthewprenger.cursegradle" version "1.4.0"
43
}
54

65
architectury {
@@ -29,7 +28,7 @@ configurations {
2928
}
3029

3130
dependencies {
32-
forge "net.minecraftforge:forge:${rootProject.forge_version}"
31+
forge "net.minecraftforge:forge:${rootProject.minecraft_version}-${rootProject.forge_version}"
3332

3433
common(project(path: ":common", configuration: "namedElements")) { transitive false }
3534
shadowCommon(project(path: ":common", configuration: "transformProductionForge")) { transitive = false }
@@ -88,34 +87,4 @@ publishing {
8887
from components.java
8988
}
9089
}
91-
92-
repositories {
93-
if (ENV.NANITE_TOKEN) {
94-
maven {
95-
url "https://maven.nanite.dev/releases"
96-
credentials {
97-
username = "nanite"
98-
password = "${ENV.NANITE_TOKEN}"
99-
}
100-
}
101-
}
102-
}
103-
}
104-
105-
if (ENV.CURSE_TOKEN) {
106-
curseforge {
107-
apiKey = ENV.CURSE_TOKEN
108-
project {
109-
id = rootProject.curseforge_id
110-
releaseType = "release"
111-
addGameVersion "Forge"
112-
addGameVersion "Java 17"
113-
addGameVersion "${rootProject.minecraft_version}"
114-
mainArtifact(remapJar.getArchiveFile())
115-
changelog = file("./../CHANGELOG.md")
116-
changelogType = 'markdown'
117-
}
118-
}
11990
}
120-
121-
rootProject.tasks.getByName("curseforgePublish").dependsOn tasks.getByName("curseforge")

gradle.properties

+10-6
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
11
org.gradle.jvmargs=-Xmx2048M
22

3-
minecraft_version=1.20.1
4-
enabled_platforms=fabric,forge
3+
minecraft_version=1.20.2
4+
enabled_platforms=fabric,forge,neoforge
55

66
archives_base_name=default-server-properties
7-
mod_version=81.1.0
7+
mod_version=82.0.0
88
maven_group=dev.nanite.mods
99

10-
fabric_loader_version=0.14.21
11-
fabric_api_version=0.83.1+1.20.1
10+
fabric_loader_version=0.15.3
11+
fabric_api_version=0.91.2+1.20.2
1212

13-
forge_version=1.20.1-47.0.6
13+
forge_version=48.1.0
14+
neo_forge=20.2.86
1415

1516
curseforge_id=676811
17+
modrinth_id=Fnrzx9Jl
18+
github_repo=nanite/Default-Server-Properties
19+
+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists

neoforge/build.gradle

+92
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
plugins {
2+
id "com.github.johnrengelman.shadow" version "7.1.2"
3+
}
4+
5+
architectury {
6+
platformSetupLoomIde()
7+
neoForge()
8+
}
9+
10+
repositories {
11+
maven {
12+
url "https://maven.saps.dev/mirror"
13+
}
14+
}
15+
16+
loom {
17+
accessWidenerPath = project(":common").loom.accessWidenerPath
18+
neoForge {
19+
20+
}
21+
}
22+
23+
configurations {
24+
common
25+
shadowCommon // Don't use shadow from the shadow plugin since it *excludes* files.
26+
compileClasspath.extendsFrom common
27+
runtimeClasspath.extendsFrom common
28+
developmentNeoForge.extendsFrom common
29+
}
30+
31+
dependencies {
32+
neoForge "net.neoforged:neoforge:${rootProject.neo_forge}"
33+
34+
common(project(path: ":common", configuration: "namedElements")) { transitive false }
35+
shadowCommon(project(path: ":common", configuration: "transformProductionNeoForge")) { transitive = false }
36+
}
37+
38+
processResources {
39+
def forgeMajor = ((String) rootProject.forge_version).split("-").last().split("\\.").first()
40+
inputs.properties([
41+
version: project.version,
42+
mcversion: rootProject.minecraft_version,
43+
forgemajor: forgeMajor
44+
])
45+
46+
filesMatching("META-INF/mods.toml") {
47+
expand "version": project.version,
48+
"mcversion": rootProject.minecraft_version,
49+
"forgemajor": forgeMajor
50+
}
51+
}
52+
53+
shadowJar {
54+
exclude "fabric.mod.json"
55+
exclude "architectury.common.json"
56+
57+
configurations = [project.configurations.shadowCommon]
58+
setArchiveClassifier("dev-shadow")
59+
}
60+
61+
remapJar {
62+
input.set shadowJar.archiveFile
63+
dependsOn shadowJar
64+
archiveBaseName.set "${rootProject.archives_base_name}-${project.name}"
65+
setArchiveClassifier(null)
66+
atAccessWideners.add('dsp.accesswidener')
67+
}
68+
69+
jar {
70+
setArchiveClassifier("dev")
71+
}
72+
73+
sourcesJar {
74+
def commonSources = project(":common").sourcesJar
75+
dependsOn commonSources
76+
from commonSources.archiveFile.map { zipTree(it) }
77+
}
78+
79+
components.java {
80+
withVariantsFromConfiguration(project.configurations.shadowRuntimeElements) {
81+
skip()
82+
}
83+
}
84+
85+
publishing {
86+
publications {
87+
mavenNeoForge(MavenPublication) {
88+
artifactId = rootProject.archives_base_name + "-" + project.name
89+
from components.java
90+
}
91+
}
92+
}

neoforge/gradle.properties

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
loom.platform=neoforge
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package dev.nanite.dsp.neoforge;
2+
3+
import net.neoforged.fml.loading.FMLPaths;
4+
5+
import java.nio.file.Path;
6+
7+
public class DSPExpectedPlatformImpl {
8+
public static Path getGameDir() {
9+
return FMLPaths.GAMEDIR.get();
10+
}
11+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package dev.nanite.dsp.neoforge;
2+
3+
import dev.nanite.dsp.DSPMod;
4+
import net.neoforged.fml.common.Mod;
5+
6+
@Mod(DSPMod.MOD_ID)
7+
public class DSPModNeoforge {
8+
public DSPModNeoforge() {
9+
DSPMod.init();
10+
}
11+
}

0 commit comments

Comments
 (0)