From 7f6043a230b83cff57126625cd8b19063c85a599 Mon Sep 17 00:00:00 2001 From: anhgelus Date: Fri, 23 Aug 2024 13:41:22 +0000 Subject: feat(config): packet sending config to client --- .../java/world/anhgelus/molehunt/Molehunt.java | 4 ++++ .../anhgelus/molehunt/config/ConfigPayload.java | 25 ++++++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 src/main/java/world/anhgelus/molehunt/config/ConfigPayload.java (limited to 'src/main/java') diff --git a/src/main/java/world/anhgelus/molehunt/Molehunt.java b/src/main/java/world/anhgelus/molehunt/Molehunt.java index 5df63b1..140ab14 100644 --- a/src/main/java/world/anhgelus/molehunt/Molehunt.java +++ b/src/main/java/world/anhgelus/molehunt/Molehunt.java @@ -7,6 +7,7 @@ import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback; import net.fabricmc.fabric.api.entity.event.v1.ServerLivingEntityEvents; import net.fabricmc.fabric.api.entity.event.v1.ServerPlayerEvents; import net.fabricmc.fabric.api.message.v1.ServerMessageEvents; +import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry; import net.minecraft.network.packet.s2c.play.OverlayMessageS2CPacket; import net.minecraft.server.command.ServerCommandSource; import net.minecraft.server.network.ServerPlayerEntity; @@ -15,6 +16,7 @@ import net.minecraft.world.GameMode; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import world.anhgelus.molehunt.config.Config; +import world.anhgelus.molehunt.config.ConfigPayload; import java.util.HashMap; @@ -93,5 +95,7 @@ public class Molehunt implements ModInitializer { if (game.getMoles().contains(oldPlayer)) game.updateMole(oldPlayer, newPlayer); newPlayer.changeGameMode(GameMode.SPECTATOR); }); + + PayloadTypeRegistry.playS2C().register(ConfigPayload.ID, ConfigPayload.CODEC); } } diff --git a/src/main/java/world/anhgelus/molehunt/config/ConfigPayload.java b/src/main/java/world/anhgelus/molehunt/config/ConfigPayload.java new file mode 100644 index 0000000..a884c9a --- /dev/null +++ b/src/main/java/world/anhgelus/molehunt/config/ConfigPayload.java @@ -0,0 +1,25 @@ +package world.anhgelus.molehunt.config; + +import net.minecraft.network.RegistryByteBuf; +import net.minecraft.network.codec.PacketCodec; +import net.minecraft.network.codec.PacketCodecs; +import net.minecraft.network.packet.CustomPayload; +import net.minecraft.util.Identifier; +import world.anhgelus.molehunt.Molehunt; + +public record ConfigPayload(boolean showNametag, boolean showSkins, boolean showTab) implements CustomPayload { + public static final Identifier CONFIG_PACKET_ID = Identifier.of(Molehunt.MOD_ID, "config"); + + public static final CustomPayload.Id ID = new CustomPayload.Id<>(CONFIG_PACKET_ID); + public static final PacketCodec CODEC = PacketCodec.tuple( + PacketCodecs.BOOL, ConfigPayload::showNametag, + PacketCodecs.BOOL, ConfigPayload::showSkins, + PacketCodecs.BOOL, ConfigPayload::showTab, + ConfigPayload::new + ); + + @Override + public Id getId() { + return ID; + } +} -- cgit v1.2.3