Nulls to optional. Also there was bug with AetherChaser "you may pay" was not set to optional

This commit is contained in:
doncarton 2017-02-26 15:15:54 +03:00
parent a46848791c
commit 5eaaa67d1e
5 changed files with 43 additions and 38 deletions

View file

@ -28,14 +28,16 @@
package mage.server.game;
import java.lang.reflect.Constructor;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
import mage.constants.RangeOfInfluence;
import mage.players.Player;
import org.apache.log4j.Logger;
import java.lang.reflect.Constructor;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
/**
*
* @author BetaSteward_at_googlemail.com
@ -53,14 +55,14 @@ public class PlayerFactory {
private PlayerFactory() {}
public Player createPlayer(String playerType, String name, RangeOfInfluence range, int skill) {
public Optional<Player> createPlayer(String playerType, String name, RangeOfInfluence range, int skill) {
try {
Class playerTypeClass = playerTypes.get(playerType);
if (playerTypeClass != null) {
Constructor<?> con = playerTypeClass.getConstructor(String.class, RangeOfInfluence.class, int.class);
Player player = (Player) con.newInstance(name, range, skill);
logger.trace("Player created: " + name + " - " + player.getId());
return player;
return Optional.of(player);
}
else {
logger.fatal("Unknown player type: " + playerType);
@ -68,7 +70,7 @@ public class PlayerFactory {
} catch (Exception ex) {
logger.fatal("PlayerFactory error ", ex);
}
return null;
return Optional.empty();
}
public Set<String> getPlayerTypes() {