From 8f7dad17ce8846238b000ce6410209d7f9215ba7 Mon Sep 17 00:00:00 2001 From: tool4EvEr Date: Thu, 21 Jan 2021 23:06:17 +0100 Subject: [PATCH 1/2] Prevent infinite error msg loop --- .../src/main/java/forge/screens/home/VLobby.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/VLobby.java b/forge-gui-desktop/src/main/java/forge/screens/home/VLobby.java index efe8a075a92..07704e1cac0 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/VLobby.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/VLobby.java @@ -524,6 +524,10 @@ public class VLobby implements ILobbyView { final FDeckChooser mainChooser = getDeckChooser(playerIndex); final DeckType type = mainChooser.getSelectedDeckType(); final Deck deck = mainChooser.getDeck(); + // something went wrong, clear selection to prevent error loop + if (deck == null) { + mainChooser.getLstDecks().setSelectedIndex(0); + } final Collection selectedDecks = mainChooser.getLstDecks().getSelectedItems(); if (playerIndex < activePlayersNum && lobby.mayEdit(playerIndex)) { final String text = type.toString() + ": " + Lang.joinHomogenous(selectedDecks, DeckProxy.FN_GET_NAME); From 87542521f18319951c293a2237ae1dcc0168daed Mon Sep 17 00:00:00 2001 From: tool4EvEr Date: Thu, 21 Jan 2021 23:37:33 +0100 Subject: [PATCH 2/2] Fix crash --- .../src/main/java/forge/screens/home/VLobby.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/VLobby.java b/forge-gui-desktop/src/main/java/forge/screens/home/VLobby.java index 07704e1cac0..fa7cbc7bb12 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/VLobby.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/VLobby.java @@ -28,6 +28,7 @@ import forge.util.Lang; import forge.util.Localizer; import forge.util.NameGenerator; import forge.util.gui.SOptionPane; +import forge.view.FView; import net.miginfocom.swing.MigLayout; import javax.swing.*; @@ -517,6 +518,11 @@ public class VLobby implements ILobbyView { } private void selectMainDeck(final int playerIndex) { + // not fully done loading yet, avoid any changes + if (FView.SINGLETON_INSTANCE.getSplash() != null) { + return; + } + if (hasVariant(GameType.Commander) || hasVariant(GameType.Oathbreaker) || hasVariant(GameType.TinyLeaders) || hasVariant(GameType.Brawl)) { // These game types use specific deck panel return;