From 96d9c4a31f0f72eca5b199bbe4a96675f9e180bd Mon Sep 17 00:00:00 2001 From: MickWerf Date: Wed, 27 May 2020 23:17:13 +0200 Subject: [PATCH] Data sending tests YAY! --- core/src/netwerkprog/game/client/Client.java | 2 +- core/src/netwerkprog/game/server/Parser.java | 30 +++++++++++++- .../server/controllers/DataController.java | 39 +++++++++++++++++++ .../game/util/game/GameCharacter.java | 4 ++ 4 files changed, 73 insertions(+), 2 deletions(-) diff --git a/core/src/netwerkprog/game/client/Client.java b/core/src/netwerkprog/game/client/Client.java index e17ccd1..93d6d2a 100644 --- a/core/src/netwerkprog/game/client/Client.java +++ b/core/src/netwerkprog/game/client/Client.java @@ -99,6 +99,6 @@ public class Client extends Controller implements ParserCallback { @Override public void onDataReceived(String data) { - send(data); + System.out.println(data); } } diff --git a/core/src/netwerkprog/game/server/Parser.java b/core/src/netwerkprog/game/server/Parser.java index 2da6f75..c4dcb44 100644 --- a/core/src/netwerkprog/game/server/Parser.java +++ b/core/src/netwerkprog/game/server/Parser.java @@ -1,15 +1,43 @@ package netwerkprog.game.server; +import netwerkprog.game.client.game.characters.DevTest1; +import netwerkprog.game.client.game.characters.DevTest2; +import netwerkprog.game.client.game.characters.DevTest3; +import netwerkprog.game.server.controllers.DataController; import netwerkprog.game.util.data.ParserCallback; +import java.util.Scanner; + public class Parser { private final ParserCallback callback; + private Scanner scanner; + + private final DataController dataController; public Parser(ParserCallback callback) { this.callback = callback; + this.dataController = new DataController(); + + this.dataController.addAllCharacters(new DevTest1(), new DevTest2(), new DevTest3()); } public void parse(String request) { - callback.onDataReceived(null); + String data = ""; + this.scanner = new Scanner(request); + scanner.useDelimiter("~"); + String type = scanner.next(); + String name = scanner.next(); + + if (type.equals("character")) { + try { + data = dataController.getCharacter(name).toString(); + } catch (IllegalArgumentException ex) { + data = ex.getMessage(); + } + } + + + + callback.onDataReceived(data); } } diff --git a/core/src/netwerkprog/game/server/controllers/DataController.java b/core/src/netwerkprog/game/server/controllers/DataController.java index 79e8a02..f1de4bc 100644 --- a/core/src/netwerkprog/game/server/controllers/DataController.java +++ b/core/src/netwerkprog/game/server/controllers/DataController.java @@ -1,8 +1,47 @@ package netwerkprog.game.server.controllers; +import netwerkprog.game.util.game.GameCharacter; + +import java.util.Arrays; +import java.util.HashSet; + public class DataController { + private final HashSet gameCharacters; + public DataController() { + gameCharacters = new HashSet<>(); } + public void addCharacter(GameCharacter gameCharacter) { + this.gameCharacters.add(gameCharacter); + } + public void addAllCharacters(GameCharacter... gameCharacters) { + this.gameCharacters.addAll(Arrays.asList(gameCharacters)); + } + + public void removeCharacter(String name) { + this.gameCharacters.removeIf(character -> character.getName().equals(name)); + } + + public void removeCharacter(GameCharacter character) { + this.gameCharacters.remove(character); + } + + public void clearCharacters() { + this.gameCharacters.clear(); + } + + public HashSet getGameCharacters() { + return gameCharacters; + } + + public GameCharacter getCharacter(String name) throws IllegalArgumentException { + for (GameCharacter character : gameCharacters) { + if (character.getName().equals(name)) { + return character; + } + } + throw new IllegalArgumentException("The character does not exist."); + } } diff --git a/core/src/netwerkprog/game/util/game/GameCharacter.java b/core/src/netwerkprog/game/util/game/GameCharacter.java index 4d8ce69..00dfb36 100644 --- a/core/src/netwerkprog/game/util/game/GameCharacter.java +++ b/core/src/netwerkprog/game/util/game/GameCharacter.java @@ -25,6 +25,10 @@ public abstract class GameCharacter extends Actor { super.setY(0); } + public String getName() { + return this.name; + } + public void addAbilities(Ability ability) { this.abilities.add(ability); } -- 2.47.2