mirror of
https://github.com/2OOP/pism.git
synced 2026-02-04 10:54:51 +00:00
Added ability to take ServerPlayer from user
This commit is contained in:
@@ -1,7 +1,5 @@
|
|||||||
package org.toop.framework.networking.server;
|
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.game.gameThreads.ServerThreadBehaviour;
|
||||||
import org.toop.framework.gameFramework.model.game.TurnBasedGame;
|
import org.toop.framework.gameFramework.model.game.TurnBasedGame;
|
||||||
|
|
||||||
|
|||||||
@@ -54,20 +54,19 @@ public class ServerHandler extends SimpleChannelInboundHandler<String> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean allowedArgs(String... args) {
|
private boolean hasArgs(String... args) {
|
||||||
if (args.length < 1) return false;
|
return (args.length >= 1);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void handleLogin(ParsedMessage p) {
|
private void handleLogin(ParsedMessage p) {
|
||||||
|
|
||||||
if (!allowedArgs(p.args())) return;
|
if (hasArgs(p.args())) return;
|
||||||
|
|
||||||
user.setName(p.args()[0]);
|
user.setName(p.args()[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void handleGet(ParsedMessage p) {
|
private void handleGet(ParsedMessage p) {
|
||||||
if (!allowedArgs(p.args())) return;
|
if (hasArgs(p.args())) return;
|
||||||
|
|
||||||
switch (p.args()[0]) {
|
switch (p.args()[0]) {
|
||||||
case "playerlist" -> {
|
case "playerlist" -> {
|
||||||
@@ -94,7 +93,7 @@ public class ServerHandler extends SimpleChannelInboundHandler<String> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void handleChallenge(ParsedMessage p) {
|
private void handleChallenge(ParsedMessage p) {
|
||||||
if(!allowedArgs(p.args())) return;
|
if(hasArgs(p.args())) return;
|
||||||
if (p.args().length < 2) return;
|
if (p.args().length < 2) return;
|
||||||
|
|
||||||
if (p.args()[0].equalsIgnoreCase("accept")) {
|
if (p.args()[0].equalsIgnoreCase("accept")) {
|
||||||
@@ -119,8 +118,10 @@ public class ServerHandler extends SimpleChannelInboundHandler<String> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void handleMove(ParsedMessage p) {
|
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) {
|
private ParsedMessage parse(String msg) {
|
||||||
|
|||||||
@@ -1,10 +1,15 @@
|
|||||||
package org.toop.framework.networking.server;
|
package org.toop.framework.networking.server;
|
||||||
|
|
||||||
|
import org.toop.framework.game.players.ServerPlayer;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
public interface ServerUser {
|
public interface ServerUser {
|
||||||
long id();
|
long id();
|
||||||
String name();
|
String name();
|
||||||
Game game();
|
Game game();
|
||||||
void addGame(Game game);
|
ServerPlayer serverPlayer();
|
||||||
|
void addGame(Game game, ServerPlayer player);
|
||||||
void removeGame();
|
void removeGame();
|
||||||
void setName(String name);
|
void setName(String name);
|
||||||
void sendMessage(String message);
|
void sendMessage(String message);
|
||||||
|
|||||||
@@ -1,11 +1,15 @@
|
|||||||
package org.toop.framework.networking.server;
|
package org.toop.framework.networking.server;
|
||||||
|
|
||||||
import io.netty.channel.ChannelHandlerContext;
|
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 {
|
public class User implements ServerUser {
|
||||||
final private long id;
|
final private long id;
|
||||||
private String name;
|
private String name;
|
||||||
private Game game;
|
private final Map<Game, ServerPlayer> game = new HashMap<>();
|
||||||
private ChannelHandlerContext connectionContext;
|
private ChannelHandlerContext connectionContext;
|
||||||
|
|
||||||
public User(long userId, String name) {
|
public User(long userId, String name) {
|
||||||
@@ -23,23 +27,25 @@ public class User implements ServerUser {
|
|||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addGame(Game game) {
|
public void addGame(Game game, ServerPlayer player) {
|
||||||
if (this.game == null) {
|
if (this.game.isEmpty()) {
|
||||||
this.game = game;
|
this.game.put(game, player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void removeGame() {
|
public void removeGame() {
|
||||||
this.game = null;
|
this.game.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Game game() {
|
public Game game() {
|
||||||
return this.game;
|
return this.game.keySet().iterator().next();
|
||||||
|
}
|
||||||
|
|
||||||
|
public ServerPlayer serverPlayer() {
|
||||||
|
return this.game.values().iterator().next();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user