From 1af8cee7191e83844dfccef9f3ed408c98c20b7e Mon Sep 17 00:00:00 2001 From: tool4EvEr Date: Thu, 3 Jun 2021 10:39:50 +0200 Subject: [PATCH] Fix crash on payment with Channel --- .../forge/gamemodes/match/input/InputPayMana.java | 12 +++++++----- .../gamemodes/match/input/InputSyncronizedBase.java | 4 ++-- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/forge-gui/src/main/java/forge/gamemodes/match/input/InputPayMana.java b/forge-gui/src/main/java/forge/gamemodes/match/input/InputPayMana.java index 0fe7d9b1fd0..a913181585c 100644 --- a/forge-gui/src/main/java/forge/gamemodes/match/input/InputPayMana.java +++ b/forge-gui/src/main/java/forge/gamemodes/match/input/InputPayMana.java @@ -66,12 +66,14 @@ public abstract class InputPayMana extends InputSyncronizedBase { @Override protected void onStop() { - // Clear current Mana cost being paid for SA - saPaidFor.setManaCostBeingPaid(null); - player.popPaidForSA(); + if (!isFinished()) { + // Clear current Mana cost being paid for SA + saPaidFor.setManaCostBeingPaid(null); + player.popPaidForSA(); - if (wasFloatingMana) { //hide mana pool if it was shown due to floating mana - getController().getGui().hideManaPool(PlayerView.get(player)); + if (wasFloatingMana) { //hide mana pool if it was shown due to floating mana + getController().getGui().hideManaPool(PlayerView.get(player)); + } } } diff --git a/forge-gui/src/main/java/forge/gamemodes/match/input/InputSyncronizedBase.java b/forge-gui/src/main/java/forge/gamemodes/match/input/InputSyncronizedBase.java index df10c4fc797..54fe6a737a7 100644 --- a/forge-gui/src/main/java/forge/gamemodes/match/input/InputSyncronizedBase.java +++ b/forge-gui/src/main/java/forge/gamemodes/match/input/InputSyncronizedBase.java @@ -36,8 +36,6 @@ public abstract class InputSyncronizedBase extends InputBase implements InputSyn } protected final void stop() { - onStop(); - // ensure input won't accept any user actions. FThreads.invokeInEdtNowOrLater(new Runnable() { @Override @@ -46,6 +44,8 @@ public abstract class InputSyncronizedBase extends InputBase implements InputSyn } }); + onStop(); + // thread irrelevant if (getController().getInputQueue().getInput() != null) { getController().getInputQueue().removeInput(InputSyncronizedBase.this);