summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/src/main/java/kz/ilotterytea/frogartha/sessions/SessionHandlers.java3
-rw-r--r--server/src/main/java/kz/ilotterytea/frogartha/server/PlayerConnection.java5
-rw-r--r--server/src/main/java/kz/ilotterytea/frogartha/server/Room.java1
-rw-r--r--shared/src/main/java/kz/ilotterytea/frogartha/domain/PlayerData.java18
-rw-r--r--shared/src/main/java/kz/ilotterytea/frogartha/domain/events/SenderJoinedRoomEvent.java21
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])))
);
}
}