Skip to content

Commit

Permalink
feat(game.network): method for sending packet to all client
Browse files Browse the repository at this point in the history
  • Loading branch information
WakelessSloth56 committed Nov 7, 2022
1 parent 94863cb commit f874e1f
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 3 deletions.
Expand Up @@ -5,10 +5,13 @@
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerPlayer;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.common.util.FakePlayer;
import net.minecraftforge.network.NetworkDirection;
import net.minecraftforge.network.NetworkRegistry;
import net.minecraftforge.network.simple.SimpleChannel;
import net.minecraftforge.server.ServerLifecycleHooks;

public class HPacketHandler implements IHPacketHandler {

Expand Down Expand Up @@ -48,15 +51,19 @@ public <MSG extends IHPacket> void registerServerToClient(Class<MSG> packet, Fun


@Override
@OnlyIn(Dist.CLIENT)
public <MSG extends IHPacket> void sendToServer(MSG message) {
CHANNEL.sendToServer(message);
}

@Override
public <MSG extends IHPacket> void sendToClient(ServerPlayer player, MSG message) {
if (!(player instanceof FakePlayer)) {
CHANNEL.sendTo(message, player.connection.getConnection(), NetworkDirection.PLAY_TO_CLIENT);
}
if (!(player instanceof FakePlayer)) CHANNEL.sendTo(message, player.connection.getConnection(), NetworkDirection.PLAY_TO_CLIENT);
}

@Override
public <MSG extends IHPacket> void sendToAllClient(MSG message) {
ServerLifecycleHooks.getCurrentServer().getPlayerList().getPlayers().forEach((p) -> sendToClient(p, message));
}

}
Expand Up @@ -3,14 +3,19 @@
import java.util.function.Function;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.server.level.ServerPlayer;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.network.NetworkDirection;

public interface IHPacketHandler {

<MSG extends IHPacket> void registerMessage(Class<MSG> packet, Function<FriendlyByteBuf, MSG> decoder, NetworkDirection direction);

@OnlyIn(Dist.CLIENT)
<MSG extends IHPacket> void sendToServer(MSG message);

<MSG extends IHPacket> void sendToClient(ServerPlayer player, MSG message);

<MSG extends IHPacket> void sendToAllClient(MSG message);

}

0 comments on commit f874e1f

Please sign in to comment.