package eu.midnightdust.midnightcontrols.packet; import eu.midnightdust.midnightcontrols.MidnightControlsConstants; import net.minecraft.network.RegistryByteBuf; import net.minecraft.network.codec.PacketCodec; import net.minecraft.network.packet.CustomPayload; import java.util.Objects; public record ControlsModePayload(String controlsMode) implements CustomPayload { public static final Id PACKET_ID = new Id<>(MidnightControlsConstants.CONTROLS_MODE_CHANNEL); public static final PacketCodec codec = PacketCodec.of(ControlsModePayload::write, ControlsModePayload::read); public static ControlsModePayload read(RegistryByteBuf buf) { return new ControlsModePayload(buf.readString(32)); } public void write(RegistryByteBuf buf) { Objects.requireNonNull(controlsMode, "Controls mode cannot be null."); buf.writeString(controlsMode, 32); } @Override public Id getId() { return PACKET_ID; } }