From 934c75d6d902e3090327d2dae0897f5944878b4f Mon Sep 17 00:00:00 2001 From: Snoweuph Date: Wed, 12 Mar 2025 15:10:57 +0100 Subject: [PATCH] TD-5: Split up Match and Gamesession --- .../server/{match => game}/Enemy.java | 2 +- .../server/{match => game}/GameSession.java | 9 ++++---- .../server/{match => game}/Tower.java | 2 +- .../callbacks/PlayerHitpointsCallback.java | 0 .../callbacks/PlayerMoneyCallback.java | 2 +- .../exeptions/InvalidPlacementException.java | 2 +- .../exeptions/InvalidPlacementReason.java | 2 +- .../de/towerdefence/server/match/Match.java | 2 -- .../server/match/MatchService.java | 14 +++++++++++- .../{exeptions => }/NotInMatchException.java | 2 +- .../channels/match/MatchWebsocketHandler.java | 22 ++++++++++--------- .../placing/InvalidPlacementMessage.java | 6 ++--- 12 files changed, 38 insertions(+), 27 deletions(-) rename src/main/java/de/towerdefence/server/{match => game}/Enemy.java (82%) rename src/main/java/de/towerdefence/server/{match => game}/GameSession.java (83%) rename src/main/java/de/towerdefence/server/{match => game}/Tower.java (62%) rename src/main/java/de/towerdefence/server/{match => game}/callbacks/PlayerHitpointsCallback.java (100%) rename src/main/java/de/towerdefence/server/{match => game}/callbacks/PlayerMoneyCallback.java (76%) rename src/main/java/de/towerdefence/server/{match => game}/exeptions/InvalidPlacementException.java (80%) rename src/main/java/de/towerdefence/server/{match => game}/exeptions/InvalidPlacementReason.java (86%) rename src/main/java/de/towerdefence/server/match/{exeptions => }/NotInMatchException.java (56%) diff --git a/src/main/java/de/towerdefence/server/match/Enemy.java b/src/main/java/de/towerdefence/server/game/Enemy.java similarity index 82% rename from src/main/java/de/towerdefence/server/match/Enemy.java rename to src/main/java/de/towerdefence/server/game/Enemy.java index c1997ff..3a7828f 100644 --- a/src/main/java/de/towerdefence/server/match/Enemy.java +++ b/src/main/java/de/towerdefence/server/game/Enemy.java @@ -1,4 +1,4 @@ -package de.towerdefence.server.match; +package de.towerdefence.server.game; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/src/main/java/de/towerdefence/server/match/GameSession.java b/src/main/java/de/towerdefence/server/game/GameSession.java similarity index 83% rename from src/main/java/de/towerdefence/server/match/GameSession.java rename to src/main/java/de/towerdefence/server/game/GameSession.java index 9bea44c..5e04282 100644 --- a/src/main/java/de/towerdefence/server/match/GameSession.java +++ b/src/main/java/de/towerdefence/server/game/GameSession.java @@ -1,9 +1,8 @@ -package de.towerdefence.server.match; +package de.towerdefence.server.game; -import de.towerdefence.server.match.callbacks.PlayerHitpointsCallback; -import de.towerdefence.server.match.callbacks.PlayerMoneyCallback; -import de.towerdefence.server.match.exeptions.InvalidPlacementException; -import de.towerdefence.server.match.exeptions.InvalidPlacementReason; +import de.towerdefence.server.game.callbacks.PlayerMoneyCallback; +import de.towerdefence.server.game.exeptions.InvalidPlacementException; +import de.towerdefence.server.game.exeptions.InvalidPlacementReason; import de.towerdefence.server.player.Player; import lombok.Getter; diff --git a/src/main/java/de/towerdefence/server/match/Tower.java b/src/main/java/de/towerdefence/server/game/Tower.java similarity index 62% rename from src/main/java/de/towerdefence/server/match/Tower.java rename to src/main/java/de/towerdefence/server/game/Tower.java index ae8b146..48a0c3d 100644 --- a/src/main/java/de/towerdefence/server/match/Tower.java +++ b/src/main/java/de/towerdefence/server/game/Tower.java @@ -1,4 +1,4 @@ -package de.towerdefence.server.match; +package de.towerdefence.server.game; public class Tower { public static final int COST = 20; diff --git a/src/main/java/de/towerdefence/server/match/callbacks/PlayerHitpointsCallback.java b/src/main/java/de/towerdefence/server/game/callbacks/PlayerHitpointsCallback.java similarity index 100% rename from src/main/java/de/towerdefence/server/match/callbacks/PlayerHitpointsCallback.java rename to src/main/java/de/towerdefence/server/game/callbacks/PlayerHitpointsCallback.java diff --git a/src/main/java/de/towerdefence/server/match/callbacks/PlayerMoneyCallback.java b/src/main/java/de/towerdefence/server/game/callbacks/PlayerMoneyCallback.java similarity index 76% rename from src/main/java/de/towerdefence/server/match/callbacks/PlayerMoneyCallback.java rename to src/main/java/de/towerdefence/server/game/callbacks/PlayerMoneyCallback.java index ae35600..ebaacd0 100644 --- a/src/main/java/de/towerdefence/server/match/callbacks/PlayerMoneyCallback.java +++ b/src/main/java/de/towerdefence/server/game/callbacks/PlayerMoneyCallback.java @@ -1,4 +1,4 @@ -package de.towerdefence.server.match.callbacks; +package de.towerdefence.server.game.callbacks; import de.towerdefence.server.player.Player; diff --git a/src/main/java/de/towerdefence/server/match/exeptions/InvalidPlacementException.java b/src/main/java/de/towerdefence/server/game/exeptions/InvalidPlacementException.java similarity index 80% rename from src/main/java/de/towerdefence/server/match/exeptions/InvalidPlacementException.java rename to src/main/java/de/towerdefence/server/game/exeptions/InvalidPlacementException.java index eea167d..9a3727b 100644 --- a/src/main/java/de/towerdefence/server/match/exeptions/InvalidPlacementException.java +++ b/src/main/java/de/towerdefence/server/game/exeptions/InvalidPlacementException.java @@ -1,4 +1,4 @@ -package de.towerdefence.server.match.exeptions; +package de.towerdefence.server.game.exeptions; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/src/main/java/de/towerdefence/server/match/exeptions/InvalidPlacementReason.java b/src/main/java/de/towerdefence/server/game/exeptions/InvalidPlacementReason.java similarity index 86% rename from src/main/java/de/towerdefence/server/match/exeptions/InvalidPlacementReason.java rename to src/main/java/de/towerdefence/server/game/exeptions/InvalidPlacementReason.java index f741f39..17cea2c 100644 --- a/src/main/java/de/towerdefence/server/match/exeptions/InvalidPlacementReason.java +++ b/src/main/java/de/towerdefence/server/game/exeptions/InvalidPlacementReason.java @@ -1,4 +1,4 @@ -package de.towerdefence.server.match.exeptions; +package de.towerdefence.server.game.exeptions; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/src/main/java/de/towerdefence/server/match/Match.java b/src/main/java/de/towerdefence/server/match/Match.java index 959592a..dad8e97 100644 --- a/src/main/java/de/towerdefence/server/match/Match.java +++ b/src/main/java/de/towerdefence/server/match/Match.java @@ -5,8 +5,6 @@ import de.towerdefence.server.match.callbacks.PlayerMoneyCallback; import de.towerdefence.server.player.Player; import lombok.Getter; -import java.util.Optional; - @Getter public class Match { diff --git a/src/main/java/de/towerdefence/server/match/MatchService.java b/src/main/java/de/towerdefence/server/match/MatchService.java index a337e29..31792e4 100644 --- a/src/main/java/de/towerdefence/server/match/MatchService.java +++ b/src/main/java/de/towerdefence/server/match/MatchService.java @@ -11,7 +11,19 @@ import org.springframework.stereotype.Service; import java.util.HashMap; import java.util.Map; import java.util.Optional; -import java.util.concurrent.*; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledFuture; +import java.util.concurrent.TimeUnit; + +import org.springframework.stereotype.Service; + +import de.towerdefence.server.game.GameSession; +import de.towerdefence.server.game.Tower; +import de.towerdefence.server.game.callbacks.PlayerMoneyCallback; +import de.towerdefence.server.game.exeptions.InvalidPlacementException; +import de.towerdefence.server.game.exeptions.InvalidPlacementReason; +import de.towerdefence.server.player.Player; @Service public class MatchService { diff --git a/src/main/java/de/towerdefence/server/match/exeptions/NotInMatchException.java b/src/main/java/de/towerdefence/server/match/NotInMatchException.java similarity index 56% rename from src/main/java/de/towerdefence/server/match/exeptions/NotInMatchException.java rename to src/main/java/de/towerdefence/server/match/NotInMatchException.java index 8297e23..e704683 100644 --- a/src/main/java/de/towerdefence/server/match/exeptions/NotInMatchException.java +++ b/src/main/java/de/towerdefence/server/match/NotInMatchException.java @@ -1,4 +1,4 @@ -package de.towerdefence.server.match.exeptions; +package de.towerdefence.server.match; public class NotInMatchException extends RuntimeException { } diff --git a/src/main/java/de/towerdefence/server/server/channels/match/MatchWebsocketHandler.java b/src/main/java/de/towerdefence/server/server/channels/match/MatchWebsocketHandler.java index bc64f77..fa69142 100644 --- a/src/main/java/de/towerdefence/server/server/channels/match/MatchWebsocketHandler.java +++ b/src/main/java/de/towerdefence/server/server/channels/match/MatchWebsocketHandler.java @@ -1,9 +1,19 @@ package de.towerdefence.server.server.channels.match; +import java.io.IOException; +import java.util.Map; +import java.util.Objects; +import java.util.concurrent.ConcurrentHashMap; + +import org.springframework.web.socket.CloseStatus; +import org.springframework.web.socket.TextMessage; +import org.springframework.web.socket.WebSocketSession; + import com.fasterxml.jackson.databind.ObjectMapper; + +import de.towerdefence.server.game.exeptions.InvalidPlacementException; import de.towerdefence.server.match.MatchService; -import de.towerdefence.server.match.exeptions.InvalidPlacementException; -import de.towerdefence.server.match.exeptions.NotInMatchException; +import de.towerdefence.server.match.NotInMatchException; import de.towerdefence.server.player.Player; import de.towerdefence.server.server.JsonWebsocketHandler; import de.towerdefence.server.server.channels.match.hitpoints.PlayerHitpointsMessage; @@ -14,14 +24,6 @@ import de.towerdefence.server.server.channels.match.placing.RequestTowerPlacingM import de.towerdefence.server.server.channels.match.placing.TowerPlacedMessage; import de.towerdefence.server.session.Channel; import de.towerdefence.server.session.SessionsService; -import org.springframework.web.socket.CloseStatus; -import org.springframework.web.socket.TextMessage; -import org.springframework.web.socket.WebSocketSession; - -import java.io.IOException; -import java.util.Map; -import java.util.Objects; -import java.util.concurrent.ConcurrentHashMap; public class MatchWebsocketHandler extends JsonWebsocketHandler { diff --git a/src/main/java/de/towerdefence/server/server/channels/match/placing/InvalidPlacementMessage.java b/src/main/java/de/towerdefence/server/server/channels/match/placing/InvalidPlacementMessage.java index e96f542..a8b1e95 100644 --- a/src/main/java/de/towerdefence/server/server/channels/match/placing/InvalidPlacementMessage.java +++ b/src/main/java/de/towerdefence/server/server/channels/match/placing/InvalidPlacementMessage.java @@ -1,14 +1,14 @@ package de.towerdefence.server.server.channels.match.placing; +import java.util.Map; + import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.node.JsonNodeFactory; -import de.towerdefence.server.match.exeptions.InvalidPlacementReason; +import de.towerdefence.server.game.exeptions.InvalidPlacementReason; import de.towerdefence.server.server.JsonMessage; import lombok.AllArgsConstructor; -import java.util.Map; - @AllArgsConstructor public class InvalidPlacementMessage extends JsonMessage {