Skip to content

Commit

Permalink
Fixed disconnection issue
Browse files Browse the repository at this point in the history
  • Loading branch information
jberclaz committed Apr 11, 2020
1 parent f8ba656 commit 2ef3fd9
Show file tree
Hide file tree
Showing 9 changed files with 36 additions and 4 deletions.
1 change: 1 addition & 0 deletions src/main/java/com/leflat/jass/client/ClientNetwork.java
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ public boolean isConnected() {
public void disconnect() {
try {
clientSocket.close();
clientSocket = null;
} catch (IOException e) {
e.printStackTrace();
}
Expand Down
8 changes: 7 additions & 1 deletion src/main/java/com/leflat/jass/client/JassFrame.java
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ private void jButtonConnectActionPerformed() {
}
int gameId = myself.connect(dc.name, dc.host, dc.gameId);
if (gameId >= 0) {
jButtonConnect.setText("Déconnexion");
jButtonConnect.setText("Quitter");
setGameId(gameId);
} else {
JOptionPane.showMessageDialog(null, "La connection a échoué.", "Erreur", JOptionPane.ERROR_MESSAGE);
Expand Down Expand Up @@ -292,6 +292,12 @@ public void setAnnouncementEnabled(boolean enable) {
jButtonAnounce.setEnabled(enable);
}

@Override
public void lostServerConnection() {
JOptionPane.showMessageDialog(this, "Le connexion au serveur a échoué. La partie est terminée.", "Serveur déconnecté", JOptionPane.ERROR_MESSAGE);
disconnect();
}

@Override
public boolean hasPlayerAnnounced() {
return announcementPressed;
Expand Down
10 changes: 8 additions & 2 deletions src/main/java/com/leflat/jass/client/JassPlayer.java
Original file line number Diff line number Diff line change
Expand Up @@ -258,6 +258,12 @@ public void playerLeft(BasePlayer player) {
disconnect();
}

@Override
public void lostServerConnection() {
disconnect();
frame.lostServerConnection();
}

@Override
public int connect(String name, String host, int gameId) {
network = networkFactory.getClientNetwork();
Expand All @@ -281,12 +287,12 @@ public int connect(String name, String host, int gameId) {
@Override
public boolean disconnect() {
controller.terminate();
network.disconnect();
try {
controllerThread.join();
controllerThread.join(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
network.disconnect();
controller = null;
controllerThread = null;
return true;
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/leflat/jass/client/RemoteController.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,8 @@ public void run() {
handleControllerMessage(message.split(" "));
} catch (ServerDisconnectedException e) {
e.printStackTrace();
player.lostServerConnection();
running = false;
// TODO: player.serverDisconnected
}
}
System.out.println("Exiting listener ");
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/com/leflat/jass/common/IJassUi.java
Original file line number Diff line number Diff line change
Expand Up @@ -54,5 +54,7 @@ public interface IJassUi {
void canceledGame(int leavingPlayerPosition);

void setAnnouncementEnabled(boolean enable);

void lostServerConnection();
}

2 changes: 2 additions & 0 deletions src/main/java/com/leflat/jass/common/IPlayer.java
Original file line number Diff line number Diff line change
Expand Up @@ -42,4 +42,6 @@ public interface IPlayer {
boolean getNewGame() throws PlayerLeftExpection;

void playerLeft(BasePlayer player) throws PlayerLeftExpection;

void lostServerConnection();
}
5 changes: 5 additions & 0 deletions src/main/java/com/leflat/jass/server/RemotePlayer.java
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,11 @@ public void playerLeft(BasePlayer player) throws PlayerLeftExpection {
network.receiveMessage();
}

@Override
public void lostServerConnection() {

}

private void updatePlayerInfo() throws PlayerLeftExpection {
network.sendMessage(String.valueOf(id));
this.name = network.receiveMessage()[0];
Expand Down
5 changes: 5 additions & 0 deletions src/main/java/com/leflat/jass/test/MockUi.java
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,11 @@ public void setAnnouncementEnabled(boolean enable) {

}

@Override
public void lostServerConnection() {

}

private void waitSec(float seconds) {
if (seconds <= 0) {
return;
Expand Down
5 changes: 5 additions & 0 deletions src/test/java/MockRemotePlayer.java
Original file line number Diff line number Diff line change
Expand Up @@ -134,4 +134,9 @@ public boolean getNewGame() {
public void playerLeft(BasePlayer player) {

}

@Override
public void lostServerConnection() {

}
}

0 comments on commit 2ef3fd9

Please sign in to comment.