diff --git a/src/main/java/gregtech/api/modules/IGregTechModule.java b/src/main/java/gregtech/api/modules/IGregTechModule.java
index 737633cea4c..75208d8dce9 100644
--- a/src/main/java/gregtech/api/modules/IGregTechModule.java
+++ b/src/main/java/gregtech/api/modules/IGregTechModule.java
@@ -55,11 +55,35 @@ default void serverStopped(FMLServerStoppedEvent event) {}
default void registerPackets() {}
/**
- * @return A list of classes to subscribe to the Forge event bus.
- * As the class gets subscribed, not any specific instance, event handlers must be static!
+ * The class itself gets subscribed, instead of a class instance, so event handlers must be
+ * {@code static}.
+ *
+ * @return A list of classes to subscribe to the Forge Event Bus,
+ * {@link net.minecraftforge.common.MinecraftForge#EVENT_BUS}.
*/
- @NotNull
- default List> getEventBusSubscribers() {
+ default @NotNull List> getEventBusSubscribers() {
+ return Collections.emptyList();
+ }
+
+ /**
+ * The class itself gets subscribed, instead of a class instance, so event handlers must be
+ * {@code static}.
+ *
+ * @return A list of classes to subscribe to the Forge Terrain Gen Bus,
+ * {@link net.minecraftforge.common.MinecraftForge#TERRAIN_GEN_BUS}.
+ */
+ default @NotNull List> getTerrainGenBusSubscribers() {
+ return Collections.emptyList();
+ }
+
+ /**
+ * The class itself gets subscribed, instead of a class instance, so event handlers must be
+ * {@code static}.
+ *
+ * @return A list of classes to subscribe to the Forge Ore Gen Bus,
+ * {@link net.minecraftforge.common.MinecraftForge#ORE_GEN_BUS}.
+ */
+ default @NotNull List> getOreGenBusSubscribers() {
return Collections.emptyList();
}
diff --git a/src/main/java/gregtech/modules/ModuleManager.java b/src/main/java/gregtech/modules/ModuleManager.java
index 4a939058128..768d44e95b6 100644
--- a/src/main/java/gregtech/modules/ModuleManager.java
+++ b/src/main/java/gregtech/modules/ModuleManager.java
@@ -101,6 +101,12 @@ public void setup(ASMDataTable asmDataTable, File configDirectory) {
for (Class> clazz : module.getEventBusSubscribers()) {
MinecraftForge.EVENT_BUS.register(clazz);
}
+ for (Class> clazz : module.getTerrainGenBusSubscribers()) {
+ MinecraftForge.TERRAIN_GEN_BUS.register(clazz);
+ }
+ for (Class> clazz : module.getOreGenBusSubscribers()) {
+ MinecraftForge.ORE_GEN_BUS.register(clazz);
+ }
}
}