diff --git a/src/main/java/ru/dbotthepony/mc/otm/OverdriveThatMatters.java b/src/main/java/ru/dbotthepony/mc/otm/OverdriveThatMatters.java index 3a1c6cdcc..8be14da45 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/OverdriveThatMatters.java +++ b/src/main/java/ru/dbotthepony/mc/otm/OverdriveThatMatters.java @@ -2,8 +2,10 @@ package ru.dbotthepony.mc.otm; import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.Entity; import net.minecraft.world.item.CreativeModeTab; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.eventbus.api.EventPriority; import net.minecraftforge.fml.ModList; @@ -15,10 +17,9 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import ru.dbotthepony.mc.otm.block.entity.blackhole.ExplosionQueue; import ru.dbotthepony.mc.otm.capability.MatteryPlayerCapability; -import ru.dbotthepony.mc.otm.capability.MatteryCapability; import ru.dbotthepony.mc.otm.capability.drive.DrivePool; +import ru.dbotthepony.mc.otm.client.ClientEventHandler; import ru.dbotthepony.mc.otm.client.MatteryGUI; -import ru.dbotthepony.mc.otm.client.EventHandlerKt; import ru.dbotthepony.mc.otm.client.model.GravitationStabilizerModel; import ru.dbotthepony.mc.otm.client.model.TritaniumArmorModel; import ru.dbotthepony.mc.otm.compat.mekanism.QIOKt; @@ -34,6 +35,8 @@ import ru.dbotthepony.mc.otm.registry.*; import ru.dbotthepony.mc.otm.storage.*; import ru.dbotthepony.mc.otm.worldgen.OreGen; +import static net.minecraftforge.common.MinecraftForge.EVENT_BUS; + import javax.annotation.ParametersAreNonnullByDefault; // The value here should match an entry in the META-INF/mods.toml file @@ -77,31 +80,43 @@ public final class OverdriveThatMatters { INSTANCE = this; - MRegistry.INSTANCE.initialize(FMLJavaModLoadingContext.get()); + var modBus = FMLJavaModLoadingContext.get().getModEventBus(); - FMLJavaModLoadingContext.get().getModEventBus().addListener(EventPriority.HIGHEST, this::setup); - FMLJavaModLoadingContext.get().getModEventBus().addListener(this::setupClient); + MRegistry.INSTANCE.initialize(modBus); - MinecraftForge.EVENT_BUS.register(this); - MinecraftForge.EVENT_BUS.register(GlobalEventHandlerKt.class); - MinecraftForge.EVENT_BUS.register(MatteryPlayerCapability.Companion); - MinecraftForge.EVENT_BUS.register(MatterRegistryKt.class); - MinecraftForge.EVENT_BUS.register(MatterDataKt.class); - MinecraftForge.EVENT_BUS.register(ExplosionQueue.Companion); - MinecraftForge.EVENT_BUS.register(AbstractWeaponItem.Companion); - MinecraftForge.EVENT_BUS.addListener(QuantumBatteryItem.Companion::tick); - - FMLJavaModLoadingContext.get().getModEventBus().register(MatteryCapability.class); - - FMLJavaModLoadingContext.get().getModEventBus().register(MRecipes.class); - - MinecraftForge.EVENT_BUS.register(DrivePool.INSTANCE); - MinecraftForge.EVENT_BUS.register(PortableCondensationDriveItem.Companion); - - FMLJavaModLoadingContext.get().getModEventBus().addListener(MatteryPlayerCapability::registerEffects); + modBus.addListener(EventPriority.HIGHEST, this::setup); + modBus.addListener(EventPriority.NORMAL, this::setupClient); } private void setup(final FMLCommonSetupEvent event) { + EVENT_BUS.addListener(EventPriority.LOWEST, DrivePool.INSTANCE::onServerPostTick); + EVENT_BUS.addListener(EventPriority.HIGHEST, DrivePool.INSTANCE::serverStopEvent); + EVENT_BUS.addListener(EventPriority.HIGHEST, DrivePool.INSTANCE::serverStartEvent); + EVENT_BUS.addListener(EventPriority.NORMAL, DrivePool.INSTANCE::onWorldSave); + + EVENT_BUS.addListener(EventPriority.HIGHEST, GlobalEventHandlerKt::onServerStopped); + EVENT_BUS.addListener(EventPriority.HIGHEST, GlobalEventHandlerKt::onServerStopping); + EVENT_BUS.addListener(EventPriority.HIGHEST, GlobalEventHandlerKt::onServerStarting); + EVENT_BUS.addListener(EventPriority.LOWEST, GlobalEventHandlerKt::onWorldTick); + EVENT_BUS.addListener(EventPriority.LOWEST, GlobalEventHandlerKt::onServerTick); + + EVENT_BUS.addListener(EventPriority.NORMAL, MatteryPlayerCapability.Companion::onLivingTick); + EVENT_BUS.addListener(EventPriority.NORMAL, MatteryPlayerCapability.Companion::onHurtEvent); + EVENT_BUS.addGenericListener(Entity.class, EventPriority.NORMAL, MatteryPlayerCapability.Companion::onAttachCapabilityEvent); + EVENT_BUS.addListener(EventPriority.NORMAL, MatteryPlayerCapability.Companion::onPlayerChangeDimensionEvent); + EVENT_BUS.addListener(EventPriority.LOWEST, MatteryPlayerCapability.Companion::onPlayerDeath); + EVENT_BUS.addListener(EventPriority.NORMAL, MatteryPlayerCapability.Companion::onPlayerCloneEvent); + EVENT_BUS.addListener(EventPriority.LOW, MatteryPlayerCapability.Companion::onPickupEvent); + + EVENT_BUS.addListener(EventPriority.LOW, MatterDataKt::serverStartData); + EVENT_BUS.addListener(EventPriority.NORMAL, MatterRegistryKt::onPlayerJoin); + EVENT_BUS.addListener(EventPriority.NORMAL, ExplosionQueue.Companion::onWorldTick); + EVENT_BUS.addListener(EventPriority.NORMAL, AbstractWeaponItem.Companion::tick); + EVENT_BUS.addListener(EventPriority.NORMAL, QuantumBatteryItem.Companion::tick); + EVENT_BUS.addListener(EventPriority.LOWEST, PortableCondensationDriveItem.Companion::onPickupEvent); + + MatteryPlayerCapability.Companion.registerEffects(event); + MatteryPlayerNetworkChannel.INSTANCE.register(); MenuNetworkChannel.INSTANCE.register(); WeaponNetworkChannel.INSTANCE.register(); @@ -112,16 +127,31 @@ public final class OverdriveThatMatters { ITEM_STORAGE = StorageRegistry.register(ItemStackWrapper.class, ItemStackWrapper.EMPTY, new ImpreciseFraction("3.125")); if (ModList.get().isLoaded("mekanism")) { - MinecraftForge.EVENT_BUS.register(QIOKt.class); - MinecraftForge.EVENT_BUS.register(TooltipsKt.class); + EVENT_BUS.addGenericListener(BlockEntity.class, EventPriority.NORMAL, QIOKt::attachCapabilities); } OreGen.INSTANCE.register(); } private void setupClient(final FMLClientSetupEvent event) { - MinecraftForge.EVENT_BUS.register(MatteryGUI.INSTANCE); - MinecraftForge.EVENT_BUS.register(EventHandlerKt.class); + EVENT_BUS.addListener(EventPriority.NORMAL, MatterRegistryKt::tooltipEvent); + + EVENT_BUS.addListener(EventPriority.NORMAL, AbstractWeaponItem.Companion::playerRenderHook); + EVENT_BUS.addListener(EventPriority.NORMAL, AbstractWeaponItem.Companion::fovHook); + EVENT_BUS.addListener(EventPriority.NORMAL, AbstractWeaponItem.Companion::clickHook); + EVENT_BUS.addListener(EventPriority.NORMAL, AbstractWeaponItem.Companion::renderViewModel); + + EVENT_BUS.addListener(EventPriority.NORMAL, MatteryGUI.INSTANCE::onScreenRender); + EVENT_BUS.addListener(EventPriority.LOWEST, MatteryGUI.INSTANCE::onOpenGUIEvent); + EVENT_BUS.addListener(EventPriority.NORMAL, MatteryGUI.INSTANCE::onRenderGuiEvent); + EVENT_BUS.addListener(EventPriority.HIGH, MatteryGUI.INSTANCE::onLayerRenderEvent); + + EVENT_BUS.addListener(EventPriority.NORMAL, ClientEventHandler.INSTANCE::inputEvent); + EVENT_BUS.addListener(EventPriority.NORMAL, ClientEventHandler.INSTANCE::screenOpen); + + if (ModList.get().isLoaded("mekanism")) { + EVENT_BUS.addListener(EventPriority.NORMAL, TooltipsKt::tooltipEvent); + } event.enqueueWork(GlobalEventHandlerKt::recordClientThread); diff --git a/src/main/java/ru/dbotthepony/mc/otm/capability/MatteryCapability.java b/src/main/java/ru/dbotthepony/mc/otm/capability/MatteryCapability.java index 50c423a7b..0d0741da5 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/capability/MatteryCapability.java +++ b/src/main/java/ru/dbotthepony/mc/otm/capability/MatteryCapability.java @@ -49,16 +49,4 @@ public class MatteryCapability { @Nonnull @NotNull public static final Capability MEKANISM_ENERGY = CapabilityManager.get(new CapabilityToken<>() {}); - - @SuppressWarnings("unused") - public static void register(final RegisterCapabilitiesEvent event) { - event.register(IMatteryEnergyStorage.class); - event.register(MatteryPlayerCapability.class); - event.register(IMatterHandler.class); - event.register(IPatternStorage.class); - event.register(IReplicationTaskProvider.class); - event.register(IMatteryDrive.class); - event.register(IStorageGraphNode.class); - event.register(IMatterGraphNode.class); - } } diff --git a/src/main/java/ru/dbotthepony/mc/otm/registry/MRecipes.java b/src/main/java/ru/dbotthepony/mc/otm/registry/MRecipes.java index 7c7b9b2c4..d90b6b9ad 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/registry/MRecipes.java +++ b/src/main/java/ru/dbotthepony/mc/otm/registry/MRecipes.java @@ -4,6 +4,7 @@ import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.crafting.Recipe; import net.minecraft.world.item.crafting.RecipeSerializer; import net.minecraft.world.item.crafting.RecipeType; +import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; @@ -35,8 +36,8 @@ public class MRecipes { typesRegistry.register(MNames.PLATE_PRESS, () -> PLATE_PRESS); } - public static void register() { - registry.register(FMLJavaModLoadingContext.get().getModEventBus()); - typesRegistry.register(FMLJavaModLoadingContext.get().getModEventBus()); + public static void register(IEventBus bus) { + registry.register(bus); + typesRegistry.register(bus); } } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/GlobalEventHandler.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/GlobalEventHandler.kt index b61ca6dee..284cc4c67 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/GlobalEventHandler.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/GlobalEventHandler.kt @@ -180,7 +180,6 @@ interface IConditionalTickable : ITickable { val canTick: Boolean } -@SubscribeEvent(priority = EventPriority.LOWEST) fun onServerTick(event: ServerTickEvent) { if (event.phase === TickEvent.Phase.START) { preServerTickTimers.tick() @@ -255,7 +254,6 @@ fun addPostServerTickerOnce(ticker: ITickable) { postServerTickOnce.add(ticker) } -@SubscribeEvent(priority = EventPriority.LOWEST) fun onWorldTick(event: LevelTickEvent) { if (event.phase === TickEvent.Phase.START) { val it = preWorldTick[event.level] @@ -355,7 +353,6 @@ private fun clear() { postWorldTickOnce.clear() } -@SubscribeEvent(priority = EventPriority.HIGHEST) fun onServerStarting(event: ServerAboutToStartEvent) { clear() SERVER_IS_DYING = false @@ -363,13 +360,11 @@ fun onServerStarting(event: ServerAboutToStartEvent) { _serverThread = Thread.currentThread() } -@SubscribeEvent(priority = EventPriority.HIGHEST) fun onServerStopping(event: ServerStoppingEvent) { clear() SERVER_IS_DYING = true } -@SubscribeEvent(priority = EventPriority.HIGHEST) fun onServerStopped(event: ServerStoppedEvent) { if (!SERVER_IS_DYING) { LOGGER.fatal("ServerStoppingEvent did not fire. If server has crashed this is normal. However, if server finished it's work 'gracefully' this is a bug.") diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/capability/MatteryPlayerCapability.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/capability/MatteryPlayerCapability.kt index 3d13c0e1e..187635978 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/capability/MatteryPlayerCapability.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/capability/MatteryPlayerCapability.kt @@ -765,10 +765,8 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, IMatteryEn @Suppress("unused") companion object { - @JvmField val UNAFFECTED_EFFECTS = ObjectArraySet() - @JvmStatic fun registerEffects(event: FMLCommonSetupEvent) { UNAFFECTED_EFFECTS.add(MobEffects.CONDUIT_POWER) UNAFFECTED_EFFECTS.add(MobEffects.HEAL) @@ -785,7 +783,6 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, IMatteryEn UNAFFECTED_EFFECTS.add(MobEffects.DOLPHINS_GRACE) } - @SubscribeEvent fun onLivingTick(event: LivingTickEvent) { val ent = event.entity @@ -800,7 +797,6 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, IMatteryEn } } - @SubscribeEvent(priority = EventPriority.LOWEST) fun onHurtEvent(event: LivingHurtEvent) { if (event.isCanceled) { return @@ -812,8 +808,7 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, IMatteryEn const val CAPABILITY_KEY = "otm_player" val CAPABILITY_LOCATION = ResourceLocation(OverdriveThatMatters.MOD_ID, CAPABILITY_KEY) - @SubscribeEvent - fun onAttachCapabilityEvent(event: AttachCapabilitiesEvent) { + fun onAttachCapabilityEvent(event: AttachCapabilitiesEvent) { val ent = event.`object` if (ent is Player) { @@ -821,18 +816,12 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, IMatteryEn } } - @SubscribeEvent fun onPlayerChangeDimensionEvent(event: PlayerEvent.PlayerChangedDimensionEvent) { event.entity.getCapability(MatteryCapability.MATTERY_PLAYER) .ifPresentK { it.invalidateNetworkState() } } - @SubscribeEvent(priority = EventPriority.LOWEST) fun onPlayerDeath(event: LivingDeathEvent) { - if (event.isCanceled) { - return - } - val ply = event.entity as? Player ?: return val mattery = ply.matteryPlayer ?: return @@ -859,7 +848,6 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, IMatteryEn } } - @SubscribeEvent fun onPlayerCloneEvent(event: PlayerEvent.Clone) { val it = event.entity.matteryPlayer ?: return @@ -892,7 +880,6 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, IMatteryEn private val itemPickupTicks = WeakHashMap>() - @SubscribeEvent(priority = EventPriority.LOW) fun onPickupEvent(event: EntityItemPickupEvent) { if (event.item.owner != null && event.item.owner != event.entity.uuid && event.item.age < 200 || event.item.item.isEmpty) { return diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/capability/drive/DrivePool.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/capability/drive/DrivePool.kt index 8f2912ad9..33180d029 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/capability/drive/DrivePool.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/capability/drive/DrivePool.kt @@ -36,7 +36,6 @@ import java.util.ArrayList * 5. Mods which check items for being stack-able even with stack size of 1 gonna compare nbt tag, * which will be performance tanking due to clause 1. */ -@Suppress("unused") object DrivePool { private val LOGGER = LogManager.getLogger() private val pool = Object2ObjectAVLTreeMap() @@ -130,7 +129,6 @@ object DrivePool { } } - @SubscribeEvent(priority = EventPriority.LOWEST) fun onServerPostTick(event: ServerTickEvent) { if (event.phase == TickEvent.Phase.END) { if (exception != null) { @@ -152,7 +150,6 @@ object DrivePool { return Thread.currentThread() === serverThread } - @SubscribeEvent(priority = EventPriority.HIGHEST) fun serverStartEvent(event: ServerAboutToStartEvent) { if (thread?.isAlive == true) { LOGGER.error("FMLServerStartedEvent fired twice.") @@ -172,7 +169,6 @@ object DrivePool { thread = Thread(null, this::thread, "Overdrive That Matters DrivePool IO").also { it.start() } } - @SubscribeEvent(priority = EventPriority.HIGHEST) fun serverStopEvent(event: ServerStoppingEvent) { val thread = thread @@ -189,7 +185,6 @@ object DrivePool { pool.clear() } - @SubscribeEvent fun onWorldSave(event: LevelEvent.Save) { writeBacklog() } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/ClientEventHandler.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/ClientEventHandler.kt new file mode 100644 index 000000000..1f6a6943f --- /dev/null +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/ClientEventHandler.kt @@ -0,0 +1,53 @@ +package ru.dbotthepony.mc.otm.client + +import net.minecraft.client.gui.screens.inventory.InventoryScreen +import net.minecraftforge.client.event.MovementInputUpdateEvent +import net.minecraftforge.client.event.ScreenEvent +import ru.dbotthepony.mc.otm.capability.matteryPlayer +import ru.dbotthepony.mc.otm.client.screen.ExoSuitInventoryScreen +import ru.dbotthepony.mc.otm.registry.AndroidFeatures + +object ClientEventHandler { + fun inputEvent(event: MovementInputUpdateEvent) { + val ply = event.entity + val input = event.input + + val cap = ply.matteryPlayer ?: return + + if (cap.hasFeature(AndroidFeatures.AIR_BAGS)) + return + + if (ply.abilities.mayfly) { + cap.lastJumpTicks = 14 + } else { + if (ply.isInWater) { + if (ply.isOnGround) { + cap.lastJumpTicks = 14 + } + + if (ply.isSwimming) { + ply.isSwimming = false + } + + if (cap.lastJumpTicks <= 0) { + input.jumping = false + input.up = false + } else { + cap.lastJumpTicks-- + } + } + } + } + + fun screenOpen(event: ScreenEvent.Opening) { + if (minecraft.player?.isCreative == true) { + return + } + + val player = minecraft.player?.matteryPlayer ?: return + + if (player.hasExoSuit && event.newScreen is InventoryScreen) { + event.newScreen = ExoSuitInventoryScreen(player.exoSuitMenu) + } + } +} diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/EventHandler.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/EventHandler.kt deleted file mode 100644 index 8f52e8aa7..000000000 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/EventHandler.kt +++ /dev/null @@ -1,56 +0,0 @@ -package ru.dbotthepony.mc.otm.client - -import net.minecraft.client.gui.screens.inventory.InventoryScreen -import net.minecraftforge.client.event.MovementInputUpdateEvent -import net.minecraftforge.client.event.ScreenEvent -import net.minecraftforge.eventbus.api.SubscribeEvent -import ru.dbotthepony.mc.otm.capability.matteryPlayer -import ru.dbotthepony.mc.otm.client.screen.ExoSuitInventoryScreen -import ru.dbotthepony.mc.otm.registry.AndroidFeatures - -@SubscribeEvent -@Suppress("unused") -fun inputEvent(event: MovementInputUpdateEvent) { - val ply = event.entity - val input = event.input - - val cap = ply.matteryPlayer ?: return - - if (cap.hasFeature(AndroidFeatures.AIR_BAGS)) - return - - if (ply.abilities.mayfly) { - cap.lastJumpTicks = 14 - } else { - if (ply.isInWater) { - if (ply.isOnGround) { - cap.lastJumpTicks = 14 - } - - if (ply.isSwimming) { - ply.isSwimming = false - } - - if (cap.lastJumpTicks <= 0) { - input.jumping = false - input.up = false - } else { - cap.lastJumpTicks-- - } - } - } -} - -@SubscribeEvent -@Suppress("unused") -fun screenOpen(event: ScreenEvent.Opening) { - if (minecraft.player?.isCreative == true) { - return - } - - val player = minecraft.player?.matteryPlayer ?: return - - if (player.hasExoSuit && event.newScreen is InventoryScreen) { - event.newScreen = ExoSuitInventoryScreen(player.exoSuitMenu) - } -} diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/MatteryGUI.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/MatteryGUI.kt index d8080072d..00c3dad64 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/MatteryGUI.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/MatteryGUI.kt @@ -39,8 +39,6 @@ object MatteryGUI { private val button_shaker = Random() - @SubscribeEvent - @Suppress("unused") fun onScreenRender(event: ScreenEvent.Render.Pre) { if (knownButtonScreen != null && knownButton == null) { for (widget in knownButtonScreen!!.renderables) { @@ -87,8 +85,6 @@ object MatteryGUI { } } - @SubscribeEvent(priority = EventPriority.LOWEST) - @Suppress("unused") fun onOpenGUIEvent(event: ScreenEvent.Opening) { knownButtonX = -1 knownButtonY = -1 @@ -198,14 +194,10 @@ object MatteryGUI { popScissorRect() } - @SubscribeEvent - @Suppress("unused") fun onRenderGuiEvent(event: RenderGuiEvent.Post) { showIteration(event) } - @SubscribeEvent(priority = EventPriority.HIGH) - @Suppress("unused") fun onLayerRenderEvent(event: RenderGuiOverlayEvent.Pre) { if (event.overlay != FOOD_LEVEL_ELEMENT && event.overlay != AIR_LEVEL_ELEMENT) { return diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/compat/mekanism/Tooltips.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/compat/mekanism/Tooltips.kt index d4558d04a..41bb89455 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/compat/mekanism/Tooltips.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/compat/mekanism/Tooltips.kt @@ -9,8 +9,6 @@ import ru.dbotthepony.mc.otm.capability.isMekanismLoaded private val BLACKHOLE_IMMUNITY = TranslatableComponent("otm.item.blackhole_immunity").withStyle(ChatFormatting.DARK_GRAY) -@SubscribeEvent -@Suppress("unused") fun tooltipEvent(event: ItemTooltipEvent) { if (!isMekanismLoaded) { throw IllegalStateException("Mekanism is not loaded!") diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/item/PortableCondensationDriveItem.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/item/PortableCondensationDriveItem.kt index fedb6b256..ac493a33c 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/item/PortableCondensationDriveItem.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/item/PortableCondensationDriveItem.kt @@ -100,7 +100,6 @@ class PortableCondensationDriveItem(capacity: Int) : const val MAX_FILTERS = 4 * 3 const val FILTER_PATH = "filter" - @SubscribeEvent(priority = EventPriority.LOWEST) fun onPickupEvent(event: EntityItemPickupEvent) { if (event.item.owner != null && event.item.owner != event.entity.uuid && event.item.age < 200 || event.item.item.isEmpty) { return diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/item/weapon/AbstractWeaponItem.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/item/weapon/AbstractWeaponItem.kt index 79f86ac39..d380a0c8a 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/item/weapon/AbstractWeaponItem.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/item/weapon/AbstractWeaponItem.kt @@ -18,7 +18,6 @@ import net.minecraftforge.client.event.RenderHandEvent import net.minecraftforge.client.event.RenderPlayerEvent import net.minecraftforge.client.event.ViewportEvent import net.minecraftforge.event.TickEvent -import net.minecraftforge.eventbus.api.SubscribeEvent import net.minecraftforge.fml.LogicalSide import net.minecraftforge.network.NetworkEvent import ru.dbotthepony.mc.otm.* @@ -276,8 +275,6 @@ abstract class AbstractWeaponItem(val tables: KClass, ra private var lastFov = 1.0 private var lastFovTime = 0L - @SubscribeEvent - @Suppress("unused") fun fovHook(event: ViewportEvent.ComputeFov) { val player = event.camera.entity as? Player ?: return @@ -309,8 +306,6 @@ abstract class AbstractWeaponItem(val tables: KClass, ra } } - @SubscribeEvent - @Suppress("unused") fun playerRenderHook(event: RenderPlayerEvent.Pre) { if (event.entity.mainHandItem.item is AbstractWeaponItem<*> && event.entity.offhandItem.isEmpty) { event.renderer.model.rightArmPose = HumanoidModel.ArmPose.BOW_AND_ARROW @@ -318,8 +313,6 @@ abstract class AbstractWeaponItem(val tables: KClass, ra } } - @SubscribeEvent - @Suppress("unused") fun clickHook(event: InputEvent.InteractionKeyMappingTriggered) { val player = Minecraft.getInstance().player!! @@ -352,8 +345,7 @@ abstract class AbstractWeaponItem(val tables: KClass, ra 0.6, ) - @SubscribeEvent - @Suppress("unused", "unchecked_cast") + @Suppress("unchecked_cast") fun renderViewModel(event: RenderHandEvent) { if (inRender) { return @@ -523,8 +515,7 @@ abstract class AbstractWeaponItem(val tables: KClass, ra } } - @SubscribeEvent - @Suppress("unused", "unchecked_cast") + @Suppress("unchecked_cast") fun tick(event: TickEvent.PlayerTickEvent) { if (event.phase != TickEvent.Phase.START) return diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/matter/MatterData.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/matter/MatterData.kt index decea93ad..1ca801528 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/matter/MatterData.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/matter/MatterData.kt @@ -143,8 +143,6 @@ private enum class ResultType { private data class Result(val type: ResultType = ResultType.UNKNOWN_VALUE, val tuple: MatterTuple? = null) -@SubscribeEvent -@Suppress("unused") fun serverStartData(event: ServerStartedEvent) { rootEntriesAccess.clear() derivedEntriesAccess.clear() diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/matter/MatterRegistry.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/matter/MatterRegistry.kt index bd5b1915c..7f818cad2 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/matter/MatterRegistry.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/matter/MatterRegistry.kt @@ -9,7 +9,6 @@ import net.minecraft.world.item.Item import net.minecraft.world.item.ItemStack import net.minecraftforge.event.entity.player.ItemTooltipEvent import net.minecraftforge.event.entity.player.PlayerEvent -import net.minecraftforge.eventbus.api.SubscribeEvent import net.minecraftforge.network.NetworkEvent import net.minecraftforge.network.PacketDistributor import org.lwjgl.glfw.GLFW @@ -213,8 +212,6 @@ fun getMatterValue(stack: ItemStack): MatterTuple { return getMatterValue(stack, 0) } -@SubscribeEvent -@Suppress("unused") fun onPlayerJoin(event: PlayerEvent.PlayerLoggedInEvent) { if (NULLABLE_MINECRAFT_SERVER != null) { RegistryNetworkChannel.send(PacketDistributor.PLAYER.with { event.entity as ServerPlayer }, RegistryPacketFullUpdate(MatterRegistryType.ROOT, rootEntries)) @@ -222,8 +219,6 @@ fun onPlayerJoin(event: PlayerEvent.PlayerLoggedInEvent) { } } -@SubscribeEvent -@Suppress("unused") fun tooltipEvent(event: ItemTooltipEvent) { val window = Minecraft.getInstance().window.window diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/AndroidFeatures.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/AndroidFeatures.kt index 527ec51b7..29a71af58 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/AndroidFeatures.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/AndroidFeatures.kt @@ -1,5 +1,6 @@ package ru.dbotthepony.mc.otm.registry +import net.minecraftforge.eventbus.api.IEventBus import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext import net.minecraftforge.registries.DeferredRegister import ru.dbotthepony.mc.otm.OverdriveThatMatters @@ -18,7 +19,7 @@ object AndroidFeatures { val NANOBOTS_ARMOR: AndroidFeatureType<*> by registry.register(MNames.NANOBOTS_ARMOR) { AndroidFeatureType(::NanobotsArmor) } val EXTENDED_REACH: AndroidFeatureType<*> by registry.register(MNames.EXTENDED_REACH) { AndroidFeatureType(::ExtendedReach) } - internal fun register() { - registry.register(FMLJavaModLoadingContext.get().modEventBus) + internal fun register(bus: IEventBus) { + registry.register(bus) } } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/AndroidResearch.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/AndroidResearch.kt index 96a1978a1..76e65a39c 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/AndroidResearch.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/AndroidResearch.kt @@ -4,6 +4,7 @@ package ru.dbotthepony.mc.otm.registry import net.minecraft.resources.ResourceLocation +import net.minecraftforge.eventbus.api.IEventBus import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext import net.minecraftforge.registries.DeferredRegister import net.minecraftforge.registries.RegistryObject @@ -76,8 +77,8 @@ object AndroidResearch { private val registry = DeferredRegister.create(MRegistry.ANDROID_RESEARCH_KEY, OverdriveThatMatters.MOD_ID) - internal fun register() { - registry.register(FMLJavaModLoadingContext.get().modEventBus) + internal fun register(bus: IEventBus) { + registry.register(bus) } val AIR_BAGS: AndroidResearchType<*> by registry.register(MNames.AIR_BAGS) { diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/LootModifiers.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/LootModifiers.kt index 00ab863da..e85211d21 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/LootModifiers.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/LootModifiers.kt @@ -1,5 +1,6 @@ package ru.dbotthepony.mc.otm.registry +import net.minecraftforge.eventbus.api.IEventBus import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext import net.minecraftforge.registries.DeferredRegister import net.minecraftforge.registries.ForgeRegistries @@ -15,7 +16,7 @@ object LootModifiers { registry.register("loot_appender_basic") { LootTableBasicAppender.CODEC } } - internal fun register() { - registry.register(FMLJavaModLoadingContext.get().modEventBus) + internal fun register(bus: IEventBus) { + registry.register(bus) } } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MBlockEntities.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MBlockEntities.kt index 670b8fb52..f3f4f181a 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MBlockEntities.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MBlockEntities.kt @@ -2,6 +2,7 @@ package ru.dbotthepony.mc.otm.registry import net.minecraft.client.renderer.blockentity.BlockEntityRenderers import net.minecraft.world.level.block.entity.BlockEntityType +import net.minecraftforge.eventbus.api.IEventBus import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext import net.minecraftforge.registries.DeferredRegister @@ -53,9 +54,9 @@ object MBlockEntities { val DEBUG_EXPLOSION_SMALL: BlockEntityType<*> by registry.register(MNames.DEBUG_EXPLOSION_SMALL) { BlockEntityType.Builder.of(::BlockEntityExplosionDebugger, MBlocks.DEBUG_EXPLOSION_SMALL).build(null) } val DEBUG_SPHERE_POINTS: BlockEntityType<*> by registry.register(MNames.DEBUG_SPHERE_POINTS) { BlockEntityType.Builder.of(::BlockEntitySphereDebugger, MBlocks.DEBUG_SPHERE_POINTS).build(null) } - internal fun register() { - registry.register(FMLJavaModLoadingContext.get().modEventBus) - FMLJavaModLoadingContext.get().modEventBus.addListener(this::registerClient) + internal fun register(bus: IEventBus) { + registry.register(bus) + bus.addListener(this::registerClient) } @Suppress("unchecked_cast") diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MBlocks.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MBlocks.kt index 95529bee6..09a9eb87a 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MBlocks.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MBlocks.kt @@ -11,6 +11,7 @@ import net.minecraft.world.level.block.SoundType import net.minecraft.world.level.block.state.BlockBehaviour import net.minecraft.world.level.material.Material import net.minecraft.world.level.material.MaterialColor +import net.minecraftforge.eventbus.api.IEventBus import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext import net.minecraftforge.registries.DeferredRegister @@ -24,9 +25,9 @@ import ru.dbotthepony.mc.otm.block.storage.* object MBlocks { private val registry = DeferredRegister.create(ForgeRegistries.BLOCKS, OverdriveThatMatters.MOD_ID) - internal fun register() { - registry.register(FMLJavaModLoadingContext.get().modEventBus) - FMLJavaModLoadingContext.get().modEventBus.addListener(this::registerClient) + internal fun register(bus: IEventBus) { + registry.register(bus) + bus.addListener(this::registerClient) } private fun registerClient(event: FMLClientSetupEvent) { diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MEntityTypes.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MEntityTypes.kt index 97cfcfc29..1ca2dd606 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MEntityTypes.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MEntityTypes.kt @@ -5,6 +5,7 @@ import net.minecraft.client.renderer.entity.EntityRenderers import net.minecraft.world.entity.Entity import net.minecraft.world.entity.EntityType import net.minecraft.world.entity.MobCategory +import net.minecraftforge.eventbus.api.IEventBus import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext import net.minecraftforge.registries.DeferredRegister @@ -20,9 +21,9 @@ object MEntityTypes { EntityType.Builder.of({ _, level -> PlasmaProjectile(level) }, MobCategory.MISC).sized(0.4f, 0.4f).build(MNames.PLASMA) } - internal fun register() { - registry.register(FMLJavaModLoadingContext.get().modEventBus) - FMLJavaModLoadingContext.get().modEventBus.addListener(this::registerClient) + internal fun register(bus: IEventBus) { + registry.register(bus) + bus.addListener(this::registerClient) } @Suppress("unchecked_cast") diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MItems.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MItems.kt index d2dcdd00b..90e089cc3 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MItems.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MItems.kt @@ -10,6 +10,7 @@ import net.minecraft.world.item.* import net.minecraft.world.item.crafting.Ingredient import net.minecraft.world.level.Level import net.minecraftforge.common.ForgeTier +import net.minecraftforge.eventbus.api.IEventBus import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext import net.minecraftforge.registries.DeferredRegister import net.minecraftforge.registries.ForgeRegistries @@ -24,8 +25,8 @@ object MItems { private val DEFAULT_PROPERTIES_DECORATIVE = Item.Properties().stacksTo(64).tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB_DECORATIVE) private val registry: DeferredRegister = DeferredRegister.create(ForgeRegistries.ITEMS, OverdriveThatMatters.MOD_ID) - internal fun register() { - registry.register(FMLJavaModLoadingContext.get().modEventBus) + internal fun register(bus: IEventBus) { + registry.register(bus) } val ANDROID_STATION: Item by registry.register(MNames.ANDROID_STATION) { BlockItem(MBlocks.ANDROID_STATION, DEFAULT_PROPERTIES) } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MMenus.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MMenus.kt index b852df79f..b038b5aa9 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MMenus.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MMenus.kt @@ -2,6 +2,7 @@ package ru.dbotthepony.mc.otm.registry import net.minecraft.client.gui.screens.MenuScreens import net.minecraft.world.inventory.MenuType +import net.minecraftforge.eventbus.api.IEventBus import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext import net.minecraftforge.registries.DeferredRegister @@ -36,9 +37,9 @@ object MMenus { val STORAGE_IMPORTER: MenuType<*> by registry.register(MNames.STORAGE_IMPORTER) { MenuType(::StorageImporterMenu) } val STORAGE_POWER_SUPPLIER: MenuType<*> by registry.register(MNames.STORAGE_POWER_SUPPLIER) { MenuType(::StoragePowerSupplierMenu) } - internal fun register() { - registry.register(FMLJavaModLoadingContext.get().modEventBus) - FMLJavaModLoadingContext.get().modEventBus.addListener(this::registerClient) + internal fun register(bus: IEventBus) { + registry.register(bus) + bus.addListener(this::registerClient) } @Suppress("unchecked_cast") diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MRegistry.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MRegistry.kt index 17a92fe66..c0bc0eeb2 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MRegistry.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MRegistry.kt @@ -15,6 +15,7 @@ import net.minecraft.world.level.block.state.BlockBehaviour import net.minecraft.world.level.block.state.BlockState import net.minecraft.world.level.material.Material import net.minecraft.world.level.material.MaterialColor +import net.minecraftforge.eventbus.api.IEventBus import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext import net.minecraftforge.registries.ForgeRegistry import net.minecraftforge.registries.IForgeRegistry @@ -205,21 +206,20 @@ object MRegistry { .strength(4f)) }) - fun initialize(context: FMLJavaModLoadingContext) { - context.modEventBus.addListener(this::register) - context.modEventBus.register(MStats) - context.modEventBus.register(LootModifiers) + fun initialize(bus: IEventBus) { + bus.addListener(this::register) + bus.addListener(MStats::registerVanilla) - MBlocks.register() - MBlockEntities.register() - MEntityTypes.register() - MMenus.register() - MItems.register() - AndroidFeatures.register() - AndroidResearch.register() - MSoundEvents.register() - LootModifiers.register() + MBlocks.register(bus) + MBlockEntities.register(bus) + MEntityTypes.register(bus) + MMenus.register(bus) + MItems.register(bus) + AndroidFeatures.register(bus) + AndroidResearch.register(bus) + MSoundEvents.register(bus) + LootModifiers.register(bus) - MRecipes.register() + MRecipes.register(bus) } } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MSoundEvents.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MSoundEvents.kt index 7e38ffe3a..d7e3a0c21 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MSoundEvents.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MSoundEvents.kt @@ -4,6 +4,7 @@ import net.minecraft.resources.ResourceLocation import net.minecraft.sounds.SoundEvent import net.minecraft.sounds.SoundEvents import net.minecraft.world.entity.EntityType +import net.minecraftforge.eventbus.api.IEventBus import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext import net.minecraftforge.registries.DeferredRegister import net.minecraftforge.registries.ForgeRegistries @@ -18,7 +19,7 @@ object MSoundEvents { val PLASMA_WEAPON_OVERHEAT: SoundEvent by make("item.plasma_weapon_overheat") val PLAYER_BECOME_ANDROID: SoundEvent by make("player_become_android") - internal fun register() { - registry.register(FMLJavaModLoadingContext.get().modEventBus) + internal fun register(bus: IEventBus) { + registry.register(bus) } } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MStats.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MStats.kt index 963e2e17d..dffa75140 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MStats.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MStats.kt @@ -10,8 +10,6 @@ import ru.dbotthepony.mc.otm.registry.StatNames.HEALTH_REGENERATED import ru.dbotthepony.mc.otm.registry.StatNames.POWER_CONSUMED object MStats { - @SubscribeEvent - @Suppress("unused") fun registerVanilla(event: FMLCommonSetupEvent) { event.enqueueWork { Registry.register(Registry.CUSTOM_STAT, DAMAGE_ABSORBED, DAMAGE_ABSORBED)