Skip to content

Commit

Permalink
fix up packet sending impls
Browse files Browse the repository at this point in the history
  • Loading branch information
Abbie5 authored and artemisSystem committed Nov 17, 2024
1 parent c0c7010 commit 27d4917
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 27 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -426,13 +426,13 @@ public Packet<ClientGamePacketListener> 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);
Expand All @@ -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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -393,40 +394,21 @@ public Packet<ClientGamePacketListener> 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<Pair<Level, BlockPos>> 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);
}
}

Expand Down

0 comments on commit 27d4917

Please sign in to comment.