* Sideboarding: fixed that it possible to auto-submit 40 cards deck instead 60 in constructed formats (#5579);

Sideboarding: fixed that cheated deck with sideboard can be used instead lose the game;
This commit is contained in:
Oleg Agafonov 2019-04-01 07:34:46 +04:00
parent 3dd6836559
commit de4befb9c2
22 changed files with 204 additions and 124 deletions

View file

@ -1,53 +0,0 @@
package mage.server.game;
import mage.cards.decks.DeckValidator;
import org.apache.log4j.Logger;
import java.lang.reflect.Constructor;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
/**
*
* @author BetaSteward_at_googlemail.com
*/
public enum DeckValidatorFactory {
instance;
private static final Logger logger = Logger.getLogger(DeckValidatorFactory.class);
private final Map<String, Class> deckTypes = new LinkedHashMap<>();
private DeckValidatorFactory() {}
public DeckValidator createDeckValidator(String deckType) {
DeckValidator validator;
try {
Constructor<?> con = deckTypes.get(deckType).getConstructor();
validator = (DeckValidator)con.newInstance();
} catch (Exception ex) {
logger.fatal("DeckValidatorFactory error", ex);
return null;
}
logger.debug("Deck validator created: " + validator.getName());
return validator;
}
public Set<String> getDeckTypes() {
return deckTypes.keySet();
}
public void addDeckType(String name, Class deckType) {
if (deckType != null) {
this.deckTypes.put(name, deckType);
}
}
}