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 | |
| parent | 7e2fa5847637b39c46493bb95d81d92dc5b2d603 (diff) | |
upd: pass id in PlayerData + other way to send an array of players
5 files changed, 23 insertions, 25 deletions
diff --git a/core/src/main/java/kz/ilotterytea/frogartha/sessions/SessionHandlers.java b/core/src/main/java/kz/ilotterytea/frogartha/sessions/SessionHandlers.java index c7abe3e..6fddee9 100644 --- a/core/src/main/java/kz/ilotterytea/frogartha/sessions/SessionHandlers.java +++ b/core/src/main/java/kz/ilotterytea/frogartha/sessions/SessionHandlers.java @@ -95,9 +95,8 @@ public class SessionHandlers { HashMap<Integer, PlayerData> map = new HashMap<>(); for (int i = 0; i < event.getPlayers().size(); i++) { - Integer id = event.getIds().get(i); PlayerData data = event.getPlayers().get(i); - map.put(id, data); + map.put(data.getId(), data); } client.getPlayerDataMap().putAll(map); diff --git a/server/src/main/java/kz/ilotterytea/frogartha/server/PlayerConnection.java b/server/src/main/java/kz/ilotterytea/frogartha/server/PlayerConnection.java index 56dd695..f1d0a3b 100644 --- a/server/src/main/java/kz/ilotterytea/frogartha/server/PlayerConnection.java +++ b/server/src/main/java/kz/ilotterytea/frogartha/server/PlayerConnection.java @@ -8,7 +8,6 @@ import java.sql.Timestamp; public class PlayerConnection extends PlayerData { private static int TOTAL_CONNECTION_IDS = 0; - private final int id; private final WebSocket connection; private Room room; @@ -32,10 +31,6 @@ public class PlayerConnection extends PlayerData { } } - public int getId() { - return id; - } - public WebSocket getConnection() { return connection; } diff --git a/server/src/main/java/kz/ilotterytea/frogartha/server/Room.java b/server/src/main/java/kz/ilotterytea/frogartha/server/Room.java index 1c76a45..75b739d 100644 --- a/server/src/main/java/kz/ilotterytea/frogartha/server/Room.java +++ b/server/src/main/java/kz/ilotterytea/frogartha/server/Room.java @@ -38,7 +38,6 @@ public class Room { broadcast(new PlayerJoinedRoomEvent(player.getId(), player)); player.send(new SenderJoinedRoomEvent( player.getId(), - this.players.stream().map(PlayerConnection::getId).collect(Collectors.toList()), this.players.stream().map((x) -> (PlayerData) x).collect(Collectors.toList()) )); player.setRoom(this); 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]))) ); } } |
