Advertisement
fjboc

Player.java and Client.java

Apr 21st, 2019
26
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.91 KB | None | 0 0
  1. //Had to put them together, cause I'm only allowed to upload 10 Pastebins, sorry :(
  2. //Player.java
  3. import java.io.Serializable;
  4.  
  5. public class Player implements Serializable {
  6.     private static final long serialVersionUID = -609782790104205505L;
  7.     public String name;
  8.     public byte index;
  9.    
  10.     public Player(String name, byte index) {
  11.         this.name = name;
  12.         this.index = index;
  13.     }
  14. }
  15.  
  16. //Client.java
  17. import java.io.IOException;
  18. import java.io.InputStream;
  19. import java.io.ObjectInputStream;
  20. import java.net.InetSocketAddress;
  21. import java.net.Socket;
  22. import java.util.ArrayList;
  23. import java.util.regex.Pattern;
  24.  
  25. import Code;
  26. import Commands;
  27. import DataReader;
  28. import Player;
  29.  
  30. @SuppressWarnings("unused")
  31. public class Client {
  32.     public static Socket socket = new Socket();
  33.    
  34.     private int loops = 0;
  35.     private int maxLoops = 10;
  36.     private static boolean killThread = false;
  37.     private boolean receivedPacketData = false;
  38.     private String lastCommandReceived;
  39.     private static Code lastCommandSent;
  40.     private static Player playerData = new Player("Hans123", (byte) 0);
  41.    
  42.     private String ip;
  43.     private int port;
  44.     private static byte maxPlayers;
  45.     private static byte connectedPlayers;
  46.     private static byte board;
  47.    
  48.     private static ArrayList<Player> playersData;
  49.     private ArrayList<String> players = new ArrayList<String>();
  50.     private ArrayList<Byte> playerIndex = new ArrayList<Byte>();
  51.    
  52.     public Client(String receivedIp, String receivedPort) {
  53.         ip = receivedIp;
  54.         port = Integer.parseInt(receivedPort);
  55.         startGame();
  56.         try {
  57.             System.out.println("Trying to connect to Server...");
  58.             socket.connect(new InetSocketAddress(ip, port));
  59.             System.out.println("Connected!");
  60.         } catch (IOException e) {
  61.             System.out.println("Error occurred while trying to connect to Server.");
  62.         }
  63.        
  64.         loopWaitForData();
  65.     }
  66.    
  67.     public static void main(String[] args) {
  68.         Client objConnectTest = new Client("localhost", "26121");
  69.     }
  70.    
  71.     public void startGame() {
  72.         System.out.println("Game is starting");
  73.         Thread thread = new Thread(new GameMultiPlayer(ip, port));
  74.     }
  75.  
  76.     public void loopWaitForData() {
  77.         while (!killThread) {
  78.             System.out.println(maxLoops + ", " + loops);
  79.             if (maxLoops - loops > 0) {
  80.                 try {
  81.                     waitForData();
  82.                 } catch (IOException | ClassNotFoundException e) {
  83.                     loops = loops + 1;
  84.                     try {
  85.                         Thread.sleep(2000);
  86.                     } catch (InterruptedException e1) {
  87.                        
  88.                     }
  89.                     System.out.println("Error occurred while waiting for Data. Thread disconnected? Waiting for more Data from " + Thread.currentThread());
  90.                     loopWaitForData();
  91.                 }
  92.             } else if (maxLoops - loops == 0){
  93.                 System.out.println("Error occurred while waiting for Data. Maximum trys reached. Disbanding connection to " + Thread.currentThread());
  94.                 try {
  95.                     socket.close();
  96.                 } catch (IOException e) {
  97.                     System.out.println("Failed to close Socket " + Thread.currentThread());
  98.                 }
  99.                 loops = loops + 1;
  100.             } else {
  101.                 System.out.println("Closing Thread..." + Thread.currentThread());
  102.                 setKillThread(true);
  103.             }
  104.         }
  105.     }
  106.    
  107.     public void waitForData() throws IOException, ClassNotFoundException {
  108.         InputStream input = socket.getInputStream();
  109.         ObjectInputStream inputObject = new ObjectInputStream(input);
  110.         Code code;
  111.         System.out.println("Waiting for Data...");
  112.         while ((code = (Code) inputObject.readObject()) != null) {
  113.             System.out.println("Received Data...");
  114.             System.out.println("Input received: " + code);
  115.             System.out.println("Code received: " + code.getCode());
  116.            
  117.             if (code.returnData()) {
  118.                 System.out.println("Contains Data");
  119.             }
  120.             //Commands objCommands = new Commands(); TODO
  121.             //desc = objCommands.getDatabaseServer(string);
  122.             //System.out.println(desc);
  123.            
  124.             Commands.execCodeClient(code.getCode());
  125.             return;
  126.         }
  127.     }
  128.  
  129.     public static void setGameData(Code objectData) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
  130.         String string = DataReader.readData(objectData);
  131.         System.out.println(DataReader.readData(objectData));
  132.         String[] seperator = string.split(Pattern.quote(";"));
  133.         maxPlayers = Byte.parseByte(seperator[0]);
  134.         connectedPlayers = Byte.parseByte(seperator[1]);
  135.         board = Byte.parseByte(seperator[2]);
  136.         System.out.println(maxPlayers + ", " + connectedPlayers + ", " + board);
  137.     }
  138.  
  139.     public static void setPlayersData(ArrayList<Player> playersData) {
  140.         Client.playersData = playersData;
  141.     }
  142.  
  143.     public Code getLastCommandSent() {
  144.         return lastCommandSent;
  145.     }
  146.  
  147.     public static void setLastCommandSent(Code lastCommandSent) {
  148.         Client.lastCommandSent = lastCommandSent;
  149.     }
  150.  
  151.     public static void setKillThread(boolean killThread) {
  152.         Client.killThread = killThread;
  153.     }
  154.  
  155.     public static Player getPlayerData() {
  156.         return playerData;
  157.     }
  158.  
  159.     public static void setPlayerData(Player playerData) {
  160.         Client.playerData = playerData;
  161.     }
  162. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement