Files
WW1-mod/src/main/java/com/ww1battle/ww1battle/network/SyncBattleDataPacket.java
T
Yans4440 0c33adfb99
Build / build (push) Waiting to run
ww1-1.0.0(beta)
2026-05-13 19:23:12 +02:00

56 lines
2.1 KiB
Java

package com.ww1battle.ww1battle.network;
import com.ww1battle.ww1battle.WW1BattleMod;
import net.minecraft.core.BlockPos;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.network.codec.StreamCodec;
import net.minecraft.network.protocol.common.custom.CustomPacketPayload;
import net.minecraft.resources.ResourceLocation;
import java.util.ArrayList;
import java.util.List;
public record SyncBattleDataPacket(int redScore, int blueScore, int maxScore, List<SyncPointData> points) implements CustomPacketPayload {
public static final Type<SyncBattleDataPacket> TYPE = new Type<>(ResourceLocation.fromNamespaceAndPath(WW1BattleMod.MODID, "sync_battle_data"));
public static final StreamCodec<FriendlyByteBuf, SyncBattleDataPacket> STREAM_CODEC = StreamCodec.ofMember(
SyncBattleDataPacket::write,
SyncBattleDataPacket::new
);
public SyncBattleDataPacket(FriendlyByteBuf buf) {
this(buf.readInt(), buf.readInt(), buf.readInt(), readPoints(buf));
}
private static List<SyncPointData> readPoints(FriendlyByteBuf buf) {
int size = buf.readInt();
List<SyncPointData> list = new ArrayList<>();
for (int i = 0; i < size; i++) {
list.add(new SyncPointData(buf.readUtf(), buf.readBlockPos(), buf.readInt(), buf.readInt(), buf.readUtf(), buf.readUtf()));
}
return list;
}
public void write(FriendlyByteBuf buf) {
buf.writeInt(redScore);
buf.writeInt(blueScore);
buf.writeInt(maxScore);
buf.writeInt(points.size());
for (SyncPointData point : points) {
buf.writeUtf(point.name());
buf.writeBlockPos(point.pos());
buf.writeInt(point.radius());
buf.writeInt(point.captureProgress());
buf.writeUtf(point.owningTeam());
buf.writeUtf(point.capturingTeam());
}
}
@Override
public Type<? extends CustomPacketPayload> type() {
return TYPE;
}
public record SyncPointData(String name, BlockPos pos, int radius, int captureProgress, String owningTeam, String capturingTeam) {}
}