From 3bdf5a4ad50f3d173e0eb6a697aa7510ef120a33 Mon Sep 17 00:00:00 2001 From: Maxmtg Date: Thu, 28 Mar 2013 18:20:01 +0000 Subject: [PATCH] discard, even with triggers, won't cause exceptions --- .../java/forge/control/input/InputCleanup.java | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/main/java/forge/control/input/InputCleanup.java b/src/main/java/forge/control/input/InputCleanup.java index a8d30e9e8d2..5e8f98fddbb 100644 --- a/src/main/java/forge/control/input/InputCleanup.java +++ b/src/main/java/forge/control/input/InputCleanup.java @@ -18,6 +18,7 @@ package forge.control.input; import forge.Card; +import forge.FThreads; import forge.Singletons; import forge.game.GameState; import forge.game.player.Player; @@ -74,12 +75,15 @@ public class InputCleanup extends InputBase { /** {@inheritDoc} */ @Override public final void selectCard(final Card card) { - Zone zone = Singletons.getModel().getGame().getZoneOf(card); - if (zone.is(ZoneType.Hand, Singletons.getControl().getPlayer())) { - card.getController().discard(card, null); - if (Singletons.getModel().getGame().getStack().size() == 0) { - this.showMessage(); + Zone zone = game.getZoneOf(card); + if (!zone.is(ZoneType.Hand, Singletons.getControl().getPlayer())) + return; + + FThreads.invokeInNewThread(new Runnable() { + @Override + public void run() { + card.getController().discard(card, null); } - } - } // selectCard() + }, true); + } }