TD-5: Split up Match and Gamesession

This commit is contained in:
Snoweuph 2025-03-12 15:10:57 +01:00
parent e188cc5974
commit 934c75d6d9
Signed by: snoweuph
GPG key ID: BEFC41DA223CEC55
12 changed files with 38 additions and 27 deletions

View file

@ -1,4 +1,4 @@
package de.towerdefence.server.match; package de.towerdefence.server.game;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;

View file

@ -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.game.callbacks.PlayerMoneyCallback;
import de.towerdefence.server.match.callbacks.PlayerMoneyCallback; import de.towerdefence.server.game.exeptions.InvalidPlacementException;
import de.towerdefence.server.match.exeptions.InvalidPlacementException; import de.towerdefence.server.game.exeptions.InvalidPlacementReason;
import de.towerdefence.server.match.exeptions.InvalidPlacementReason;
import de.towerdefence.server.player.Player; import de.towerdefence.server.player.Player;
import lombok.Getter; import lombok.Getter;

View file

@ -1,4 +1,4 @@
package de.towerdefence.server.match; package de.towerdefence.server.game;
public class Tower { public class Tower {
public static final int COST = 20; public static final int COST = 20;

View file

@ -1,4 +1,4 @@
package de.towerdefence.server.match.callbacks; package de.towerdefence.server.game.callbacks;
import de.towerdefence.server.player.Player; import de.towerdefence.server.player.Player;

View file

@ -1,4 +1,4 @@
package de.towerdefence.server.match.exeptions; package de.towerdefence.server.game.exeptions;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;

View file

@ -1,4 +1,4 @@
package de.towerdefence.server.match.exeptions; package de.towerdefence.server.game.exeptions;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;

View file

@ -5,8 +5,6 @@ import de.towerdefence.server.match.callbacks.PlayerMoneyCallback;
import de.towerdefence.server.player.Player; import de.towerdefence.server.player.Player;
import lombok.Getter; import lombok.Getter;
import java.util.Optional;
@Getter @Getter
public class Match { public class Match {

View file

@ -11,7 +11,19 @@ import org.springframework.stereotype.Service;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.Optional; 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 @Service
public class MatchService { public class MatchService {

View file

@ -1,4 +1,4 @@
package de.towerdefence.server.match.exeptions; package de.towerdefence.server.match;
public class NotInMatchException extends RuntimeException { public class NotInMatchException extends RuntimeException {
} }

View file

@ -1,9 +1,19 @@
package de.towerdefence.server.server.channels.match; 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 com.fasterxml.jackson.databind.ObjectMapper;
import de.towerdefence.server.game.exeptions.InvalidPlacementException;
import de.towerdefence.server.match.MatchService; import de.towerdefence.server.match.MatchService;
import de.towerdefence.server.match.exeptions.InvalidPlacementException; import de.towerdefence.server.match.NotInMatchException;
import de.towerdefence.server.match.exeptions.NotInMatchException;
import de.towerdefence.server.player.Player; import de.towerdefence.server.player.Player;
import de.towerdefence.server.server.JsonWebsocketHandler; import de.towerdefence.server.server.JsonWebsocketHandler;
import de.towerdefence.server.server.channels.match.hitpoints.PlayerHitpointsMessage; 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.server.channels.match.placing.TowerPlacedMessage;
import de.towerdefence.server.session.Channel; import de.towerdefence.server.session.Channel;
import de.towerdefence.server.session.SessionsService; 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 { public class MatchWebsocketHandler extends JsonWebsocketHandler {

View file

@ -1,14 +1,14 @@
package de.towerdefence.server.server.channels.match.placing; package de.towerdefence.server.server.channels.match.placing;
import java.util.Map;
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.JsonNodeFactory; 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 de.towerdefence.server.server.JsonMessage;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import java.util.Map;
@AllArgsConstructor @AllArgsConstructor
public class InvalidPlacementMessage extends JsonMessage { public class InvalidPlacementMessage extends JsonMessage {