From e1cff1567b2ef0cbc776b157f7196a956eae90d7 Mon Sep 17 00:00:00 2001 From: Max Date: Thu, 18 Mar 2021 15:49:03 +0100 Subject: [PATCH] More annotation event migration --- .../forge/ClientNetworkingManager.java | 10 ++++- .../networking/forge/NetworkManagerImpl.java | 17 ++++++-- .../forge/BiomeModificationsImpl.java | 42 ++++++++++--------- 3 files changed, 44 insertions(+), 25 deletions(-) diff --git a/forge/src/main/java/me/shedaniel/architectury/networking/forge/ClientNetworkingManager.java b/forge/src/main/java/me/shedaniel/architectury/networking/forge/ClientNetworkingManager.java index a167beb5..e7ce2d31 100644 --- a/forge/src/main/java/me/shedaniel/architectury/networking/forge/ClientNetworkingManager.java +++ b/forge/src/main/java/me/shedaniel/architectury/networking/forge/ClientNetworkingManager.java @@ -27,6 +27,7 @@ import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.client.event.ClientPlayerNetworkEvent; import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.network.NetworkEvent; import java.util.Set; @@ -38,7 +39,7 @@ import static me.shedaniel.architectury.networking.forge.NetworkManagerImpl.SYNC public class ClientNetworkingManager { public static void initClient() { NetworkManagerImpl.CHANNEL.addListener(NetworkManagerImpl.createPacketHandler(NetworkEvent.ServerCustomPayloadEvent.class, NetworkManagerImpl.S2C)); - MinecraftForge.EVENT_BUS.addListener(event -> NetworkManagerImpl.serverReceivables.clear()); + MinecraftForge.EVENT_BUS.register(ClientNetworkingManager.class); NetworkManagerImpl.registerS2CReceiver(SYNC_IDS, (buffer, context) -> { Set receivables = NetworkManagerImpl.serverReceivables; @@ -54,4 +55,9 @@ public class ClientNetworkingManager { public static Player getClientPlayer() { return Minecraft.getInstance().player; } -} \ No newline at end of file + + @SubscribeEvent + public static void loggedOut(ClientPlayerNetworkEvent.LoggedOutEvent event) { + NetworkManagerImpl.serverReceivables.clear(); + } +} diff --git a/forge/src/main/java/me/shedaniel/architectury/networking/forge/NetworkManagerImpl.java b/forge/src/main/java/me/shedaniel/architectury/networking/forge/NetworkManagerImpl.java index b04c85db..54fe4ea8 100644 --- a/forge/src/main/java/me/shedaniel/architectury/networking/forge/NetworkManagerImpl.java +++ b/forge/src/main/java/me/shedaniel/architectury/networking/forge/NetworkManagerImpl.java @@ -22,6 +22,7 @@ package me.shedaniel.architectury.networking.forge; import com.google.common.collect.*; import io.netty.buffer.Unpooled; +import me.shedaniel.architectury.forge.ArchitecturyForge; import me.shedaniel.architectury.networking.NetworkManager; import me.shedaniel.architectury.networking.NetworkManager.NetworkReceiver; import me.shedaniel.architectury.utils.Env; @@ -34,8 +35,10 @@ import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.entity.player.PlayerEvent; +import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.DistExecutor; import net.minecraftforge.fml.LogicalSide; +import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.network.NetworkDirection; import net.minecraftforge.fml.network.NetworkEvent; import net.minecraftforge.fml.network.NetworkRegistry; @@ -49,6 +52,7 @@ import java.util.Map; import java.util.Set; import java.util.function.Consumer; +@Mod.EventBusSubscriber(modid = ArchitecturyForge.MOD_ID) public class NetworkManagerImpl { public static void registerReceiver(NetworkManager.Side side, ResourceLocation id, NetworkReceiver receiver) { if (side == NetworkManager.Side.C2S) { @@ -79,9 +83,6 @@ public class NetworkManagerImpl { DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> ClientNetworkingManager::initClient); - MinecraftForge.EVENT_BUS.addListener(event -> NetworkManager.sendToPlayer((ServerPlayer) event.getPlayer(), SYNC_IDS, sendSyncPacket(C2S))); - MinecraftForge.EVENT_BUS.addListener(event -> clientReceivables.removeAll(event.getPlayer())); - registerC2SReceiver(SYNC_IDS, (buffer, context) -> { Set receivables = (Set) clientReceivables.get(context.getPlayer()); int size = buffer.readInt(); @@ -157,4 +158,14 @@ public class NetworkManagerImpl { } return packetBuffer; } + + @SubscribeEvent + public static void loggedIn(PlayerEvent.PlayerLoggedInEvent event) { + NetworkManager.sendToPlayer((ServerPlayer) event.getPlayer(), SYNC_IDS, sendSyncPacket(C2S)); + } + + @SubscribeEvent + public static void loggedOut(PlayerEvent.PlayerLoggedOutEvent event) { + clientReceivables.removeAll(event.getPlayer()); + } } diff --git a/forge/src/main/java/me/shedaniel/architectury/registry/forge/BiomeModificationsImpl.java b/forge/src/main/java/me/shedaniel/architectury/registry/forge/BiomeModificationsImpl.java index a5891b66..95c68bba 100644 --- a/forge/src/main/java/me/shedaniel/architectury/registry/forge/BiomeModificationsImpl.java +++ b/forge/src/main/java/me/shedaniel/architectury/registry/forge/BiomeModificationsImpl.java @@ -20,6 +20,7 @@ package me.shedaniel.architectury.registry.forge; import com.google.common.collect.Lists; +import me.shedaniel.architectury.forge.ArchitecturyForge; import me.shedaniel.architectury.hooks.biome.*; import me.shedaniel.architectury.mixin.forge.BiomeGenerationSettingsBuilderAccessor; import me.shedaniel.architectury.mixin.forge.MobSpawnSettingsBuilderAccessor; @@ -34,10 +35,11 @@ import net.minecraft.world.level.levelgen.carver.ConfiguredWorldCarver; import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; import net.minecraft.world.level.levelgen.feature.ConfiguredStructureFeature; import net.minecraft.world.level.levelgen.surfacebuilders.ConfiguredSurfaceBuilder; -import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.world.BiomeGenerationSettingsBuilder; import net.minecraftforge.common.world.MobSpawnInfoBuilder; import net.minecraftforge.event.world.BiomeLoadingEvent; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.common.Mod; import org.apache.commons.lang3.tuple.Pair; import org.jetbrains.annotations.NotNull; @@ -49,6 +51,7 @@ import java.util.function.BiPredicate; import java.util.function.Predicate; import java.util.function.Supplier; +@Mod.EventBusSubscriber(modid = ArchitecturyForge.MOD_ID) public class BiomeModificationsImpl { private static final List, BiConsumer>> MODIFICATIONS = Lists.newArrayList(); @@ -68,25 +71,6 @@ public class BiomeModificationsImpl { MODIFICATIONS.add(Pair.of(predicate, modifier)); } - static { - MinecraftForge.EVENT_BUS.addListener(event -> { - BiomeContext biomeContext = wrapSelectionContext(event); - BiomeProperties.Mutable mutableBiome = new MutableBiomeWrapped(event); - for (Pair, BiConsumer> pair : MODIFICATIONS) { - if (pair.getLeft().test(biomeContext)) { - pair.getRight().accept(biomeContext, mutableBiome); - } - } - MutableClimatePropertiesWrapped climateProperties = (MutableClimatePropertiesWrapped) mutableBiome.getClimateProperties(); - if (climateProperties.dirty) { - event.setClimate(new Biome.ClimateSettings(climateProperties.precipitation, - climateProperties.temperature, - climateProperties.temperatureModifier, - climateProperties.downfall)); - } - }); - } - private static BiomeContext wrapSelectionContext(BiomeLoadingEvent event) { return new BiomeContext() { BiomeProperties properties = new BiomeWrapped(event); @@ -446,4 +430,22 @@ public class BiomeModificationsImpl { return this; } } + + @SubscribeEvent + public static void onBiomeLoading(BiomeLoadingEvent event) { + BiomeContext biomeContext = wrapSelectionContext(event); + BiomeProperties.Mutable mutableBiome = new MutableBiomeWrapped(event); + for (Pair, BiConsumer> pair : MODIFICATIONS) { + if (pair.getLeft().test(biomeContext)) { + pair.getRight().accept(biomeContext, mutableBiome); + } + } + MutableClimatePropertiesWrapped climateProperties = (MutableClimatePropertiesWrapped) mutableBiome.getClimateProperties(); + if (climateProperties.dirty) { + event.setClimate(new Biome.ClimateSettings(climateProperties.precipitation, + climateProperties.temperature, + climateProperties.temperatureModifier, + climateProperties.downfall)); + } + } }