Skip to content

Commit 1507aff

Browse files
authored
1.21 Port (#6)
1 parent 99cf8bd commit 1507aff

24 files changed

Lines changed: 353 additions & 284 deletions

build.gradle

100644100755
Lines changed: 103 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,88 +1,132 @@
1-
buildscript {
2-
repositories {
3-
maven { url = 'https://maven.minecraftforge.net' }
4-
maven { url = 'https://repo.spongepowered.org/maven' }
5-
mavenCentral()
6-
}
7-
dependencies {
8-
classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '5.1+', changing: true
9-
classpath group: 'org.spongepowered', name: 'mixingradle', version: '0.7-SNAPSHOT'
10-
classpath 'org.parchmentmc:librarian:1.+'
11-
}
1+
plugins {
2+
id 'java-library'
3+
id 'maven-publish'
4+
id 'net.neoforged.moddev' version '2.0.141'
5+
id 'idea'
6+
}
7+
8+
tasks.named('wrapper', Wrapper).configure {
9+
distributionType = Wrapper.DistributionType.BIN
10+
}
11+
12+
version = mod_version
13+
group = mod_group_id
14+
15+
sourceSets.main.resources {
16+
srcDir('src/generated/resources')
17+
exclude("src/generated/**/.cache")
18+
}
19+
20+
repositories {
21+
maven { url 'https://maven.blamejared.com/' }
1222
}
1323

14-
apply plugin: 'net.minecraftforge.gradle'
15-
apply plugin: 'org.parchmentmc.librarian.forgegradle'
16-
apply plugin: 'org.spongepowered.mixin'
17-
apply plugin: 'eclipse'
18-
apply plugin: 'maven-publish'
24+
base {
25+
archivesName = mod_id
26+
}
1927

20-
// version in gradle.properties
21-
group = 'gdavid.psionicutilities'
22-
archivesBaseName = 'psionicutilities'
28+
java.toolchain.languageVersion = JavaLanguageVersion.of(21)
2329

24-
java.toolchain.languageVersion = JavaLanguageVersion.of(17)
30+
neoForge {
31+
version = project.neo_version
32+
33+
parchment {
34+
mappingsVersion = project.parchment_mappings_version
35+
minecraftVersion = project.parchment_minecraft_version
36+
}
37+
38+
accessTransformers = project.files('src/main/resources/META-INF/accesstransformer.cfg')
2539

26-
minecraft {
27-
mappings channel: "parchment", version: "2023.09.03-1.20.1"
28-
accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg')
2940
runs {
3041
client {
31-
workingDirectory project.file('run')
32-
mods {
33-
psionicutilities { source sourceSets.main }
34-
}
42+
client()
43+
systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id
3544
}
36-
}
37-
}
3845

39-
sourceSets.main.resources { srcDir 'src/generated/resources' }
46+
server {
47+
server()
48+
programArgument '--nogui'
49+
systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id
50+
}
4051

41-
repositories {
42-
maven { url "https://maven.blamejared.com/" }
43-
}
52+
gameTestServer {
53+
type = "gameTestServer"
54+
systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id
55+
}
4456

45-
dependencies {
46-
minecraft group: 'net.minecraftforge', name: 'forge', version: "1.20.1-47.3.0"
47-
annotationProcessor 'org.spongepowered:mixin:0.8.5:processor'
57+
data {
58+
data()
59+
programArguments.addAll '--mod', project.mod_id, '--all', '--output', file('src/generated/resources/').getAbsolutePath(), '--existing', file('src/main/resources/').getAbsolutePath()
60+
}
4861

49-
compileOnly fg.deobf("vazkii.psi:Psi:${psi_version}")
50-
runtimeOnly fg.deobf("vazkii.psi:Psi:${psi_version}")
62+
configureEach {
63+
systemProperty 'forge.logging.markers', 'REGISTRIES'
64+
logLevel = org.slf4j.event.Level.DEBUG
65+
}
66+
}
5167

52-
runtimeOnly fg.deobf("vazkii.patchouli:Patchouli:${patchouli_version}")
68+
mods {
69+
"${mod_id}" {
70+
sourceSet(sourceSets.main)
71+
}
72+
}
5373
}
5474

55-
mixin {
56-
add sourceSets.main, "psionicutilities.refmap.json"
57-
config 'psionicutilities.mixins.json'
75+
configurations {
76+
runtimeClasspath.extendsFrom localRuntime
5877
}
5978

60-
jar {
61-
manifest {
62-
attributes([
63-
"Specification-Title": "psionicutilities",
64-
"Specification-Vendor": "gdavid",
65-
"Specification-Version": "1",
66-
"Implementation-Title": project.name,
67-
"Implementation-Version": "${version}",
68-
"Implementation-Vendor" :"gdavid",
69-
"Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"),
70-
"MixinConfigs": "psionicutilities.mixins.json"
71-
])
72-
}
79+
dependencies {
80+
implementation "vazkii.patchouli:Patchouli:${project.patchouli_version}"
81+
implementation "vazkii.psi:psi:${project.psi_version}"
7382
}
7483

75-
build.dependsOn('reobfJar')
84+
var generateModMetadata = tasks.register("generateModMetadata", ProcessResources) {
85+
var replaceProperties = [
86+
minecraft_version : minecraft_version,
87+
minecraft_version_range : minecraft_version_range,
88+
neo_version : neo_version,
89+
neo_version_range : neo_version_range,
90+
loader_version_range : loader_version_range,
91+
mod_authors : mod_authors,
92+
mod_description : mod_description,
93+
mod_id : mod_id,
94+
mod_issues : mod_issues,
95+
mod_license : mod_license,
96+
mod_name : mod_name,
97+
mod_sources : mod_sources,
98+
mod_version : mod_version,
99+
psi_version_range : psi_version_range,
100+
phi_version_range : phi_version_range,
101+
]
102+
inputs.properties replaceProperties
103+
expand replaceProperties
104+
from "src/main/templates"
105+
into "build/generated/sources/modMetadata"
106+
}
107+
sourceSets.main.resources.srcDir generateModMetadata
108+
neoForge.ideSyncTask generateModMetadata
76109

77110
publishing {
78111
publications {
79-
mavenJava(MavenPublication) {
80-
artifact jar
112+
register('mavenJava', MavenPublication) {
113+
from components.java
81114
}
82115
}
83116
repositories {
84117
maven {
85-
url "file:///${project.projectDir}/mcmodsrepo"
118+
url "file://${project.projectDir}/repo"
86119
}
87120
}
88121
}
122+
123+
tasks.withType(JavaCompile).configureEach {
124+
options.encoding = 'UTF-8'
125+
}
126+
127+
idea {
128+
module {
129+
downloadSources = true
130+
downloadJavadoc = true
131+
}
132+
}

gradle.properties

100644100755
Lines changed: 31 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,32 @@
1-
# Sets default memory used for gradle commands. Can be overridden by user or command line properties.
2-
# This is required to provide enough memory for the Minecraft decompilation process.
3-
org.gradle.jvmargs=-Xmx3G
1+
# Gradle Properties
2+
org.gradle.jvmargs=-Xmx1G
3+
org.gradle.daemon=true
4+
org.gradle.parallel=true
5+
org.gradle.caching=true
6+
org.gradle.configuration-cache=true
47

5-
# Use -Pversion=mc_version-mod_version on release
6-
version=1.20-DEV
7-
psi_version=1.20.1-105.547
8-
patchouli_version=1.20.1-83-FORGE
8+
# Environment Properties
9+
parchment_minecraft_version=1.21.1
10+
parchment_mappings_version=2024.11.17
11+
minecraft_version=1.21.1
12+
minecraft_version_range=[1.21,1.21.1]
13+
neo_version=21.1.234
14+
neo_version_range=[21,)
15+
loader_version_range=[1,)
16+
17+
# Mod Properties
18+
mod_authors=GDavid
19+
mod_description=A Psi addon to make spell programming easier
20+
mod_group_id=gdavid.psionicutilities
21+
mod_id=psionicutilities
22+
mod_issues=https://github.com/gdavid04/PsionicUtilities/issues
23+
mod_license=LGPL-3.0-only
24+
mod_name=Psionic Utilities
25+
mod_sources=https://github.com/gdavid04/PsionicUtilities
26+
mod_version=1.21-DEV
27+
28+
# Dependencies
29+
patchouli_version=1.21.1-93-NEOFORGE
30+
psi_version=1.21.1-108
31+
psi_version_range=[1.21.1-103,)
32+
phi_version_range=[1.19-3.2,)

gradle/wrapper/gradle-wrapper.jar

100644100755
-10.8 KB
Binary file not shown.

gradle/wrapper/gradle-wrapper.properties

100644100755
Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-9.6.0-bin.zip
4+
networkTimeout=10000
5+
retries=0
6+
retryBackOffMs=500
7+
validateDistributionUrl=true
48
zipStoreBase=GRADLE_USER_HOME
59
zipStorePath=wrapper/dists

gradlew

Lines changed: 38 additions & 24 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)