mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 11:18:01 +00:00
Fix possible NPE in having a player select from a list.
This commit is contained in:
@@ -19,6 +19,7 @@ package forge.ai;
|
|||||||
|
|
||||||
import com.google.common.base.Predicate;
|
import com.google.common.base.Predicate;
|
||||||
import com.google.common.collect.ArrayListMultimap;
|
import com.google.common.collect.ArrayListMultimap;
|
||||||
|
import com.google.common.collect.ImmutableList;
|
||||||
import com.google.common.collect.Iterables;
|
import com.google.common.collect.Iterables;
|
||||||
|
|
||||||
import forge.ai.ability.ProtectAi;
|
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) {
|
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();
|
final Game game = ai.getGame();
|
||||||
String chosen = "";
|
String chosen = "";
|
||||||
if( kindOfType.equals("Card")) {
|
if( kindOfType.equals("Card")) {
|
||||||
|
|||||||
@@ -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)
|
* @see forge.game.player.PlayerController#chooseSomeType(java.lang.String, java.lang.String, java.util.List, java.util.List, java.lang.String)
|
||||||
*/
|
*/
|
||||||
@Override
|
@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);
|
final List<String> types = Lists.newArrayList(validTypes);
|
||||||
Iterables.removeAll(types, invalidTypes);
|
if (invalidTypes != null && !invalidTypes.isEmpty()) {
|
||||||
|
Iterables.removeAll(types, invalidTypes);
|
||||||
|
}
|
||||||
if(isOptional)
|
if(isOptional)
|
||||||
return SGuiChoose.oneOrNone("Choose a " + kindOfType.toLowerCase() + " type", types);
|
return SGuiChoose.oneOrNone("Choose a " + kindOfType.toLowerCase() + " type", types);
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in New Issue
Block a user