diff options
| author | ilotterytea <iltsu@alright.party> | 2025-01-22 18:08:38 +0500 |
|---|---|---|
| committer | ilotterytea <iltsu@alright.party> | 2025-01-22 18:08:38 +0500 |
| commit | 9f1e7c6eaecc3f9c97b77163c5e2ba7a2cfde081 (patch) | |
| tree | c0338e9c43174730d1d1a60ddf656903654ac071 /shared | |
| parent | 7e2fa5847637b39c46493bb95d81d92dc5b2d603 (diff) | |
upd: pass id in PlayerData + other way to send an array of players
Diffstat (limited to 'shared')
| -rw-r--r-- | shared/src/main/java/kz/ilotterytea/frogartha/domain/PlayerData.java | 18 | ||||
| -rw-r--r-- | shared/src/main/java/kz/ilotterytea/frogartha/domain/events/SenderJoinedRoomEvent.java | 21 |
2 files changed, 22 insertions, 17 deletions
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<PlayerData> { - 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<PlayerData> { @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<SenderJoinedRoomEvent> { - private List<Integer> ids; private List<PlayerData> players; + private int playerCount; public SenderJoinedRoomEvent() { } - public SenderJoinedRoomEvent(int playerId, List<Integer> ids, List<PlayerData> players) { + public SenderJoinedRoomEvent(int playerId, List<PlayerData> players) { super(playerId); - this.ids = ids; this.players = players; - } - - public List<Integer> getIds() { - return ids; + this.playerCount = players.size(); } public List<PlayerData> getPlayers() { @@ -35,17 +30,17 @@ public class SenderJoinedRoomEvent extends Event implements Transferable<SenderJ @Override public void serialize(Serializer serializer) throws SerializationException { serializer.serializeInt(playerId) - .serializeIntArray(ids.stream().mapToInt(Integer::intValue).toArray()) + .serializeInt(playerCount) .serializeTransferableArray(players.toArray(new PlayerData[]{})); } @Override public SenderJoinedRoomEvent deserialize(Deserializer deserializer) throws SerializationException { - List<Integer> 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]))) ); } } |
