summaryrefslogtreecommitdiff
path: root/api/src
diff options
context:
space:
mode:
authorMike Vink <mike1994vink@gmail.com>2021-07-15 16:50:35 +0200
committerMike Vink <mike1994vink@gmail.com>2021-07-15 16:50:35 +0200
commitf026e6bafa7fc5659486c15c32d57acc2adeaad2 (patch)
treef7e379fd1ea305808c47eb9dc4b76fcf70fb3760 /api/src
parent0f8edbe0b2c0bd09cd40872f06993c08e67f26cb (diff)
bug(server/client): get message but game no start
Diffstat (limited to 'api/src')
-rw-r--r--api/src/main/java/akkamon/api/AkkamonSession.java2
-rw-r--r--api/src/main/java/akkamon/api/EventSocket.java6
-rw-r--r--api/src/main/java/akkamon/api/MessagingEngine.java9
-rw-r--r--api/src/main/java/akkamon/api/models/GameState.java2
-rw-r--r--api/src/main/java/akkamon/api/models/Position.java6
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;
}