Fix possible NPE in having a player select from a list.

This commit is contained in:
elcnesh
2014-08-18 13:05:08 +00:00
parent fca084c44e
commit f51e767e6b
2 changed files with 9 additions and 2 deletions

View File

@@ -19,6 +19,7 @@ package forge.ai;
import com.google.common.base.Predicate;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
import forge.ai.ability.ProtectAi;
@@ -1704,6 +1705,10 @@ public class ComputerUtil {
}
public static String chooseSomeType(Player ai, String kindOfType, String logic, List<String> invalidTypes) {
if (invalidTypes == null) {
invalidTypes = ImmutableList.<String>of();
}
final Game game = ai.getGame();
String chosen = "";
if( kindOfType.equals("Card")) {

View File

@@ -588,9 +588,11 @@ public class PlayerControllerHuman extends PlayerController {
* @see forge.game.player.PlayerController#chooseSomeType(java.lang.String, java.lang.String, java.util.List, java.util.List, java.lang.String)
*/
@Override
public String chooseSomeType(String kindOfType, SpellAbility sa, List<String> validTypes, List<String> invalidTypes, boolean isOptional) {
public String chooseSomeType(final String kindOfType, final SpellAbility sa, final List<String> validTypes, List<String> invalidTypes, final boolean isOptional) {
final List<String> types = Lists.newArrayList(validTypes);
Iterables.removeAll(types, invalidTypes);
if (invalidTypes != null && !invalidTypes.isEmpty()) {
Iterables.removeAll(types, invalidTypes);
}
if(isOptional)
return SGuiChoose.oneOrNone("Choose a " + kindOfType.toLowerCase() + " type", types);
else