From f026e6bafa7fc5659486c15c32d57acc2adeaad2 Mon Sep 17 00:00:00 2001 From: Mike Vink Date: Thu, 15 Jul 2021 16:50:35 +0200 Subject: bug(server/client): get message but game no start --- api/src/main/java/akkamon/api/AkkamonSession.java | 2 ++ api/src/main/java/akkamon/api/EventSocket.java | 6 ++++++ api/src/main/java/akkamon/api/MessagingEngine.java | 9 ++++++--- api/src/main/java/akkamon/api/models/GameState.java | 2 +- api/src/main/java/akkamon/api/models/Position.java | 6 +++--- 5 files changed, 18 insertions(+), 7 deletions(-) (limited to 'api/src') 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 remotePlayers; + public HashMap remotePlayers = new HashMap<>(); public void setCurrentPlayer(String name, HashMap 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; } -- cgit v1.2.3