From f874e1fe567d45398b9a8030b769daa27a0d89d9 Mon Sep 17 00:00:00 2001 From: WakelessSloth56 Date: Tue, 8 Nov 2022 00:03:34 +0800 Subject: [PATCH] feat(game.network): method for sending packet to all client --- .../arnicalib/game/network/HPacketHandler.java | 13 ++++++++++--- .../arnicalib/game/network/IHPacketHandler.java | 5 +++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/auioc/mcmod/arnicalib/game/network/HPacketHandler.java b/src/main/java/org/auioc/mcmod/arnicalib/game/network/HPacketHandler.java index a5d32fc2..82a8743c 100644 --- a/src/main/java/org/auioc/mcmod/arnicalib/game/network/HPacketHandler.java +++ b/src/main/java/org/auioc/mcmod/arnicalib/game/network/HPacketHandler.java @@ -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 { @@ -48,15 +51,19 @@ public void registerServerToClient(Class packet, Fun @Override + @OnlyIn(Dist.CLIENT) public void sendToServer(MSG message) { CHANNEL.sendToServer(message); } @Override public 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 void sendToAllClient(MSG message) { + ServerLifecycleHooks.getCurrentServer().getPlayerList().getPlayers().forEach((p) -> sendToClient(p, message)); } } diff --git a/src/main/java/org/auioc/mcmod/arnicalib/game/network/IHPacketHandler.java b/src/main/java/org/auioc/mcmod/arnicalib/game/network/IHPacketHandler.java index 12cbd39e..8c4b1942 100644 --- a/src/main/java/org/auioc/mcmod/arnicalib/game/network/IHPacketHandler.java +++ b/src/main/java/org/auioc/mcmod/arnicalib/game/network/IHPacketHandler.java @@ -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 { void registerMessage(Class packet, Function decoder, NetworkDirection direction); + @OnlyIn(Dist.CLIENT) void sendToServer(MSG message); void sendToClient(ServerPlayer player, MSG message); + void sendToAllClient(MSG message); + }