From 0b9d254e1251dbde1aef69e065429b5e22fa76f9 Mon Sep 17 00:00:00 2001 From: Maxmtg Date: Sat, 7 Dec 2013 23:12:37 +0000 Subject: [PATCH] fix NPE caused by null predicate --- .../ability/effects/ChooseCardNameEffect.java | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/forge-gui/src/main/java/forge/game/ability/effects/ChooseCardNameEffect.java b/forge-gui/src/main/java/forge/game/ability/effects/ChooseCardNameEffect.java index 5b5b811d3d1..eef08a3f097 100644 --- a/forge-gui/src/main/java/forge/game/ability/effects/ChooseCardNameEffect.java +++ b/forge-gui/src/main/java/forge/game/ability/effects/ChooseCardNameEffect.java @@ -85,25 +85,20 @@ public class ChooseCardNameEffect extends SpellAbilityEffect { if (p.isHuman()) { final String message = validDesc.equals("card") ? "Name a card" : "Name a " + validDesc + " card."; - Predicate cpp = null; - - - if ( StringUtils.containsIgnoreCase(valid, "nonland") ) - { + Predicate cpp = Predicates.alwaysTrue(); + if ( StringUtils.containsIgnoreCase(valid, "nonland") ) { cpp = Predicates.compose(CardRulesPredicates.Presets.IS_NON_LAND, PaperCard.FN_GET_RULES); } - if ( StringUtils.containsIgnoreCase(valid, "nonbasic") ) - { + if ( StringUtils.containsIgnoreCase(valid, "nonbasic") ) { cpp = Predicates.compose(Predicates.not(CardRulesPredicates.Presets.IS_BASIC_LAND), PaperCard.FN_GET_RULES); } - if ( StringUtils.containsIgnoreCase(valid, "noncreature") ) - { + + if ( StringUtils.containsIgnoreCase(valid, "noncreature") ) { cpp = Predicates.compose(Predicates.not(CardRulesPredicates.Presets.IS_CREATURE), PaperCard.FN_GET_RULES); - } - else if ( StringUtils.containsIgnoreCase(valid, "creature") ) - { + } else if ( StringUtils.containsIgnoreCase(valid, "creature") ) { cpp = Predicates.compose(CardRulesPredicates.Presets.IS_CREATURE, PaperCard.FN_GET_RULES); } + PaperCard cp = p.getController().chooseSinglePaperCard(sa, message, cpp, sa.getSourceCard().getName()); Card instanceForPlayer = Card.fromPaperCard(cp, p); // the Card instance for test needs a game to be tested