From 828359c0bcdbe5fe6e1d8db8a48d51345fc0b350 Mon Sep 17 00:00:00 2001 From: Agetian Date: Sat, 21 Jan 2017 19:20:46 +0000 Subject: [PATCH] - Fixed NPEs in the new prompt input code (we should not assume that SA vars will be filled in at all times). --- .../main/java/forge/match/input/InputConfirm.java | 12 ++++++------ .../java/forge/match/input/InputSelectManyBase.java | 4 +++- .../java/forge/player/PlayerControllerHuman.java | 6 +++--- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/forge-gui/src/main/java/forge/match/input/InputConfirm.java b/forge-gui/src/main/java/forge/match/input/InputConfirm.java index fcb12c04e34..8038d59ceee 100644 --- a/forge-gui/src/main/java/forge/match/input/InputConfirm.java +++ b/forge-gui/src/main/java/forge/match/input/InputConfirm.java @@ -61,8 +61,8 @@ public class InputConfirm extends InputSyncronizedBase { noButtonText = noButtonText0; defaultYes = defaultYes0; result = defaultYes0; - this.sa = null; - this.card = null; + this.sa = null; + this.card = null; } public InputConfirm(final PlayerControllerHuman controller, String message0, SpellAbility sa0) { @@ -80,8 +80,8 @@ public class InputConfirm extends InputSyncronizedBase { noButtonText = noButtonText0; defaultYes = defaultYes0; result = defaultYes0; - this.sa = sa0; - this.card = sa.getView().getHostCard(); + this.sa = sa0; + this.card = sa != null ? sa.getView().getHostCard() : null; } public InputConfirm(final PlayerControllerHuman controller, String message0, CardView card0) { @@ -99,8 +99,8 @@ public class InputConfirm extends InputSyncronizedBase { noButtonText = noButtonText0; defaultYes = defaultYes0; result = defaultYes0; - this.sa = null ; - this.card = card0; + this.sa = null ; + this.card = card0; } /** {@inheritDoc} */ diff --git a/forge-gui/src/main/java/forge/match/input/InputSelectManyBase.java b/forge-gui/src/main/java/forge/match/input/InputSelectManyBase.java index 3cfa4d78a79..29d1d278a7d 100644 --- a/forge-gui/src/main/java/forge/match/input/InputSelectManyBase.java +++ b/forge-gui/src/main/java/forge/match/input/InputSelectManyBase.java @@ -36,7 +36,9 @@ public abstract class InputSelectManyBase extends InputSyn protected InputSelectManyBase(final PlayerControllerHuman controller, final int min, final int max, final SpellAbility sa0) { this(controller,min,max); this.sa = sa0; - this.card = sa0.getView().getHostCard(); + if (sa0 != null) { + this.card = sa0.getView().getHostCard(); + } } protected InputSelectManyBase(final PlayerControllerHuman controller, final int min, final int max, final CardView card0) { diff --git a/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java b/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java index acb6b1b215f..6975cb7fd71 100644 --- a/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java +++ b/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java @@ -1031,9 +1031,9 @@ public class PlayerControllerHuman default: labels = ImmutableList.copyOf(kindOfChoice.toString().split("Or")); } // return getGui().confirm(CardView.get(sa.getHostCard()), question, defaultVal == null || defaultVal.booleanValue(), labels); - final InputConfirm inp = new InputConfirm(this, question, labels.get(0), labels.get(1), defaultVal == null || defaultVal.booleanValue(), sa); - inp.showAndWait(); - return inp.getResult(); + final InputConfirm inp = new InputConfirm(this, question, labels.get(0), labels.get(1), defaultVal == null || defaultVal.booleanValue(), sa); + inp.showAndWait(); + return inp.getResult(); } @Override