Skip to content

Commit ce02796

Browse files
committed
Fix Forge datagen and add tests for them
1 parent aeab30c commit ce02796

4 files changed

Lines changed: 42 additions & 2 deletions

File tree

‎.github/workflows/gradle.yml‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ jobs:
3434
path: forge/build/libs/
3535
if-no-files-found: error
3636

37+
- name: Test datagen
38+
run: ./gradlew -p forge runData
39+
3740
build-neoforge:
3841
runs-on: ubuntu-latest
3942
steps:
@@ -56,6 +59,9 @@ jobs:
5659
path: neoforge/build/libs/
5760
if-no-files-found: error
5861

62+
- name: Test datagen
63+
run: ./gradlew -p neoforge runClientData
64+
5965
build-fabric:
6066
runs-on: ubuntu-latest
6167
steps:

‎forge/build.gradle‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,14 @@ minecraft {
4040

4141
register('client')
4242
register('server')
43+
44+
// For testing datagen.
45+
register('data') {
46+
args '--mod', 'mousetweaks',
47+
'--all',
48+
'--output', layout.buildDirectory.dir('generated/resources').get().asFile.absolutePath,
49+
'--existing', file('../src/main/resources').absolutePath
50+
}
4351
}
4452
}
4553

‎neoforge/build.gradle‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,14 @@ runs {
5757
systemProperty 'forge.enabledGameTestNamespaces', "mousetweaks"
5858
argument '--nogui'
5959
}
60+
61+
// For testing datagen.
62+
clientData {
63+
arguments.addAll '--mod', 'mousetweaks',
64+
'--all',
65+
'--output', layout.buildDirectory.dir('generated/resources').get().asFile.absolutePath,
66+
'--existing', file('../src/main/resources').absolutePath
67+
}
6068
}
6169

6270
dependencies {

‎src/main/java/yalter/mousetweaks/forge/MouseTweaksForge.java‎

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,44 @@
11
package yalter.mousetweaks.forge;
22

3+
import net.minecraftforge.api.distmarker.Dist;
34
import net.minecraftforge.client.event.ScreenEvent.MouseButtonPressed;
45
import net.minecraftforge.client.event.ScreenEvent.MouseButtonReleased;
56
import net.minecraftforge.client.event.ScreenEvent.MouseDragged;
67
import net.minecraftforge.client.event.ScreenEvent.MouseScrolled;
78
import net.minecraftforge.common.MinecraftForge;
89
import net.minecraftforge.eventbus.api.bus.BusGroup;
10+
import net.minecraftforge.eventbus.api.bus.EventBus;
911
import net.minecraftforge.eventbus.api.listener.SubscribeEvent;
1012
import net.minecraftforge.fml.common.Mod;
13+
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
14+
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
15+
import net.minecraftforge.fml.loading.FMLEnvironment;
1116
import yalter.mousetweaks.*;
1217

1318
import java.lang.invoke.MethodHandles;
1419

1520
@Mod(Constants.MOD_ID)
1621
public class MouseTweaksForge {
17-
public MouseTweaksForge() {
18-
Main.initialize();
22+
public MouseTweaksForge(FMLJavaModLoadingContext context) {
23+
if (FMLEnvironment.dist != Dist.CLIENT) {
24+
Logger.Log("Disabled because not running on the client.");
25+
return;
26+
}
27+
1928
BusGroup.DEFAULT.register(MethodHandles.lookup(), this);
2029

2130
MinecraftForge.registerConfigScreen(ConfigScreen::new);
2231
}
2332

33+
@Mod.EventBusSubscriber(modid = Constants.MOD_ID, value = Dist.CLIENT)
34+
public static class ClientModEvents {
35+
@SubscribeEvent
36+
public static void onClientSetup(FMLClientSetupEvent event) {
37+
// Minecraft.getInstance() is now non-null in this event handler.
38+
Main.initialize();
39+
}
40+
}
41+
2442
@SubscribeEvent
2543
public boolean onGuiMouseClickedPre(MouseButtonPressed.Pre event) {
2644
Logger.DebugLog("onGuiMouseClickedPre button = " + event.getButton());

0 commit comments

Comments
 (0)