From edd2c24b651f1835a475a8cbc1c0b57fc72d4c14 Mon Sep 17 00:00:00 2001 From: lieght <49651652+BAFGdeJong@users.noreply.github.com> Date: Sat, 13 Dec 2025 17:22:56 +0100 Subject: [PATCH] Added ability to take ServerPlayer from user --- .../framework/networking/server/Game.java | 2 -- .../networking/server/ServerHandler.java | 15 +++++++------ .../networking/server/ServerUser.java | 7 +++++- .../framework/networking/server/User.java | 22 ++++++++++++------- 4 files changed, 28 insertions(+), 18 deletions(-) diff --git a/framework/src/main/java/org/toop/framework/networking/server/Game.java b/framework/src/main/java/org/toop/framework/networking/server/Game.java index 87e24f7..eeb75a3 100644 --- a/framework/src/main/java/org/toop/framework/networking/server/Game.java +++ b/framework/src/main/java/org/toop/framework/networking/server/Game.java @@ -1,7 +1,5 @@ package org.toop.framework.networking.server; -import org.toop.framework.game.gameThreads.LocalThreadBehaviour; -import org.toop.framework.game.gameThreads.OnlineThreadBehaviour; import org.toop.framework.game.gameThreads.ServerThreadBehaviour; import org.toop.framework.gameFramework.model.game.TurnBasedGame; diff --git a/framework/src/main/java/org/toop/framework/networking/server/ServerHandler.java b/framework/src/main/java/org/toop/framework/networking/server/ServerHandler.java index 9cfb9d7..de33c62 100644 --- a/framework/src/main/java/org/toop/framework/networking/server/ServerHandler.java +++ b/framework/src/main/java/org/toop/framework/networking/server/ServerHandler.java @@ -54,20 +54,19 @@ public class ServerHandler extends SimpleChannelInboundHandler { } } - private boolean allowedArgs(String... args) { - if (args.length < 1) return false; - return true; + private boolean hasArgs(String... args) { + return (args.length >= 1); } private void handleLogin(ParsedMessage p) { - if (!allowedArgs(p.args())) return; + if (hasArgs(p.args())) return; user.setName(p.args()[0]); } private void handleGet(ParsedMessage p) { - if (!allowedArgs(p.args())) return; + if (hasArgs(p.args())) return; switch (p.args()[0]) { case "playerlist" -> { @@ -94,7 +93,7 @@ public class ServerHandler extends SimpleChannelInboundHandler { } private void handleChallenge(ParsedMessage p) { - if(!allowedArgs(p.args())) return; + if(hasArgs(p.args())) return; if (p.args().length < 2) return; if (p.args()[0].equalsIgnoreCase("accept")) { @@ -119,8 +118,10 @@ public class ServerHandler extends SimpleChannelInboundHandler { } private void handleMove(ParsedMessage p) { - if(!allowedArgs(p.args())) return; + if(hasArgs(p.args())) return; + // TODO check if not number + user.serverPlayer().setMove(Integer.parseInt(p.args()[0])); } private ParsedMessage parse(String msg) { diff --git a/framework/src/main/java/org/toop/framework/networking/server/ServerUser.java b/framework/src/main/java/org/toop/framework/networking/server/ServerUser.java index e2aa97a..7fffb4e 100644 --- a/framework/src/main/java/org/toop/framework/networking/server/ServerUser.java +++ b/framework/src/main/java/org/toop/framework/networking/server/ServerUser.java @@ -1,10 +1,15 @@ package org.toop.framework.networking.server; +import org.toop.framework.game.players.ServerPlayer; + +import java.util.Map; + public interface ServerUser { long id(); String name(); Game game(); - void addGame(Game game); + ServerPlayer serverPlayer(); + void addGame(Game game, ServerPlayer player); void removeGame(); void setName(String name); void sendMessage(String message); diff --git a/framework/src/main/java/org/toop/framework/networking/server/User.java b/framework/src/main/java/org/toop/framework/networking/server/User.java index 9a52587..2eebcba 100644 --- a/framework/src/main/java/org/toop/framework/networking/server/User.java +++ b/framework/src/main/java/org/toop/framework/networking/server/User.java @@ -1,11 +1,15 @@ package org.toop.framework.networking.server; import io.netty.channel.ChannelHandlerContext; +import org.toop.framework.game.players.ServerPlayer; + +import java.util.HashMap; +import java.util.Map; public class User implements ServerUser { final private long id; private String name; - private Game game; + private final Map game = new HashMap<>(); private ChannelHandlerContext connectionContext; public User(long userId, String name) { @@ -23,23 +27,25 @@ public class User implements ServerUser { return name; } - - @Override - public void addGame(Game game) { - if (this.game == null) { - this.game = game; + public void addGame(Game game, ServerPlayer player) { + if (this.game.isEmpty()) { + this.game.put(game, player); } } @Override public void removeGame() { - this.game = null; + this.game.clear(); } @Override public Game game() { - return this.game; + return this.game.keySet().iterator().next(); + } + + public ServerPlayer serverPlayer() { + return this.game.values().iterator().next(); } @Override