Fixed InputToProtocolMap to now contain a encoding map from client input to protocol msg and a set of legal client inputs.
This commit is contained in:
parent
3f05121925
commit
8f0ccbfa36
@ -1,8 +1,6 @@
|
||||
package ch.unibas.dmi.dbis.cs108.Klassenstruktur;
|
||||
|
||||
import ch.unibas.dmi.dbis.cs108.Multiplayer.Server.ClientHandler;
|
||||
|
||||
import java.net.Socket;
|
||||
import ch.unibas.dmi.dbis.cs108.multiplayer.server.ClientHandler;
|
||||
|
||||
public class GhostPlayer extends Ghost{
|
||||
|
||||
|
||||
@ -1,8 +1,6 @@
|
||||
package ch.unibas.dmi.dbis.cs108.Klassenstruktur;
|
||||
|
||||
import ch.unibas.dmi.dbis.cs108.Multiplayer.Server.ClientHandler;
|
||||
|
||||
import java.net.Socket;
|
||||
import ch.unibas.dmi.dbis.cs108.multiplayer.server.ClientHandler;
|
||||
|
||||
public class HumanPlayer extends Human{
|
||||
/**
|
||||
|
||||
@ -1,8 +1,6 @@
|
||||
package ch.unibas.dmi.dbis.cs108.Klassenstruktur;
|
||||
|
||||
import ch.unibas.dmi.dbis.cs108.Multiplayer.Server.ClientHandler;
|
||||
|
||||
import java.net.Socket;
|
||||
import ch.unibas.dmi.dbis.cs108.multiplayer.server.ClientHandler;
|
||||
|
||||
public class Passenger {
|
||||
protected int position; //the player's Cabin number (0 to 5)
|
||||
|
||||
@ -1,16 +0,0 @@
|
||||
package ch.unibas.dmi.dbis.cs108.Multiplayer.Client;
|
||||
|
||||
import ch.unibas.dmi.dbis.cs108.Multiplayer.Protocol.NightTrainProtocol;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
public class InputToProtocolMap extends HashMap<String, NightTrainProtocol.NTtBCommands> {
|
||||
public InputToProtocolMap(){
|
||||
super();
|
||||
this.put("chat", NightTrainProtocol.NTtBCommands.CHATA);
|
||||
this.put("cn", NightTrainProtocol.NTtBCommands.CUSRN);
|
||||
this.put("list", NightTrainProtocol.NTtBCommands.LISTP);
|
||||
this.put("exit", NightTrainProtocol.NTtBCommands.LEAVG);
|
||||
//TODO extend according to extended function
|
||||
}
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
package ch.unibas.dmi.dbis.cs108.Multiplayer.Client;
|
||||
package ch.unibas.dmi.dbis.cs108.multiplayer.client;
|
||||
|
||||
import java.net.Socket;
|
||||
import java.io.*;
|
||||
@ -1,4 +1,4 @@
|
||||
package ch.unibas.dmi.dbis.cs108.Multiplayer.Client;
|
||||
package ch.unibas.dmi.dbis.cs108.multiplayer.client;
|
||||
|
||||
public class EmptyClientInputException extends Exception {
|
||||
String exceptionMsg;
|
||||
@ -0,0 +1,33 @@
|
||||
package ch.unibas.dmi.dbis.cs108.multiplayer.client;
|
||||
|
||||
import ch.unibas.dmi.dbis.cs108.multiplayer.protocol.NightTrainProtocol;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
|
||||
public class InputToProtocolMap {
|
||||
|
||||
private static final HashMap<String, NightTrainProtocol.NTtBCommands> encoding;
|
||||
private static final HashSet<String> legalClientInput;
|
||||
|
||||
static {
|
||||
//First add all legal commands to a map
|
||||
HashMap<String, NightTrainProtocol.NTtBCommands> builder = new HashMap<>();
|
||||
builder.put("chat", NightTrainProtocol.NTtBCommands.CHATA);
|
||||
builder.put("cn", NightTrainProtocol.NTtBCommands.CUSRN);
|
||||
builder.put("list", NightTrainProtocol.NTtBCommands.LISTP);
|
||||
builder.put("exit", NightTrainProtocol.NTtBCommands.LEAVG);
|
||||
//TODO extend according to extended function
|
||||
//Initialize static final map and set
|
||||
legalClientInput = new HashSet<>(builder.keySet());
|
||||
encoding = new HashMap<>(builder);
|
||||
}
|
||||
|
||||
public static String encode(String toEncode) {
|
||||
if (legalClientInput.contains(toEncode)) {
|
||||
return encoding.get(toEncode).toString();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
package ch.unibas.dmi.dbis.cs108.Multiplayer.Client;
|
||||
package ch.unibas.dmi.dbis.cs108.multiplayer.client;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Scanner;
|
||||
@ -1,4 +1,4 @@
|
||||
package ch.unibas.dmi.dbis.cs108.Multiplayer.Client;
|
||||
package ch.unibas.dmi.dbis.cs108.multiplayer.client;
|
||||
|
||||
public interface ProtocolParser {
|
||||
/**
|
||||
@ -1,4 +1,4 @@
|
||||
package ch.unibas.dmi.dbis.cs108.Multiplayer.helpers;
|
||||
package ch.unibas.dmi.dbis.cs108.multiplayer.helpers;
|
||||
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.IOException;
|
||||
@ -1,4 +1,4 @@
|
||||
package ch.unibas.dmi.dbis.cs108.Multiplayer.helpers;
|
||||
package ch.unibas.dmi.dbis.cs108.multiplayer.helpers;
|
||||
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.IOException;
|
||||
@ -1,4 +1,4 @@
|
||||
package ch.unibas.dmi.dbis.cs108.Multiplayer.Protocol;
|
||||
package ch.unibas.dmi.dbis.cs108.multiplayer.protocol;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.Queue;
|
||||
@ -1,4 +1,4 @@
|
||||
package ch.unibas.dmi.dbis.cs108.Multiplayer.Protocol;
|
||||
package ch.unibas.dmi.dbis.cs108.multiplayer.protocol;
|
||||
|
||||
public interface NTtBInputType {
|
||||
String msg = null;
|
||||
@ -1,4 +1,4 @@
|
||||
package ch.unibas.dmi.dbis.cs108.Multiplayer.Protocol;
|
||||
package ch.unibas.dmi.dbis.cs108.multiplayer.protocol;
|
||||
|
||||
public class NTtBParameter implements NTtBInputType {
|
||||
String parameterValue;
|
||||
@ -1,4 +1,4 @@
|
||||
package ch.unibas.dmi.dbis.cs108.Multiplayer.Protocol;
|
||||
package ch.unibas.dmi.dbis.cs108.multiplayer.protocol;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
@ -1,4 +1,4 @@
|
||||
package ch.unibas.dmi.dbis.cs108.Multiplayer.Protocol;
|
||||
package ch.unibas.dmi.dbis.cs108.multiplayer.protocol;
|
||||
|
||||
public class NoLegalProtocolCommandStringFoundException extends Exception {
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
package ch.unibas.dmi.dbis.cs108.Multiplayer.Protocol;
|
||||
package ch.unibas.dmi.dbis.cs108.multiplayer.protocol;
|
||||
|
||||
public interface ProtocolDecoder {
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
package ch.unibas.dmi.dbis.cs108.Multiplayer.Protocol;
|
||||
package ch.unibas.dmi.dbis.cs108.multiplayer.protocol;
|
||||
|
||||
import java.util.EnumSet;
|
||||
import java.util.HashSet;
|
||||
@ -1,4 +1,4 @@
|
||||
package ch.unibas.dmi.dbis.cs108.Multiplayer.Server;
|
||||
package ch.unibas.dmi.dbis.cs108.multiplayer.server;
|
||||
|
||||
import java.io.*;
|
||||
import java.net.Socket;
|
||||
@ -1,9 +1,9 @@
|
||||
package ch.unibas.dmi.dbis.cs108.Multiplayer.Server;
|
||||
package ch.unibas.dmi.dbis.cs108.multiplayer.server;
|
||||
|
||||
import ch.unibas.dmi.dbis.cs108.Multiplayer.Protocol.NTtBFormatMsg;
|
||||
import ch.unibas.dmi.dbis.cs108.Multiplayer.Protocol.NightTrainProtocol;
|
||||
import ch.unibas.dmi.dbis.cs108.Multiplayer.Protocol.NoLegalProtocolCommandStringFoundException;
|
||||
import ch.unibas.dmi.dbis.cs108.Multiplayer.Protocol.ProtocolDecoder;
|
||||
import ch.unibas.dmi.dbis.cs108.multiplayer.protocol.NTtBFormatMsg;
|
||||
import ch.unibas.dmi.dbis.cs108.multiplayer.protocol.NightTrainProtocol;
|
||||
import ch.unibas.dmi.dbis.cs108.multiplayer.protocol.NoLegalProtocolCommandStringFoundException;
|
||||
import ch.unibas.dmi.dbis.cs108.multiplayer.protocol.ProtocolDecoder;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
@ -43,10 +43,10 @@ public class ClientMsgDecoder implements ProtocolDecoder {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
//assumes not empty list!
|
||||
NightTrainProtocol.NTtBCommands cmd = getCommandConstant(msgTokens.get(0));
|
||||
sb.append("Server msg: ");
|
||||
sb.append("Command *" + cmd.toString() + "* recieved");
|
||||
sb.append("SERVER: ");
|
||||
sb.append("Command *" + cmd.toString() + "* recieved!");
|
||||
|
||||
return null;
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
//Uses the NightTrainProtocol classes utility method
|
||||
@ -1,4 +1,4 @@
|
||||
package ch.unibas.dmi.dbis.cs108.Multiplayer.Server;
|
||||
package ch.unibas.dmi.dbis.cs108.multiplayer.server;
|
||||
|
||||
public class InSessionLogik {
|
||||
Server server;
|
||||
@ -1,4 +1,4 @@
|
||||
package ch.unibas.dmi.dbis.cs108.Multiplayer.Server;
|
||||
package ch.unibas.dmi.dbis.cs108.multiplayer.server;
|
||||
|
||||
public class NoCommandTokenException extends Exception {
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
package ch.unibas.dmi.dbis.cs108.Multiplayer.Server;
|
||||
package ch.unibas.dmi.dbis.cs108.multiplayer.server;
|
||||
|
||||
import java.io.*;
|
||||
import java.net.ServerSocket;
|
||||
@ -1,4 +1,4 @@
|
||||
package ch.unibas.dmi.dbis.cs108.Multiplayer.Server;
|
||||
package ch.unibas.dmi.dbis.cs108.multiplayer.server;
|
||||
|
||||
/**
|
||||
* Implements the communication protocol in the connecting phase.
|
||||
Reference in New Issue
Block a user