From 491c9cbe04c39d90ae131e5564146f3b1079b9d6 Mon Sep 17 00:00:00 2001 From: Oleg Agafonov Date: Wed, 29 Nov 2023 03:02:47 +0400 Subject: [PATCH] GUI: fixed empty battlefield/players after reconnection, if it still empties then press any skip button (closes #11201) --- .../src/main/java/mage/client/game/GamePanel.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Mage.Client/src/main/java/mage/client/game/GamePanel.java b/Mage.Client/src/main/java/mage/client/game/GamePanel.java index 46be985a45e..aa61e870b35 100644 --- a/Mage.Client/src/main/java/mage/client/game/GamePanel.java +++ b/Mage.Client/src/main/java/mage/client/game/GamePanel.java @@ -632,7 +632,7 @@ public final class GamePanel extends javax.swing.JPanel { } } - public synchronized void init(int messageId, GameView game) { + public synchronized void init(int messageId, GameView game, boolean callGameUpdateAfterInit) { addPlayers(game); // default menu states setMenuStates( @@ -642,7 +642,9 @@ public final class GamePanel extends javax.swing.JPanel { holdingPriority ); - updateGame(messageId, game); + if (callGameUpdateAfterInit) { + updateGame(messageId, game); + } } private void addPlayers(GameView game) { @@ -773,6 +775,12 @@ public final class GamePanel extends javax.swing.JPanel { public synchronized void updateGame(int messageId, GameView game, boolean showPlayable, Map options, Set targets) { keepLastGameData(messageId, game, showPlayable, options, targets); + + if (this.players.isEmpty() && !game.getPlayers().isEmpty()) { + logger.warn("Found empty players list, trying to init game again (possible reason: reconnection)"); + init(messageId, game, false); + } + prepareSelectableView(); updateGame(); }