diff --git a/Fabric/src/main/java/vazkii/botania/fabric/client/FabricClientXplatImpl.java b/Fabric/src/main/java/vazkii/botania/fabric/client/FabricClientXplatImpl.java index 5d1f2f0f4f..c16bca77ef 100644 --- a/Fabric/src/main/java/vazkii/botania/fabric/client/FabricClientXplatImpl.java +++ b/Fabric/src/main/java/vazkii/botania/fabric/client/FabricClientXplatImpl.java @@ -33,7 +33,7 @@ public void fireRenderTinyPotato(BlockEntity potato, Component name, float tickD @Override public void sendToServer(CustomPacketPayload packet) { - ClientPlayNetworking.send(packet.getFabricId(), packet.toBuf()); + ClientPlayNetworking.send(packet); } @Nullable diff --git a/Fabric/src/main/java/vazkii/botania/fabric/xplat/FabricXplatImpl.java b/Fabric/src/main/java/vazkii/botania/fabric/xplat/FabricXplatImpl.java index 6274492471..740f2b101d 100644 --- a/Fabric/src/main/java/vazkii/botania/fabric/xplat/FabricXplatImpl.java +++ b/Fabric/src/main/java/vazkii/botania/fabric/xplat/FabricXplatImpl.java @@ -426,13 +426,13 @@ public Packet toVanillaClientboundPacket(CustomPacketP @Override public void sendToPlayer(Player player, CustomPacketPayload packet) { if (player instanceof ServerPlayer serverPlayer) { - ServerPlayNetworking.send(serverPlayer, packet.getFabricId(), packet.toBuf()); + ServerPlayNetworking.send(serverPlayer, packet); } } @Override public void sendToNear(Level level, BlockPos pos, CustomPacketPayload packet) { - var pkt = ServerPlayNetworking.createS2CPacket(packet.getFabricId(), packet.toBuf()); + var pkt = ServerPlayNetworking.createS2CPacket(packet); for (var player : PlayerLookup.tracking((ServerLevel) level, pos)) { if (player.distanceToSqr(pos.getX(), pos.getY(), pos.getZ()) < 64 * 64) { player.connection.send(pkt); @@ -442,7 +442,7 @@ public void sendToNear(Level level, BlockPos pos, CustomPacketPayload packet) { @Override public void sendToTracking(Entity e, CustomPacketPayload packet) { - var pkt = ServerPlayNetworking.createS2CPacket(packet.getFabricId(), packet.toBuf()); + var pkt = ServerPlayNetworking.createS2CPacket(packet); PlayerLookup.tracking(e).forEach(p -> p.connection.send(pkt)); if (e instanceof ServerPlayer) { ((ServerPlayer) e).connection.send(pkt); diff --git a/NeoForge/src/main/java/vazkii/botania/forge/client/ForgeClientXplatImpl.java b/NeoForge/src/main/java/vazkii/botania/forge/client/ForgeClientXplatImpl.java index 2b8ac6c24c..5839339260 100644 --- a/NeoForge/src/main/java/vazkii/botania/forge/client/ForgeClientXplatImpl.java +++ b/NeoForge/src/main/java/vazkii/botania/forge/client/ForgeClientXplatImpl.java @@ -17,6 +17,7 @@ import net.minecraft.world.level.block.state.BlockState; import net.neoforged.neoforge.client.model.data.ModelData; import net.neoforged.neoforge.common.NeoForge; +import net.neoforged.neoforge.network.PacketDistributor; import org.jetbrains.annotations.Nullable; @@ -35,7 +36,7 @@ public void fireRenderTinyPotato(BlockEntity potato, Component name, float tickD @Override public void sendToServer(CustomPacketPayload packet) { - ForgePacketHandler.CHANNEL.sendToServer(packet); + PacketDistributor.sendToServer(packet); } @Nullable diff --git a/NeoForge/src/main/java/vazkii/botania/forge/xplat/ForgeXplatImpl.java b/NeoForge/src/main/java/vazkii/botania/forge/xplat/ForgeXplatImpl.java index bafff8dabe..b6522d6ee1 100644 --- a/NeoForge/src/main/java/vazkii/botania/forge/xplat/ForgeXplatImpl.java +++ b/NeoForge/src/main/java/vazkii/botania/forge/xplat/ForgeXplatImpl.java @@ -13,6 +13,7 @@ import net.minecraft.network.protocol.game.ClientGamePacketListener; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerChunkCache; +import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.packs.PackType; import net.minecraft.server.packs.resources.PreparableReloadListener; @@ -393,40 +394,21 @@ public Packet toVanillaClientboundPacket(CustomPacketP @Override public void sendToPlayer(Player player, CustomPacketPayload packet) { if (!player.level().isClientSide && player instanceof ServerPlayer serverPlayer) { - ForgePacketHandler.CHANNEL.send(PacketDistributor.PLAYER.with(() -> serverPlayer), packet); + PacketDistributor.sendToPlayer(serverPlayer, packet); } } - private static final PacketDistributor> TRACKING_CHUNK_AND_NEAR = new PacketDistributor<>( - (_d, pairSupplier) -> { - var pair = pairSupplier.get(); - var level = pair.getFirst(); - var blockpos = pair.getSecond(); - var chunkpos = new ChunkPos(blockpos); - return packet -> { - var players = ((ServerChunkCache) level.getChunkSource()).chunkMap - .getPlayers(chunkpos, false); - for (var player : players) { - if (player.distanceToSqr(blockpos.getX(), blockpos.getY(), blockpos.getZ()) < 64 * 64) { - player.connection.send(packet); - } - } - }; - }, - NetworkDirection.PLAY_TO_CLIENT - ); - @Override public void sendToNear(Level level, BlockPos pos, CustomPacketPayload packet) { if (!level.isClientSide) { - ForgePacketHandler.CHANNEL.send(TRACKING_CHUNK_AND_NEAR.with(() -> Pair.of(level, pos)), packet); + PacketDistributor.sendToPlayersNear((ServerLevel) level, null, pos.getX(), pos.getY(), pos.getZ(), 64, packet); } } @Override public void sendToTracking(Entity e, CustomPacketPayload packet) { if (!e.level().isClientSide) { - ForgePacketHandler.CHANNEL.send(PacketDistributor.TRACKING_ENTITY_AND_SELF.with(() -> e), packet); + PacketDistributor.sendToPlayersTrackingEntityAndSelf(e, packet); } }