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); + } } }