58 lines
1.3 KiB
Java
58 lines
1.3 KiB
Java
package network.client;
|
|
|
|
import java.io.IOException;
|
|
import java.net.UnknownHostException;
|
|
import java.util.Random;
|
|
|
|
import common.Signal;
|
|
import game.Game;
|
|
import game.Player;
|
|
import network.protocol.packets.LoginPacket;
|
|
|
|
public class Client {
|
|
private final ClientConnexion clientConnection;
|
|
private final Game game;
|
|
|
|
public final Signal onConnect = new Signal();
|
|
public final Signal onDisconnect = new Signal();
|
|
public final Signal onClosed = new Signal();
|
|
public final Signal onGameStarted = new Signal();
|
|
|
|
String disconnectReason = null;
|
|
|
|
public Client(String address, short port) throws UnknownHostException, IOException {
|
|
this.clientConnection = new ClientConnexion(address, port, this);
|
|
this.game = new Game();
|
|
// temp
|
|
Random r = new Random();
|
|
login("Player" + r.nextInt());
|
|
}
|
|
|
|
public void login(String pseudo) {
|
|
System.out.println("Logging in with pseudo " + pseudo + " ...");
|
|
this.clientConnection.sendPacket(new LoginPacket(pseudo));
|
|
}
|
|
|
|
public void stop() {
|
|
this.clientConnection.close();
|
|
}
|
|
|
|
public void addPlayer(Player player) {
|
|
this.game.addPlayer(player);
|
|
}
|
|
|
|
public Game getGame() {
|
|
return game;
|
|
}
|
|
|
|
public String getDisconnectReason() {
|
|
return disconnectReason;
|
|
}
|
|
|
|
public void forceDisconnect() {
|
|
this.onClosed.emit();
|
|
stop();
|
|
}
|
|
|
|
}
|