Skip to content

Commit 535867e

Browse files
authored
Add Forge 26.1 support + enable ClothConfig for Fabric/NeoForge (#1058)
1 parent c2691ba commit 535867e

18 files changed

Lines changed: 86 additions & 90 deletions

File tree

build.gradle

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,12 @@ allprojects {
8787
}
8888
}
8989

90+
pluginManager.withPlugin("idea") {
91+
if (tasks.findByName("idePostSync") == null) {
92+
tasks.register("idePostSync")
93+
}
94+
}
95+
9096
if (version == null || version == "unspecified") {
9197
try {
9298
def details = versionDetails()

fabric/build.gradle.kts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@ dependencies {
1515
exclude(group = "net.fabricmc.fabric-api")
1616
}
1717

18-
// modImplementation(libs.clothConfigFabric) {
19-
// exclude(group = "net.fabricmc.fabric-api")
20-
// exclude(module = "modmenu")
21-
// }
18+
implementation(libs.clothConfigFabric) {
19+
exclude(group = "net.fabricmc.fabric-api")
20+
exclude(module = "modmenu")
21+
}
2222
}
2323

2424
tasks {

fabric/src/client/java/fr/rakambda/fallingtree/fabric/client/ModMenuImpl.java

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

33
import com.terraformersmc.modmenu.api.ConfigScreenFactory;
44
import com.terraformersmc.modmenu.api.ModMenuApi;
5+
import fr.rakambda.fallingtree.common.FallingTreeCommon;
6+
import fr.rakambda.fallingtree.fabric.FallingTree;
7+
import fr.rakambda.fallingtree.fabric.client.cloth.ClothConfigHook;
8+
import net.fabricmc.loader.api.FabricLoader;
59
import org.apache.logging.log4j.LogManager;
610
import org.apache.logging.log4j.Logger;
11+
import java.lang.reflect.InvocationTargetException;
712

813
public class ModMenuImpl implements ModMenuApi{
914
private static final Logger log = LogManager.getLogger(ModMenuImpl.class);
1015

1116
@Override
1217
public ConfigScreenFactory<?> getModConfigScreenFactory(){
13-
// if(FabricLoader.getInstance().isModLoaded("cloth-config")){
14-
// return (screen) -> {
15-
// try{
16-
// return Class.forName("fr.rakambda.fallingtree.fabric.client.cloth.ClothConfigHook")
17-
// .asSubclass(ClothConfigHook.class)
18-
// .getConstructor(FallingTreeCommon.class)
19-
// .newInstance(FallingTree.getMod())
20-
// .load()
21-
// .apply(screen);
22-
// }
23-
// catch(ClassNotFoundException | IllegalAccessException | InstantiationException | NoSuchMethodException | InvocationTargetException e){
24-
// log.error("Failed to hook into ClothConfig", e);
25-
// }
26-
// return null;
27-
// };
28-
// }
29-
return screen -> null;
18+
if(FabricLoader.getInstance().isModLoaded("cloth-config")){
19+
return (screen) -> {
20+
try{
21+
return Class.forName("fr.rakambda.fallingtree.fabric.client.cloth.ClothConfigHook")
22+
.asSubclass(ClothConfigHook.class)
23+
.getConstructor(FallingTreeCommon.class)
24+
.newInstance(FallingTree.getMod())
25+
.load()
26+
.apply(screen);
27+
}
28+
catch(ClassNotFoundException | IllegalAccessException | InstantiationException | NoSuchMethodException | InvocationTargetException e){
29+
log.error("Failed to hook into ClothConfig", e);
30+
}
31+
return null;
32+
};
33+
}
34+
return _ -> null;
3035
}
3136
}

fabric/src/client/java/fr/rakambda/fallingtree/fabric/client/cloth/ClothConfigHook.java.disabled renamed to fabric/src/client/java/fr/rakambda/fallingtree/fabric/client/cloth/ClothConfigHook.java

File renamed without changes.

forge/build.gradle

Lines changed: 17 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -4,65 +4,56 @@ plugins {
44

55
minecraft {
66
mappings channel: "official", version: "${libs.versions.minecraftVersion.get()}"
7-
copyIdeResources = true
8-
reobf = false
97

10-
accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg')
8+
accessTransformers.from(layout.projectDirectory.file('src/main/resources/META-INF/accesstransformer.cfg'))
119

1210
runs {
1311
configureEach {
14-
property "forge.logging.markers", "REGISTRIES"
15-
property "forge.logging.console.level", "error"
16-
property "eventbus.api.strictRuntimeChecks", "true"
12+
systemProperty "forge.enabledGameTestNamespaces", "fallingtree"
13+
systemProperty "forge.logging.markers", "REGISTRIES"
14+
systemProperty "forge.logging.console.level", "error"
15+
systemProperty "eventbus.api.strictRuntimeChecks", "true"
1716
}
1817

1918
client {
20-
taskName "runFTForgeClient"
21-
workingDirectory project.file("./run/client")
19+
workingDir = layout.projectDirectory.dir("./run/client")
2220
}
2321

2422
server {
25-
taskName "runFTForgeServer"
26-
workingDirectory project.file("./run/server")
23+
workingDir = layout.projectDirectory.dir("./run/server")
2724
args "--nogui"
2825
}
2926

3027
gameTestServer {
31-
taskName "runFTForgeTestServer"
32-
workingDirectory project.file("./run/test")
33-
property "forge.enabledGameTestNamespaces", "fallingtree"
28+
workingDir = layout.projectDirectory.dir("./run/test")
3429
}
3530

3631
data {
37-
taskName "runFTForgeData"
38-
workingDirectory project.file("./run/data")
39-
args '--mod', 'fallingtree', '--all', '--output', file('src/generated/resources/').getAbsolutePath(), '--existing', file('src/main/resources/').getAbsolutePath()
32+
workingDir = layout.projectDirectory.dir("./run/data")
33+
args '--mod', 'fallingtree', '--all', '--output', layout.projectDirectory.dir('src/generated/resources/'), '--existing', layout.projectDirectory.dir('src/main/resources/')
4034
}
4135
}
4236
}
4337

38+
repositories {
39+
minecraft.mavenizer(it)
40+
maven fg.forgeMaven
41+
maven fg.minecraftLibsMaven
42+
}
43+
4444
configurations {
4545
library
4646
implementation.extendsFrom library
4747
}
4848

49-
minecraft.runs.all {
50-
lazyToken('minecraft_classpath') {
51-
configurations.library.copyRecursive().resolve().collect { it.absolutePath }.join(File.pathSeparator)
52-
}
53-
}
54-
5549
sourceSets.main.resources { srcDir 'src/generated/resources' }
5650

5751
dependencies {
58-
minecraft(libs.forge)
52+
implementation(minecraft.dependency(libs.forge))
5953
library(project(":common"))
6054

6155
// implementation("me.shedaniel.cloth:cloth-config-forge:${libs.versions.clothConfigVersion.get()}")
6256

63-
// Hack fix for now, force jopt-simple to be exactly 5.0.4 because Mojang ships that version, but some transitive dependencies request 6.0+
64-
implementation('net.sf.jopt-simple:jopt-simple:5.0.4') { version { strictly '5.0.4' } }
65-
6657
annotationProcessor(libs.forgeEventbusValidator)
6758
}
6859

forge/src/main/java/fr/rakambda/fallingtree/forge/FallingTree.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public FallingTree(FMLJavaModLoadingContext context){
2828
// }
2929
// }
3030

31-
if(ModList.get().isLoaded("veinminer")){
31+
if(ModList.isLoaded("veinminer")){
3232
log.warn("VeinMiner is present, this may lead to incompatibilities. It is recommended to run the following command: /veinminer groups remove Wood");
3333
}
3434

forge/src/main/java/fr/rakambda/fallingtree/forge/common/wrapper/ChunkPosWrapper.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@ public class ChunkPosWrapper implements IChunkPos{
1616

1717
@Override
1818
public int getX(){
19-
return raw.x;
19+
return raw.x();
2020
}
2121

2222
@Override
2323
public int getZ(){
24-
return raw.z;
24+
return raw.z();
2525
}
2626
}

forge/src/main/java/fr/rakambda/fallingtree/forge/common/wrapper/PlayerWrapper.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public void sendMessage(@NonNull IComponent component, @NonNull NotificationMode
3636
}
3737
}
3838
else{
39-
raw.displayClientMessage(text, true);
39+
raw.sendOverlayMessage(text);
4040
}
4141
}
4242

@@ -76,7 +76,7 @@ public ILevel getLevel(){
7676
@Override
7777
@NonNull
7878
public Set<String> getTags(){
79-
return raw.getTags();
79+
return raw.entityTags();
8080
}
8181

8282
@Override

forge/src/main/java/fr/rakambda/fallingtree/forge/network/PlayerJoinListener.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public void onPlayerLoggedInEvent(@Nonnull PlayerEvent.PlayerLoggedInEvent event
3131
log.info("Player connected to a local world, not setting up proxy config");
3232
}
3333

34-
if(ModList.get().isLoaded("veinminer")){
34+
if(ModList.isLoaded("veinminer")){
3535
new PlayerWrapper(event.getEntity()).sendMessage(mod.translate("chat.fallingtree.veinminer_incompatibility"), NotificationMode.CHAT);
3636
}
3737
}
Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1 @@
1-
public net.minecraft.world.entity.item.FallingBlockEntity f_31946_ # blockState
2-
public net.minecraft.world.entity.item.FallingBlockEntity blockState # blockState
3-
public net.minecraft.server.level.ServerPlayer f_8924_ # server
41
public net.minecraft.server.level.ServerPlayer server # server

0 commit comments

Comments
 (0)