diff options
| author | Mike Vink <mike1994vink@gmail.com> | 2021-07-15 16:50:35 +0200 |
|---|---|---|
| committer | Mike Vink <mike1994vink@gmail.com> | 2021-07-15 16:50:35 +0200 |
| commit | f026e6bafa7fc5659486c15c32d57acc2adeaad2 (patch) | |
| tree | f7e379fd1ea305808c47eb9dc4b76fcf70fb3760 /api | |
| parent | 0f8edbe0b2c0bd09cd40872f06993c08e67f26cb (diff) | |
bug(server/client): get message but game no start
Diffstat (limited to 'api')
5 files changed, 18 insertions, 7 deletions
diff --git a/api/src/main/java/akkamon/api/AkkamonSession.java b/api/src/main/java/akkamon/api/AkkamonSession.java index 217c8d8..55ca3c3 100644 --- a/api/src/main/java/akkamon/api/AkkamonSession.java +++ b/api/src/main/java/akkamon/api/AkkamonSession.java @@ -9,4 +9,6 @@ public interface AkkamonSession { void disconnect(int statusCode, String message); void setCurrentUser(User user); + + User getUser(); } diff --git a/api/src/main/java/akkamon/api/EventSocket.java b/api/src/main/java/akkamon/api/EventSocket.java index 5a2693e..fdefee3 100644 --- a/api/src/main/java/akkamon/api/EventSocket.java +++ b/api/src/main/java/akkamon/api/EventSocket.java @@ -35,6 +35,7 @@ public class EventSocket extends WebSocketAdapter implements AkkamonSession { super.onWebSocketClose(statusCode, reason); System.out.println("Socket Closed: [" + statusCode + "] " + reason); closureLatch.countDown(); + MessagingEngine.getInstance().sessionOffline(this); } @Override @@ -68,4 +69,9 @@ public class EventSocket extends WebSocketAdapter implements AkkamonSession { public void setCurrentUser(User user) { this.user = user; } + + @Override + public User getUser() { + return user; + } } diff --git a/api/src/main/java/akkamon/api/MessagingEngine.java b/api/src/main/java/akkamon/api/MessagingEngine.java index a3cff1d..1627ad4 100644 --- a/api/src/main/java/akkamon/api/MessagingEngine.java +++ b/api/src/main/java/akkamon/api/MessagingEngine.java @@ -45,7 +45,7 @@ public class MessagingEngine { // dummy gameState.setCurrentPlayer("Ash", trainers); - Event event = new Event("updatePos", gameState); + Event event = new Event("serverSidePosUpdate", gameState); session.receiveGameState(gson.toJson(event)); @@ -58,7 +58,7 @@ public class MessagingEngine { gameState.setCurrentPlayer(name, trainers); gameState.setRemotePlayers(trainers); - Event event = new Event("updatePos", gameState); + Event event = new Event("serverSidePosUpdate", gameState); session.receiveGameState(gson.toJson(event)); } @@ -83,7 +83,7 @@ public class MessagingEngine { case "login": login(session, event.user); break; - case "posUpdate": + case "clientSidePosUpdate": updatePositions(event.gameState); break; } @@ -114,4 +114,7 @@ public class MessagingEngine { emitGameState(); } + public void sessionOffline(AkkamonSession session) { + akkamonSessions.remove(session.getUser().name); + } } diff --git a/api/src/main/java/akkamon/api/models/GameState.java b/api/src/main/java/akkamon/api/models/GameState.java index b303d24..d849fe5 100644 --- a/api/src/main/java/akkamon/api/models/GameState.java +++ b/api/src/main/java/akkamon/api/models/GameState.java @@ -7,7 +7,7 @@ import java.util.Map; public class GameState { public Player currentPlayer; - public HashMap<String, Player> remotePlayers; + public HashMap<String, Player> remotePlayers = new HashMap<>(); public void setCurrentPlayer(String name, HashMap<String, Trainer> trainers) { diff --git a/api/src/main/java/akkamon/api/models/Position.java b/api/src/main/java/akkamon/api/models/Position.java index abe11dd..3dd3402 100644 --- a/api/src/main/java/akkamon/api/models/Position.java +++ b/api/src/main/java/akkamon/api/models/Position.java @@ -1,10 +1,10 @@ package akkamon.api.models; public class Position { - public int x; - public int y; + public float x; + public float y; - public Position(int x, int y) { + public Position(float x, float y) { this.x = x; this.y = y; } |
