Skip to content

Commit 5e08ca6

Browse files
committed
Updated for NeoForge 1.20.6
1 parent 17b77d8 commit 5e08ca6

File tree

24 files changed

+376
-397
lines changed

24 files changed

+376
-397
lines changed

.github/workflows/main.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,19 @@ on:
66

77
jobs:
88
build:
9-
runs-on: ubuntu-20.04
9+
runs-on: ubuntu-latest
1010
container:
11-
image: openjdk:17-jdk
11+
image: openjdk:21-jdk
1212
steps:
13-
- uses: actions/checkout@v2.3.4
14-
- uses: gradle/wrapper-validation[email protected]
13+
- uses: actions/checkout@v4
14+
- uses: gradle/actions/wrapper-validation@v3
1515
- run: chmod +x ./gradlew
16-
- run: ./gradlew clean build publish curseforge modrinth
16+
- run: ./gradlew clean build publishCurseForge modrinth
1717
env:
1818
REPO_PASSWORD: ${{ secrets.REPO_PASSWORD }}
1919
CURSE_API_KEY: ${{ secrets.CURSE_API_KEY }}
2020
MODRINTH_API_KEY: ${{ secrets.MODRINTH_API_KEY }}
21-
- uses: actions/upload-artifact@v2.2.2
21+
- uses: actions/upload-artifact@v4
2222
with:
2323
name: Builds
2424
path: build/libs/*.jar

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,3 +116,5 @@ run/
116116

117117
# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
118118
!gradle-wrapper.jar
119+
120+
runs/

build.gradle

Lines changed: 93 additions & 160 deletions
Original file line numberDiff line numberDiff line change
@@ -1,92 +1,23 @@
1-
buildscript {
2-
repositories {
3-
maven { url = 'https://maven.minecraftforge.net' }
4-
maven { url = 'https://repo.spongepowered.org/repository/maven-public/' }
5-
mavenCentral()
6-
}
7-
dependencies {
8-
classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '6.+', changing: true
9-
classpath 'org.spongepowered:mixingradle:0.7-SNAPSHOT'
10-
classpath "gradle.plugin.com.matthewprenger:CurseGradle:1.4.0"
11-
classpath group: 'com.modrinth.minotaur', name: 'Minotaur', version: '2+'
12-
}
1+
plugins {
2+
id 'java-library'
3+
id 'eclipse'
4+
id 'idea'
5+
id 'maven-publish'
6+
id 'net.neoforged.gradle.userdev' version '7.0.142'
7+
id 'net.darkhax.curseforgegradle' version '1.1.15'
8+
id "com.modrinth.minotaur" version "2.+"
139
}
1410

15-
apply plugin: 'net.minecraftforge.gradle'
16-
apply plugin: 'org.spongepowered.mixin'
17-
apply plugin: "com.matthewprenger.cursegradle"
18-
apply plugin: 'maven-publish'
19-
apply plugin: 'com.modrinth.minotaur'
20-
21-
group = 'uk.co.hexeption'
22-
version = '1.20.1-1.0.0'
2311
def env = System.getenv()
2412
if (env.GITHUB_RUN_NUMBER) {
25-
version = version + "+" + "${env.GITHUB_RUN_NUMBER}"
26-
}
27-
28-
java {
29-
archivesBaseName = 'AEInfinityBooster'
30-
toolchain.languageVersion = JavaLanguageVersion.of(17)
31-
}
32-
println('Java: ' + System.getProperty('java.version') + ' JVM: ' + System.getProperty('java.vm.version') + '(' + System.getProperty('java.vendor') + ') Arch: ' + System.getProperty('os.arch'))
33-
34-
minecraft {
35-
mappings channel: 'official', version: '1.20.1'
36-
37-
runs {
38-
client {
39-
workingDirectory project.file('run/client')
40-
41-
property 'forge.logging.markers', 'REGISTRIES'
42-
property 'forge.logging.console.level', 'debug'
43-
44-
mods {
45-
aeinfinitybooster {
46-
source sourceSets.main
47-
}
48-
}
49-
}
50-
51-
server {
52-
workingDirectory project.file('run/server')
53-
54-
property 'forge.logging.markers', 'REGISTRIES'
55-
property 'forge.logging.console.level', 'debug'
56-
57-
mods {
58-
aeinfinitybooster {
59-
source sourceSets.main
60-
}
61-
}
62-
}
63-
64-
data {
65-
workingDirectory project.file('run/data')
66-
67-
property 'forge.logging.markers', 'REGISTRIES'
68-
property 'forge.logging.console.level', 'debug'
69-
70-
args '--mod', 'aeinfinitybooster', '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/')
71-
72-
mods {
73-
aeinfinitybooster {
74-
source sourceSets.main
75-
}
76-
}
77-
}
78-
}
13+
mod_version = 'neoforge-1.20.6-1.0.0' + "+" + "${env.GITHUB_RUN_NUMBER}"
7914
}
8015

81-
mixin {
82-
add sourceSets.main, "AEInfinityBooster.refmap.json"
83-
84-
config "AEInfinityBooster.mixins.json"
85-
}
86-
87-
sourceSets.main.resources { srcDir 'src/generated/resources' }
16+
version = mod_version
17+
group = mod_group_id
8818

8919
repositories {
20+
mavenLocal()
9021
maven {
9122
name "Modmaven"
9223
url "https://modmaven.dev/"
@@ -105,110 +36,112 @@ repositories {
10536
}
10637
}
10738

108-
dependencies {
109-
minecraft 'net.minecraftforge:forge:1.20.1-47.1.43'
110-
annotationProcessor 'org.spongepowered:mixin:0.8.5:processor'
111-
runtimeOnly fg.deobf("mezz.jei:jei-1.20.1-forge:15.0.0.12")
112-
compileOnly fg.deobf("appeng:appliedenergistics2-forge:15.0.9-beta")
113-
runtimeOnly fg.deobf("appeng:appliedenergistics2-forge:15.0.9-beta")
39+
base {
40+
archivesName = mod_id
11441
}
11542

116-
jar {
117-
manifest {
118-
attributes([
119-
"Specification-Title" : "aeinfinitybooster",
120-
//"Specification-Vendor": "aeinfinitybooster authors",
121-
"Specification-Version" : "1", // We are version 1 of ourselves
122-
"Implementation-Title" : project.name,
123-
"Implementation-Version" : project.jar.archiveVersion,
124-
//"Implementation-Vendor": "aeinfinitybooster authors",
125-
"Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"),
126-
"MixinConfigs" : "AEInfinityBooster.mixins.json"
127-
])
43+
// Mojang ships Java 21 to end users starting in 1.20.5, so mods should target Java 21.
44+
java.toolchain.languageVersion = JavaLanguageVersion.of(21)
45+
46+
runs {
47+
configureEach {
48+
systemProperty 'forge.logging.markers', 'REGISTRIES'
49+
systemProperty 'forge.logging.console.level', 'debug'
50+
51+
modSource project.sourceSets.main
52+
}
53+
54+
client {
55+
systemProperty 'forge.enabledGameTestNamespaces', project.mod_id
56+
}
57+
58+
server {
59+
systemProperty 'forge.enabledGameTestNamespaces', project.mod_id
60+
programArgument '--nogui'
61+
}
62+
63+
gameTestServer {
64+
systemProperty 'forge.enabledGameTestNamespaces', project.mod_id
65+
}
66+
67+
data {
68+
programArguments.addAll '--mod', project.mod_id, '--all', '--output', file('src/generated/resources/').getAbsolutePath(), '--existing', file('src/main/resources/').getAbsolutePath()
12869
}
12970
}
13071

131-
jar.finalizedBy('reobfJar')
72+
sourceSets.main.resources { srcDir 'src/generated/resources' }
13273

133-
mixin {
134-
add sourceSets.main, "AEInfinityBooster.refmap.json"
74+
configurations {
75+
runtimeClasspath.extendsFrom localRuntime
13576
}
13677

137-
task sourcesJar(type: Jar, dependsOn: classes) {
138-
archiveClassifier = 'sources'
139-
from sourceSets.main.allSource
78+
dependencies {
79+
implementation "net.neoforged:neoforge:${neo_version}"
80+
annotationProcessor 'org.spongepowered:mixin:0.8.5:processor'
81+
runtimeOnly "mezz.jei:jei-1.20.6-neoforge:18.0.0.62"
82+
compileOnly "appeng:appliedenergistics2-neoforge:18.1.3-alpha"
83+
runtimeOnly "appeng:appliedenergistics2-neoforge:18.1.3-alpha"
14084
}
14185

142-
task deobfJar(type: Jar) {
143-
from sourceSets.main.output
144-
archiveClassifier = 'deobf'
86+
tasks.withType(ProcessResources).configureEach {
87+
var replaceProperties = [
88+
minecraft_version : minecraft_version,
89+
minecraft_version_range: minecraft_version_range,
90+
neo_version : neo_version,
91+
neo_version_range : neo_version_range,
92+
loader_version_range : loader_version_range,
93+
mod_id : mod_id,
94+
mod_name : mod_name,
95+
mod_license : mod_license,
96+
mod_version : mod_version,
97+
mod_authors : mod_authors,
98+
mod_description : mod_description
99+
]
100+
inputs.properties replaceProperties
101+
102+
filesMatching(['META-INF/neoforge.mods.toml']) {
103+
expand replaceProperties
104+
}
145105
}
146106

147-
artifacts {
148-
archives jar
149-
archives sourcesJar
150-
archives deobfJar
107+
108+
tasks.withType(JavaCompile).configureEach {
109+
options.encoding = 'UTF-8' // Use the UTF-8 charset for Java compilation
151110
}
152111

153-
curseforge {
154-
if (env.CURSE_API_KEY) {
155-
apiKey = env.CURSE_API_KEY
156-
}
157-
project {
158-
id = '559313'
159-
changelog = 'A changelog can be found at https://github.com/Hexeption/AEInfinityBooster'
160-
releaseType = 'release'
161-
addGameVersion '1.20'
162-
addGameVersion '1.20.1'
163-
164-
mainArtifact(jar) {
165-
displayName = "AEInfinityBooster v$version"
166-
}
167-
relations {
168-
requiredDependency 'applied-energistics-2'
169-
}
112+
// IDEA no longer automatically downloads sources/javadoc jars for dependencies, so we need to explicitly enable the behavior.
113+
idea {
114+
module {
115+
downloadSources = true
116+
downloadJavadoc = true
170117
}
171118
}
172119

173-
// configure the maven publication
174-
publishing {
175-
publications {
176-
mavenJava(MavenPublication) {
177-
artifact jar
178-
artifact sourcesJar
179-
artifact deobfJar
180-
}
181-
}
120+
task publishCurseForge(type: net.darkhax.curseforgegradle.TaskPublishCurseForge) {
121+
122+
apiToken = env.CURSE_API_KEY
123+
124+
// The main file to upload
125+
def mainFile = upload(559313, jar)
126+
mainFile.releaseType = 'release'
127+
mainFile.changelog = 'A changelog can be found at https://github.com/Hexeption/AEInfinityBooster'
128+
mainFile.changelogType = 'markdown'
129+
mainFile.gameVersions = ['1.20.6']
130+
mainFile.addModLoader("neoforge")
131+
mainFile.displayName = "AEInfinityBooster v${version}"
132+
182133

183-
// select the repositories you want to publish to
184-
repositories {
185-
// uncomment to publish to the local maven
186-
// mavenLocal()
187-
if (env.REPO_PASSWORD) {
188-
maven {
189-
url = "https://nexus.hexeption.dev/repository/hex-mods/"
190-
credentials {
191-
username = "admin"
192-
password = env.REPO_PASSWORD
193-
}
194-
}
195-
}
196-
}
197134
}
198135

199136
modrinth {
200-
if (env.MODRINTH_API_KEY) {
201-
token = env.MODRINTH_API_KEY
202-
}
137+
token = env.MODRINTH_API_KEY
203138
projectId = 'VQhDBNs8'
204139
versionName = "AEInfinityBooster v$version"
205140
changelog = 'A changelog can be found at https://github.com/Hexeption/AEInfinityBooster'
206-
versionNumber = "$version"
207141
uploadFile = jar
208-
gameVersions = ["1.20.1"]
209-
loaders = ["forge"]
142+
gameVersions = ["1.20.6"]
143+
loaders = ["neoforge"]
210144
dependencies {
211-
required.version "ae2", "forge-15.0.9-beta"
145+
required.version "ae2", "18.1.3-alpha"
212146
}
213147
}
214-

gradle.properties

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,22 @@
11
org.gradle.jvmargs=-Xmx3G
22
org.gradle.daemon=false
3+
4+
neogradle.subsystems.parchment.minecraftVersion=1.20.6
5+
neogradle.subsystems.parchment.mappingsVersion=2024.05.01
6+
7+
minecraft_version=1.20.6
8+
minecraft_version_range=[1.20.6,1.21)
9+
10+
neo_version=20.6.112-beta
11+
neo_version_range=[20.6,)
12+
13+
loader_version_range=[2,)
14+
15+
## Mod Properties
16+
mod_id=aeinfinitybooster
17+
mod_name=AEInfinityBooster
18+
mod_license=GNU Lesser General Public License
19+
mod_version=1.0.0
20+
mod_group_id=uk.co.hexeption.aeinfinitybooster
21+
mod_authors=Hexeption
22+
mod_description=Adds Infinite Range Card and Dimension Card to AE2

gradle/wrapper/gradle-wrapper.jar

-15.7 KB
Binary file not shown.
Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
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.7-bin.zip
44
networkTimeout=10000
5+
validateDistributionUrl=true
56
zipStoreBase=GRADLE_USER_HOME
6-
zipStorePath=wrapper/dists
7+
zipStorePath=wrapper/dists

0 commit comments

Comments
 (0)