From 9f1e7c6eaecc3f9c97b77163c5e2ba7a2cfde081 Mon Sep 17 00:00:00 2001 From: ilotterytea Date: Wed, 22 Jan 2025 18:08:38 +0500 Subject: upd: pass id in PlayerData + other way to send an array of players --- .../kz/ilotterytea/frogartha/domain/PlayerData.java | 18 ++++++++++++++---- .../domain/events/SenderJoinedRoomEvent.java | 21 ++++++++------------- 2 files changed, 22 insertions(+), 17 deletions(-) (limited to 'shared') diff --git a/shared/src/main/java/kz/ilotterytea/frogartha/domain/PlayerData.java b/shared/src/main/java/kz/ilotterytea/frogartha/domain/PlayerData.java index 2054e68..f30f0c2 100644 --- a/shared/src/main/java/kz/ilotterytea/frogartha/domain/PlayerData.java +++ b/shared/src/main/java/kz/ilotterytea/frogartha/domain/PlayerData.java @@ -6,17 +6,23 @@ import com.github.czyzby.websocket.serialization.impl.Deserializer; import com.github.czyzby.websocket.serialization.impl.Serializer; public class PlayerData implements Transferable { - private Identity identity; - private PlayerState state; + protected int id; + protected Identity identity; + protected PlayerState state; public PlayerData() { } - public PlayerData(Identity identity, PlayerState state) { + public PlayerData(int id, Identity identity, PlayerState state) { + this.id = id; this.identity = identity; this.state = state; } + public int getId() { + return id; + } + public Identity getIdentity() { return identity; } @@ -32,12 +38,16 @@ public class PlayerData implements Transferable { @Override public void serialize(Serializer serializer) throws SerializationException { - serializer.serializeTransferable(identity).serializeTransferable(state); + serializer + .serializeInt(id) + .serializeTransferable(identity) + .serializeTransferable(state); } @Override public PlayerData deserialize(Deserializer deserializer) throws SerializationException { return new PlayerData( + deserializer.deserializeInt(), deserializer.deserializeTransferable(new Identity()), deserializer.deserializeTransferable(new PlayerState()) ); diff --git a/shared/src/main/java/kz/ilotterytea/frogartha/domain/events/SenderJoinedRoomEvent.java b/shared/src/main/java/kz/ilotterytea/frogartha/domain/events/SenderJoinedRoomEvent.java index b032c47..93caea0 100644 --- a/shared/src/main/java/kz/ilotterytea/frogartha/domain/events/SenderJoinedRoomEvent.java +++ b/shared/src/main/java/kz/ilotterytea/frogartha/domain/events/SenderJoinedRoomEvent.java @@ -9,23 +9,18 @@ import kz.ilotterytea.frogartha.domain.PlayerData; import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import java.util.stream.Collectors; public class SenderJoinedRoomEvent extends Event implements Transferable { - private List ids; private List players; + private int playerCount; public SenderJoinedRoomEvent() { } - public SenderJoinedRoomEvent(int playerId, List ids, List players) { + public SenderJoinedRoomEvent(int playerId, List players) { super(playerId); - this.ids = ids; this.players = players; - } - - public List getIds() { - return ids; + this.playerCount = players.size(); } public List getPlayers() { @@ -35,17 +30,17 @@ public class SenderJoinedRoomEvent extends Event implements Transferable ids = Arrays.stream(deserializer.deserializeIntArray()).boxed().collect(Collectors.toList()); + int id = deserializer.deserializeInt(); + int playerCount = deserializer.deserializeInt(); return new SenderJoinedRoomEvent( - deserializer.deserializeInt(), - new ArrayList<>(ids), - new ArrayList<>(Arrays.asList(deserializer.deserializeTransferableArray(new PlayerData(), size -> new PlayerData[ids.size()]))) + id, + new ArrayList<>(Arrays.asList(deserializer.deserializeTransferableArray(new PlayerData(), size -> new PlayerData[playerCount]))) ); } } -- cgit v1.2.3