diff --git a/mdk/build.gradle b/mdk/build.gradle index 209ac8758d..844426001c 100644 --- a/mdk/build.gradle +++ b/mdk/build.gradle @@ -145,7 +145,9 @@ dependencies { // Forge 1.21.6+ uses EventBus 7, which shifts most of its runtime validation to compile-time via an annotation processor // to improve performance in production environments. This line is required to enable said compile-time validation // in your development environment, helping you catch issues early. - annotationProcessor 'net.minecraftforge:eventbus-validator:7.0-beta.8' + // This relies on more obscure Java compiler APIs that may surface bugs. Update your JDK, report bugs to the OpenJDK + // project and/or comment out this line if you encounter issues. + annotationProcessor 'net.minecraftforge:eventbus-validator:7.0-beta.9' // Example mod dependency with JEI // The JEI API is declared for compile time use, while the full JEI artifact is used at runtime diff --git a/settings.gradle b/settings.gradle index 5a6e91749b..ac7dc52d31 100644 --- a/settings.gradle +++ b/settings.gradle @@ -32,8 +32,8 @@ dependencyResolutionManagement { library('accesstransformers', 'net.minecraftforge:accesstransformers:8.2.2') library('coremods', 'net.minecraftforge:coremods:5.2.6') library('nashorn', 'org.openjdk.nashorn:nashorn-core:15.4') // Needed by coremods, because the JRE no longer ships JS - library('eventbus', 'net.minecraftforge:eventbus:7.0-beta.8') - library('eventbus-validator', 'net.minecraftforge:eventbus-validator:7.0-beta.8') + library('eventbus', 'net.minecraftforge:eventbus:7.0-beta.9') + library('eventbus-validator', 'net.minecraftforge:eventbus-validator:7.0-beta.9') library('mergetool-api', 'net.minecraftforge:mergetool-api:1.0') library('mixin', 'org.spongepowered:mixin:0.8.7') diff --git a/src/main/java/net/minecraftforge/client/event/RegisterClientTooltipComponentFactoriesEvent.java b/src/main/java/net/minecraftforge/client/event/RegisterClientTooltipComponentFactoriesEvent.java index 194b00952d..e6bc5c8260 100644 --- a/src/main/java/net/minecraftforge/client/event/RegisterClientTooltipComponentFactoriesEvent.java +++ b/src/main/java/net/minecraftforge/client/event/RegisterClientTooltipComponentFactoriesEvent.java @@ -9,6 +9,7 @@ import net.minecraft.client.gui.screens.inventory.tooltip.ClientTooltipComponent import net.minecraft.world.inventory.tooltip.TooltipComponent; import net.minecraftforge.eventbus.api.bus.BusGroup; import net.minecraftforge.eventbus.api.bus.EventBus; +import net.minecraftforge.eventbus.api.event.characteristic.SelfDestructing; import net.minecraftforge.fml.LogicalSide; import net.minecraftforge.fml.event.IModBusEvent; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; @@ -21,12 +22,10 @@ import java.util.function.Function; * Allows users to register custom {@link net.minecraft.client.gui.screens.inventory.tooltip.ClientTooltipComponent} * factories for their {@link net.minecraft.world.inventory.tooltip.TooltipComponent} types. * - *

This event is not {@linkplain Cancelable cancellable}, and does not {@linkplain HasResult have a result}. - * *

This event is fired on the {@linkplain FMLJavaModLoadingContext#getModEventBus() mod-specific event bus}, * only on the {@linkplain LogicalSide#CLIENT logical client}.

*/ -public final class RegisterClientTooltipComponentFactoriesEvent implements IModBusEvent { +public final class RegisterClientTooltipComponentFactoriesEvent implements SelfDestructing, IModBusEvent { public static EventBus getBus(BusGroup modBusGroup) { return IModBusEvent.getBus(modBusGroup, RegisterClientTooltipComponentFactoriesEvent.class); } diff --git a/src/main/java/net/minecraftforge/client/event/RegisterItemDecorationsEvent.java b/src/main/java/net/minecraftforge/client/event/RegisterItemDecorationsEvent.java index d05c20aeea..679d579581 100644 --- a/src/main/java/net/minecraftforge/client/event/RegisterItemDecorationsEvent.java +++ b/src/main/java/net/minecraftforge/client/event/RegisterItemDecorationsEvent.java @@ -11,6 +11,7 @@ import net.minecraftforge.client.IItemDecorator; import net.minecraftforge.eventbus.api.bus.BusGroup; import net.minecraftforge.eventbus.api.bus.EventBus; +import net.minecraftforge.eventbus.api.event.characteristic.SelfDestructing; import net.minecraftforge.fml.LogicalSide; import net.minecraftforge.fml.event.IModBusEvent; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; @@ -23,12 +24,10 @@ import java.util.Map; /** * Allows users to register custom {@linkplain IItemDecorator IItemDecorator} to Items. * - *

This event is not {@linkplain Cancelable cancelable}, and does not {@linkplain HasResult have a result}. - * *

This event is fired on the {@linkplain FMLJavaModLoadingContext#getModEventBus() mod-specific event bus}, * only on the {@linkplain LogicalSide#CLIENT logical client}.

*/ -public final class RegisterItemDecorationsEvent implements IModBusEvent { +public final class RegisterItemDecorationsEvent implements SelfDestructing, IModBusEvent { public static EventBus getBus(BusGroup modBusGroup) { return IModBusEvent.getBus(modBusGroup, RegisterItemDecorationsEvent.class); } diff --git a/src/main/java/net/minecraftforge/client/event/RegisterKeyMappingsEvent.java b/src/main/java/net/minecraftforge/client/event/RegisterKeyMappingsEvent.java index c87689d60f..8ddeb7903b 100644 --- a/src/main/java/net/minecraftforge/client/event/RegisterKeyMappingsEvent.java +++ b/src/main/java/net/minecraftforge/client/event/RegisterKeyMappingsEvent.java @@ -9,6 +9,7 @@ import net.minecraft.client.KeyMapping; import net.minecraft.client.Options; import net.minecraftforge.eventbus.api.bus.BusGroup; import net.minecraftforge.eventbus.api.bus.EventBus; +import net.minecraftforge.eventbus.api.event.characteristic.SelfDestructing; import net.minecraftforge.fml.LogicalSide; import net.minecraftforge.fml.event.IModBusEvent; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; @@ -18,12 +19,10 @@ import org.jetbrains.annotations.ApiStatus; /** * Allows users to register custom {@link net.minecraft.client.KeyMapping key mappings}. * - *

This event is not {@linkplain Cancelable cancellable}, and does not {@linkplain HasResult have a result}. - * *

This event is fired on the {@linkplain FMLJavaModLoadingContext#getModEventBus() mod-specific event bus}, * only on the {@linkplain LogicalSide#CLIENT logical client}.

*/ -public final class RegisterKeyMappingsEvent implements IModBusEvent { +public final class RegisterKeyMappingsEvent implements SelfDestructing, IModBusEvent { public static EventBus getBus(BusGroup modBusGroup) { return IModBusEvent.getBus(modBusGroup, RegisterKeyMappingsEvent.class); } diff --git a/src/main/java/net/minecraftforge/client/event/RegisterTextureAtlasSpriteLoadersEvent.java b/src/main/java/net/minecraftforge/client/event/RegisterTextureAtlasSpriteLoadersEvent.java index 78891f6b07..2704c681df 100644 --- a/src/main/java/net/minecraftforge/client/event/RegisterTextureAtlasSpriteLoadersEvent.java +++ b/src/main/java/net/minecraftforge/client/event/RegisterTextureAtlasSpriteLoadersEvent.java @@ -12,6 +12,7 @@ import net.minecraft.resources.ResourceLocation; import net.minecraftforge.client.textures.ITextureAtlasSpriteLoader; import net.minecraftforge.eventbus.api.bus.BusGroup; import net.minecraftforge.eventbus.api.bus.EventBus; +import net.minecraftforge.eventbus.api.event.characteristic.SelfDestructing; import net.minecraftforge.fml.LogicalSide; import net.minecraftforge.fml.ModLoadingContext; import net.minecraftforge.fml.event.IModBusEvent; @@ -21,12 +22,10 @@ import org.jetbrains.annotations.ApiStatus; /** * Allows users to register custom {@link ITextureAtlasSpriteLoader texture atlas sprite loaders}. * - *

This event is not {@linkplain Cancelable cancellable}, and does not {@linkplain HasResult have a result}. - * *

This event is fired on the {@linkplain FMLJavaModLoadingContext#getModEventBus() mod-specific event bus}, * only on the {@linkplain LogicalSide#CLIENT logical client}.

*/ -public final class RegisterTextureAtlasSpriteLoadersEvent implements IModBusEvent { +public final class RegisterTextureAtlasSpriteLoadersEvent implements SelfDestructing, IModBusEvent { public static EventBus getBus(BusGroup modBusGroup) { return IModBusEvent.getBus(modBusGroup, RegisterTextureAtlasSpriteLoadersEvent.class); } diff --git a/src/main/java/net/minecraftforge/fml/event/lifecycle/FMLConstructModEvent.java b/src/main/java/net/minecraftforge/fml/event/lifecycle/FMLConstructModEvent.java index be12fbfb07..d4886d264f 100644 --- a/src/main/java/net/minecraftforge/fml/event/lifecycle/FMLConstructModEvent.java +++ b/src/main/java/net/minecraftforge/fml/event/lifecycle/FMLConstructModEvent.java @@ -7,6 +7,7 @@ package net.minecraftforge.fml.event.lifecycle; import net.minecraftforge.eventbus.api.bus.BusGroup; import net.minecraftforge.eventbus.api.bus.EventBus; +import net.minecraftforge.eventbus.api.event.characteristic.SelfDestructing; import net.minecraftforge.fml.ModContainer; import net.minecraftforge.fml.ModLoadingStage; import net.minecraftforge.fml.event.IModBusEvent; @@ -15,7 +16,7 @@ import net.minecraftforge.fml.event.IModBusEvent; * Supplied as a param to your mod's constructor to get access * to the mod EventBus and various mod-specific objects. */ -public final class FMLConstructModEvent extends ParallelDispatchEvent { +public final class FMLConstructModEvent extends ParallelDispatchEvent implements SelfDestructing { public static EventBus getBus(BusGroup modBusGroup) { return IModBusEvent.getBus(modBusGroup, FMLConstructModEvent.class); } diff --git a/src/test/java/com/example/examplemod/ExampleMod.java b/src/test/java/com/example/examplemod/ExampleMod.java index 6de1b0d2fc..217f37b57e 100644 --- a/src/test/java/com/example/examplemod/ExampleMod.java +++ b/src/test/java/com/example/examplemod/ExampleMod.java @@ -27,7 +27,7 @@ import org.slf4j.Logger; // The value here should match an entry in the META-INF/mods.toml file @Mod(ExampleMod.MODID) -public class ExampleMod { +public final class ExampleMod { // Define mod id in a common place for everything to reference public static final String MODID = "examplemod"; // Directly reference a slf4j logger