forked from External/mage
* Added check if the deck was modified during sideboarding.
This commit is contained in:
parent
3c6ede7407
commit
0fd72c3010
12 changed files with 166 additions and 112 deletions
|
|
@ -421,12 +421,16 @@ public class TableController {
|
|||
}
|
||||
|
||||
public void updateDeck(UUID userId, DeckCardLists deckList) throws MageException {
|
||||
boolean validDeck;
|
||||
UUID playerId = userPlayerMap.get(userId);
|
||||
if (table.getState() != TableState.SIDEBOARDING && table.getState() != TableState.CONSTRUCTING) {
|
||||
return;
|
||||
}
|
||||
Deck deck = Deck.load(deckList, false, false);
|
||||
updateDeck(userId, playerId, deck);
|
||||
validDeck = updateDeck(userId, playerId, deck);
|
||||
if (!validDeck) {
|
||||
logger.warn(" userId: " + userId + " - Modified deck card list!");
|
||||
}
|
||||
}
|
||||
|
||||
private void submitDeck(UUID userId, UUID playerId, Deck deck) {
|
||||
|
|
@ -439,18 +443,20 @@ public class TableController {
|
|||
}
|
||||
}
|
||||
|
||||
private void updateDeck(UUID userId, UUID playerId, Deck deck) {
|
||||
private boolean updateDeck(UUID userId, UUID playerId, Deck deck) {
|
||||
boolean validDeck = true;
|
||||
if (table.isTournament()) {
|
||||
if (tournament != null) {
|
||||
TournamentManager.instance.updateDeck(tournament.getId(), playerId, deck);
|
||||
validDeck = TournamentManager.instance.updateDeck(tournament.getId(), playerId, deck);
|
||||
} else {
|
||||
logger.fatal("Tournament == null table: " + table.getId() + " userId: " + userId);
|
||||
}
|
||||
} else if (TableState.SIDEBOARDING == table.getState()) {
|
||||
match.updateDeck(playerId, deck);
|
||||
validDeck = match.updateDeck(playerId, deck);
|
||||
} else {
|
||||
// deck was meanwhile submitted so the autoupdate can be ignored
|
||||
}
|
||||
return validDeck;
|
||||
}
|
||||
|
||||
public boolean watchTable(UUID userId) {
|
||||
|
|
@ -472,13 +478,6 @@ public class TableController {
|
|||
}
|
||||
}
|
||||
|
||||
// public boolean replayTable(UUID userId) {
|
||||
// if (table.getState() != TableState.FINISHED) {
|
||||
// return false;
|
||||
// }
|
||||
// ReplayManager.instance.replayGame(table.getId(), userId);
|
||||
// return true;
|
||||
// }
|
||||
private Optional<Player> createPlayer(String name, PlayerType playerType, int skill) {
|
||||
Optional<Player> playerOpt;
|
||||
if (options == null) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue