Skip to content

Commit f575f8a

Browse files
committed
Update to NeoForge 1.20.4
1 parent 2e9d466 commit f575f8a

18 files changed

Lines changed: 138 additions & 127 deletions

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
doc/info.txt
44
/build
55
/run
6+
/runs
67

78
# Ignore project specific files
89
.classpath
@@ -17,6 +18,7 @@ repo/*
1718
*.iws
1819
out/*
1920
keystore.jks
21+
.idea
2022

2123
# Ignore mac-specific file(s)
2224
.DS_Store

build.gradle

Lines changed: 60 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
plugins {
2-
id 'net.minecraftforge.gradle' version '[6.0,6.2)'
3-
id 'com.matthewprenger.cursegradle' version '1.4.0'
2+
id 'net.neoforged.gradle.userdev' version '7.0.97'
3+
id 'net.darkhax.curseforgegradle' version '1.0.8'
44
id 'com.diffplug.spotless' version '5.14.3'
55
id 'com.modrinth.minotaur' version '2.+'
66
}
77

8-
apply plugin: 'net.minecraftforge.gradle'
98
apply plugin: 'idea'
109
apply plugin: 'maven-publish'
1110

12-
import net.minecraftforge.gradle.common.tasks.SignJar
11+
import net.neoforged.gradle.common.tasks.PotentiallySignJar
1312

1413
// Determine build number
1514
String build_number = "DEV" // this will be referenced as simply build_number from now on.
@@ -26,7 +25,10 @@ logger.lifecycle "BUILDING VERSION: " + build_number
2625
// Set mod details
2726
version = project.mod_version
2827
group = "org.cyclops.structuredcrafting"
29-
archivesBaseName = "StructuredCrafting"
28+
archivesBaseName = "StructuredCrafting-${project.minecraft_version}-neoforge"
29+
base {
30+
archivesName = archivesBaseName
31+
}
3032

3133
// Set Java details
3234
java.toolchain.languageVersion = JavaLanguageVersion.of(17)
@@ -56,6 +58,7 @@ sourceSets {
5658
runtimeClasspath += sourceSets.api.output
5759
}
5860
}
61+
sourceSets.main.resources { srcDir 'src/generated/resources' }
5962

6063
configurations {
6164
apiImplementation.extendsFrom(implementation)
@@ -77,13 +80,13 @@ repositories {
7780
}
7881

7982
dependencies {
80-
minecraft "net.minecraftforge:forge:${project.minecraft_version}-${project.forge_version}"
83+
implementation "net.neoforged:neoforge:${project.neoforge_version}"
8184

8285
// Add something like 'cyclopscore_version_local=0.1.0-DEV' to your secrets.properties if you want to use a custom local CyclopsCore version.
8386
if (secrets.cyclopscore_version_local) {
84-
implementation "org.cyclops.cyclopscore:cyclopscore:${project.minecraft_version}-${secrets.cyclopscore_version_local}:deobf"
87+
implementation "org.cyclops.cyclopscore:cyclopscore-${project.minecraft_version}-neoforge:${secrets.cyclopscore_version_local}:deobf"
8588
} else {
86-
implementation "org.cyclops.cyclopscore:cyclopscore:${project.minecraft_version}-${project.cyclopscore_version}:deobf"
89+
implementation "org.cyclops.cyclopscore:cyclopscore-${project.minecraft_version}-neoforge:${project.cyclopscore_version}:deobf"
8790
}
8891

8992
// Project lombok
@@ -93,44 +96,37 @@ dependencies {
9396
testAnnotationProcessor 'org.projectlombok:lombok:1.18.22'
9497
}
9598

96-
minecraft {
97-
mappings channel: "official", version: "${project.minecraft_version}"
98-
99-
accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg')
99+
runs {
100+
configureEach {
101+
systemProperty 'forge.logging.markers', 'REGISTRIES'
102+
systemProperty 'forge.logging.console.level', 'debug'
103+
systemProperty 'forge.logging.console.level', 'debug'
104+
modSource project.sourceSets.main
105+
modSource project.sourceSets.api
106+
}
107+
108+
client {
109+
systemProperty 'forge.enabledGameTestNamespaces', project.mod_id
110+
}
100111

101-
runs {
102-
client {
103-
workingDirectory project.file('run')
104-
//property 'forge.logging.markers', 'REGISTRIES,REGISTRYDUMP'
105-
property 'forge.logging.console.level', 'debug'
106-
mods {
107-
structuredcrafting.sources((SourceSet[]) [sourceSets.main, sourceSets.api])
108-
}
109-
}
112+
server {
113+
systemProperty 'forge.enabledGameTestNamespaces', project.mod_id
114+
programArgument '--nogui'
115+
}
110116

111-
server {
112-
workingDirectory project.file('run')
113-
property 'forge.logging.console.level', 'debug'
114-
mods {
115-
structuredcrafting.sources((SourceSet[]) [sourceSets.main, sourceSets.api])
116-
}
117-
}
117+
gameTestServer {
118+
systemProperty 'forge.enabledGameTestNamespaces', project.mod_id
119+
}
118120

119-
data {
120-
workingDirectory project.file('run')
121-
property 'forge.logging.console.level', 'debug'
122-
args '--mod', 'structuredcrafting', '--all', '--output', file('src/generated/resources/')
123-
mods {
124-
structuredcrafting.sources((SourceSet[]) [sourceSets.main, sourceSets.api])
125-
}
126-
}
121+
data {
122+
programArguments.addAll '--mod', project.mod_id, '--all', '--output', file('src/generated/resources/').getAbsolutePath(), '--existing', file('src/main/resources/').getAbsolutePath()
127123
}
128124
}
129125

130126
if (build_number.equals("RELEASE"))
131-
version = "${project.minecraft_version}-${project.mod_version}"
127+
version = "${project.mod_version}"
132128
else
133-
version = "${project.minecraft_version}-${project.mod_version}-${build_number}"
129+
version = "${project.mod_version}-${build_number}"
134130

135131
jar {
136132
manifest {
@@ -146,15 +142,16 @@ jar {
146142
])
147143
}
148144
}
149-
jar.finalizedBy('reobfJar')
150145

151146
javadoc {
152147
source = [sourceSets.main.allJava]
153148
// prevent java 8's strict doclint for javadocs from failing builds
154149
options.addStringOption('Xdoclint:accessibility,html,reference,syntax', '-quiet')
155150
}
156151

157-
task signJar(type: SignJar, dependsOn: jar) {
152+
task signJar(type: PotentiallySignJar, dependsOn: jar) {
153+
dependsOn(tasks.jar)
154+
158155
onlyIf {
159156
System.getenv().SIGN_KEYSTORE
160157
}
@@ -163,10 +160,9 @@ task signJar(type: SignJar, dependsOn: jar) {
163160
alias = System.getenv().SIGN_ALIAS
164161
storePass = System.getenv().SIGN_STOREPASS
165162
keyPass = System.getenv().SIGN_KEYPASS
166-
inputFile = jar.archivePath
167-
outputFile = jar.archivePath
163+
input = jar.archivePath
164+
output = jar.archivePath
168165
}
169-
build.dependsOn signJar
170166

171167
task deobfJar(type: Jar) {
172168
from sourceSets.main.output
@@ -211,32 +207,28 @@ artifacts {
211207
archives javadocJar
212208
}
213209

214-
curseforge {
215-
if(secrets.curseforge_key) {
216-
apiKey = secrets.curseforge_key
210+
task publishCurseForge(type: net.darkhax.curseforgegradle.TaskPublishCurseForge) {
211+
dependsOn(tasks.jar)
212+
213+
if(secrets.hasProperty("curseforge_key") && secrets.hasProperty("changelog")) {
214+
apiToken = secrets.curseforge_key
217215
} else if(System.getenv().GITHUB_ACTIONS && System.getenv().CURSEFORGE_KEY_SECRET) {
218-
apiKey = System.getenv().CURSEFORGE_KEY_SECRET
216+
apiToken = System.getenv().CURSEFORGE_KEY_SECRET
217+
} else {
218+
apiToken = "DUMMY"
219219
}
220220

221-
project {
222-
id = "233151" // my project url is http://minecraft.curseforge.com/mc-mods/233151/
223-
releaseType = project.project.release_type
224-
addGameVersion project.minecraft_version
225-
mainArtifact(jar) {
226-
relations {
227-
requiredDependency 'cyclops-core'
228-
}
229-
}
221+
def projectId = "233151" // my project url is http://minecraft.curseforge.com/mc-mods/233151/
230222

231-
changelog = ""
232-
if (new File("resources/changelog/${project.version}.txt").exists()) {
233-
changelog = new File("resources/changelog/${project.version}.txt").text
234-
}
235-
236-
addArtifact deobfJar
237-
addArtifact sourcesJar
238-
addArtifact javadocJar
223+
def mainFile = upload(projectId, jar)
224+
mainFile.changelogType = "text"
225+
if (new File("resources/changelog/${project.version}.txt").exists()) {
226+
mainFile.changelog = file("resources/changelog/${project.version}.txt")
239227
}
228+
mainFile.addGameVersion(project.minecraft_version)
229+
mainFile.addModLoader("NeoForge")
230+
231+
mainFile.addRequirement('cyclops-core')
240232
}
241233

242234
modrinth {
@@ -318,3 +310,7 @@ tasks.register('updateGitHooks', Copy) {
318310
into './.git/hooks'
319311
}
320312
compileJava.dependsOn updateGitHooks
313+
314+
tasks.withType(JavaCompile).configureEach {
315+
options.encoding = 'UTF-8' // Use the UTF-8 charset for Java compilation
316+
}

gradle.properties

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1+
mod_id=structuredcrafting
12
mod_version=0.2.6
2-
minecraft_version=1.20.1
3-
forge_version=47.0.1
4-
cyclopscore_version=1.18.4-340
3+
minecraft_version=1.20.4
4+
neoforge_version=20.4.160-beta
5+
cyclopscore_version=1.19.0-409
56
release_type=release
67
fingerprint=bd0353b3e8a2810d60dd584e256e364bc3bedd44
78

settings.gradle

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
pluginManagement {
22
repositories {
3+
mavenLocal()
34
gradlePluginPortal()
4-
maven {
5-
name = 'MinecraftForge'
6-
url = 'https://maven.minecraftforge.net/'
7-
}
5+
maven { url = 'https://maven.neoforged.net/releases' }
86
}
97
}
108

Submodule api updated 25 files
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
package org.cyclops.structuredcrafting;
22

3-
import net.minecraftforge.common.capabilities.Capability;
4-
import net.minecraftforge.common.capabilities.CapabilityManager;
5-
import net.minecraftforge.common.capabilities.CapabilityToken;
3+
import net.minecraft.core.Direction;
4+
import net.minecraft.resources.ResourceLocation;
5+
import net.neoforged.neoforge.capabilities.BlockCapability;
66
import org.cyclops.commoncapabilities.api.capability.work.IWorker;
77

88
/**
99
* Used capabilities for this mod.
1010
* @author rubensworks
1111
*/
1212
public class Capabilities {
13-
public static Capability<IWorker> WORKER = CapabilityManager.get(new CapabilityToken<>(){});
13+
public static BlockCapability<IWorker, Direction> WORKER = BlockCapability.createSided(new ResourceLocation("commoncapabilities", "worker"), IWorker.class);
1414
}

src/main/java/org/cyclops/structuredcrafting/GeneralConfig.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package org.cyclops.structuredcrafting;
22

3-
import net.minecraftforge.fml.config.ModConfig;
3+
import net.neoforged.fml.config.ModConfig;
44
import org.cyclops.cyclopscore.config.ConfigurableProperty;
55
import org.cyclops.cyclopscore.config.extendedconfig.DummyConfig;
66
import org.cyclops.cyclopscore.init.ModBase;
Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package org.cyclops.structuredcrafting;
22

3+
import net.minecraft.core.registries.Registries;
4+
import net.minecraft.resources.ResourceLocation;
35
import net.minecraft.world.item.Item;
46
import net.minecraft.world.level.block.Block;
57
import net.minecraft.world.level.block.entity.BlockEntityType;
6-
import net.minecraftforge.registries.ObjectHolder;
8+
import net.neoforged.neoforge.registries.DeferredHolder;
79
import org.cyclops.structuredcrafting.blockentity.BlockEntityStructuredCrafter;
810

911
/**
@@ -12,13 +14,10 @@
1214
*/
1315
public class RegistryEntries {
1416

15-
@ObjectHolder(registryName = "item", value = "structuredcrafting:structured_crafter")
16-
public static final Item ITEM_STRUCTURED_CRAFTER = null;
17+
public static final DeferredHolder<Item, Item> ITEM_STRUCTURED_CRAFTER = DeferredHolder.create(Registries.ITEM, new ResourceLocation("structuredcrafting:structured_crafter"));
1718

18-
@ObjectHolder(registryName = "block", value = "structuredcrafting:structured_crafter")
19-
public static final Block BLOCK_STRUCTURED_CRAFTER = null;
19+
public static final DeferredHolder<Block, Block> BLOCK_STRUCTURED_CRAFTER = DeferredHolder.create(Registries.BLOCK, new ResourceLocation("structuredcrafting:structured_crafter"));
2020

21-
@ObjectHolder(registryName = "block_entity_type", value = "structuredcrafting:structured_crafter")
22-
public static final BlockEntityType<BlockEntityStructuredCrafter> BLOCK_ENTITY_STRUCTURED_CRAFTER = null;
21+
public static final DeferredHolder<BlockEntityType<?>, BlockEntityType<BlockEntityStructuredCrafter>> BLOCK_ENTITY_STRUCTURED_CRAFTER = DeferredHolder.create(Registries.BLOCK_ENTITY_TYPE, new ResourceLocation("structuredcrafting:structured_crafter"));
2322

2423
}

src/main/java/org/cyclops/structuredcrafting/StructuredCrafting.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,17 @@
22

33
import net.minecraft.world.item.CreativeModeTab;
44
import net.minecraft.world.item.ItemStack;
5-
import net.minecraftforge.fml.common.Mod;
6-
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
5+
import net.neoforged.bus.api.IEventBus;
6+
import net.neoforged.fml.common.Mod;
7+
import net.neoforged.fml.event.lifecycle.FMLCommonSetupEvent;
78
import org.apache.logging.log4j.Level;
89
import org.cyclops.cyclopscore.config.ConfigHandler;
910
import org.cyclops.cyclopscore.init.ModBaseVersionable;
1011
import org.cyclops.cyclopscore.modcompat.ModCompatLoader;
1112
import org.cyclops.cyclopscore.proxy.IClientProxy;
1213
import org.cyclops.cyclopscore.proxy.ICommonProxy;
1314
import org.cyclops.structuredcrafting.block.BlockStructuredCrafterConfig;
14-
import org.cyclops.structuredcrafting.blockentity.BlockEntityStructuredCrafter;
15-
import org.cyclops.structuredcrafting.blockentity.TileStructuredCrafterConfig;
15+
import org.cyclops.structuredcrafting.blockentity.BlockEntityStructuredCrafterConfig;
1616
import org.cyclops.structuredcrafting.craft.provider.IItemStackProviderRegistry;
1717
import org.cyclops.structuredcrafting.craft.provider.InventoryItemStackProvider;
1818
import org.cyclops.structuredcrafting.craft.provider.ItemStackProviderRegistry;
@@ -32,16 +32,16 @@ public class StructuredCrafting extends ModBaseVersionable<StructuredCrafting> {
3232
*/
3333
public static StructuredCrafting _instance;
3434

35-
public StructuredCrafting() {
36-
super(Reference.MOD_ID, (instance) -> _instance = instance);
35+
public StructuredCrafting(IEventBus modEventBus) {
36+
super(Reference.MOD_ID, (instance) -> _instance = instance, modEventBus);
3737
}
3838

3939
@Override
4040
protected void loadModCompats(ModCompatLoader modCompatLoader) {
4141
super.loadModCompats(modCompatLoader);
4242

4343
// Capabilities
44-
getCapabilityConstructorRegistry().registerTile(BlockEntityStructuredCrafter.class, new WorkerStructuredCrafterTileCompat());
44+
getCapabilityConstructorRegistry().registerBlockEntity(RegistryEntries.BLOCK_ENTITY_STRUCTURED_CRAFTER, new WorkerStructuredCrafterTileCompat());
4545
}
4646

4747
@Override
@@ -78,7 +78,7 @@ protected void onConfigsRegister(ConfigHandler configHandler) {
7878
configHandler.addConfigurable(new GeneralConfig());
7979

8080
configHandler.addConfigurable(new BlockStructuredCrafterConfig());
81-
configHandler.addConfigurable(new TileStructuredCrafterConfig());
81+
configHandler.addConfigurable(new BlockEntityStructuredCrafterConfig());
8282
}
8383

8484
/**

0 commit comments

Comments
 (0)