forked from External/mage
Introducing Optionals
This commit is contained in:
parent
97261fdcca
commit
f98afdf4ad
21 changed files with 407 additions and 483 deletions
|
|
@ -27,9 +27,6 @@
|
|||
*/
|
||||
package mage.server.tournament;
|
||||
|
||||
import java.util.Map.Entry;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import mage.MageException;
|
||||
import mage.cards.decks.Deck;
|
||||
import mage.constants.TableState;
|
||||
|
|
@ -47,11 +44,7 @@ import mage.game.tournament.MultiplayerRound;
|
|||
import mage.game.tournament.Tournament;
|
||||
import mage.game.tournament.TournamentPairing;
|
||||
import mage.game.tournament.TournamentPlayer;
|
||||
import mage.server.ChatManager;
|
||||
import mage.server.TableController;
|
||||
import mage.server.TableManager;
|
||||
import mage.server.User;
|
||||
import mage.server.UserManager;
|
||||
import mage.server.*;
|
||||
import mage.server.draft.DraftController;
|
||||
import mage.server.draft.DraftManager;
|
||||
import mage.server.draft.DraftSession;
|
||||
|
|
@ -63,8 +56,12 @@ import mage.view.ChatMessage.SoundToPlay;
|
|||
import mage.view.TournamentView;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author BetaSteward_at_googlemail.com
|
||||
*/
|
||||
public class TournamentController {
|
||||
|
|
@ -159,10 +156,9 @@ public class TournamentController {
|
|||
UUID playerId = userPlayerMap.get(userId);
|
||||
if (playerId == null) {
|
||||
if (logger.isDebugEnabled()) {
|
||||
User user = UserManager.getInstance().getUser(userId);
|
||||
if (user != null) {
|
||||
logger.debug(user.getName() + " shows tournament panel tournamentId: " + tournament.getId());
|
||||
}
|
||||
UserManager.getInstance().getUser(userId).ifPresent(user ->
|
||||
logger.debug(user.getName() + " shows tournament panel tournamentId: " + tournament.getId()));
|
||||
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
|
@ -173,8 +169,9 @@ public class TournamentController {
|
|||
// first join of player
|
||||
TournamentSession tournamentSession = new TournamentSession(tournament, userId, tableId, playerId);
|
||||
tournamentSessions.put(playerId, tournamentSession);
|
||||
User user = UserManager.getInstance().getUser(userId);
|
||||
if (user != null) {
|
||||
Optional<User> _user = UserManager.getInstance().getUser(userId);
|
||||
if (_user.isPresent()) {
|
||||
User user = _user.get();
|
||||
user.addTournament(playerId, tournament.getId());
|
||||
TournamentPlayer player = tournament.getPlayer(playerId);
|
||||
player.setJoined();
|
||||
|
|
@ -302,7 +299,7 @@ public class TournamentController {
|
|||
}
|
||||
|
||||
private void initTournament() {
|
||||
if (TableManager.getInstance().getTable(tableId).getState()!=TableState.DUELING) {
|
||||
if (TableManager.getInstance().getTable(tableId).getState() != TableState.DUELING) {
|
||||
TableManager.getInstance().initTournament(tableId);
|
||||
}
|
||||
}
|
||||
|
|
@ -311,7 +308,7 @@ public class TournamentController {
|
|||
if (tournamentSessions.containsKey(playerId)) {
|
||||
TournamentSession tournamentSession = tournamentSessions.get(playerId);
|
||||
tournamentSession.construct(timeout);
|
||||
UserManager.getInstance().getUser(getPlayerUserId(playerId)).addConstructing(playerId, tournamentSession);
|
||||
UserManager.getInstance().getUser(getPlayerUserId(playerId)).get().addConstructing(playerId, tournamentSession);
|
||||
TournamentPlayer player = tournament.getPlayer(playerId);
|
||||
player.setState(TournamentPlayerState.CONSTRUCTING);
|
||||
}
|
||||
|
|
@ -340,10 +337,9 @@ public class TournamentController {
|
|||
tournament.autoSubmit(userPlayerMap.get(userId), tournamentPlayer.generateDeck());
|
||||
} else {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
User user = UserManager.getInstance().getUser(userId);
|
||||
if (user != null) {
|
||||
sb.append(user.getName());
|
||||
}
|
||||
UserManager.getInstance().getUser(userId).ifPresent(user ->
|
||||
sb.append(user.getName()));
|
||||
|
||||
sb.append(" - no deck found for auto submit");
|
||||
logger.fatal(sb);
|
||||
tournamentPlayer.setEliminated();
|
||||
|
|
@ -385,7 +381,7 @@ public class TournamentController {
|
|||
// quit active matches of that tournament
|
||||
TableManager.getInstance().userQuitTournamentSubTables(tournament.getId(), userId);
|
||||
status = TourneyQuitStatus.DURING_ROUND;
|
||||
} else if (tournamentPlayer.getState()==TournamentPlayerState.DRAFTING) {
|
||||
} else if (tournamentPlayer.getState() == TournamentPlayerState.DRAFTING) {
|
||||
info = "during Draft phase";
|
||||
if (!checkToReplaceDraftPlayerByAi(userId, tournamentPlayer)) {
|
||||
this.abortDraftTournament();
|
||||
|
|
@ -399,7 +395,7 @@ public class TournamentController {
|
|||
}
|
||||
}
|
||||
status = TourneyQuitStatus.DURING_DRAFTING;
|
||||
} else if (tournamentPlayer.getState()==TournamentPlayerState.CONSTRUCTING) {
|
||||
} else if (tournamentPlayer.getState() == TournamentPlayerState.CONSTRUCTING) {
|
||||
info = "during Construction phase";
|
||||
status = TourneyQuitStatus.DURING_CONSTRUCTION;
|
||||
} else {
|
||||
|
|
@ -424,17 +420,17 @@ public class TournamentController {
|
|||
// replace player that quits with draft bot
|
||||
if (humans > 1) {
|
||||
String replacePlayerName = "Draftbot";
|
||||
User user = UserManager.getInstance().getUser(userId);
|
||||
Optional<User> user = UserManager.getInstance().getUser(userId);
|
||||
TableController tableController = TableManager.getInstance().getController(tableId);
|
||||
if (tableController != null) {
|
||||
if (user != null) {
|
||||
replacePlayerName = "Draftbot (" + user.getName() + ")";
|
||||
if (user.isPresent()) {
|
||||
replacePlayerName = "Draftbot (" + user.get().getName() + ")";
|
||||
}
|
||||
tableController.replaceDraftPlayer(leavingPlayer.getPlayer(), replacePlayerName, "Computer - draftbot", 5);
|
||||
if (user != null) {
|
||||
user.removeDraft(leavingPlayer.getPlayer().getId());
|
||||
user.removeTable(leavingPlayer.getPlayer().getId());
|
||||
user.removeTournament(leavingPlayer.getPlayer().getId());
|
||||
if (user.isPresent()) {
|
||||
user.get().removeDraft(leavingPlayer.getPlayer().getId());
|
||||
user.get().removeTable(leavingPlayer.getPlayer().getId());
|
||||
user.get().removeTournament(leavingPlayer.getPlayer().getId());
|
||||
}
|
||||
ChatManager.getInstance().broadcast(chatId, "", leavingPlayer.getPlayer().getLogName() + " was replaced by draftbot", MessageColor.BLACK, true, MessageType.STATUS, null);
|
||||
}
|
||||
|
|
@ -501,8 +497,8 @@ public class TournamentController {
|
|||
if (tournamentPlayer != null) {
|
||||
if (!tournamentPlayer.hasQuit()) {
|
||||
if (tournamentPlayer.getPlayer().isHuman()) {
|
||||
User user = UserManager.getInstance().getUser(entry.getKey());
|
||||
if (user == null) {
|
||||
Optional<User> user = UserManager.getInstance().getUser(entry.getKey());
|
||||
if (!user.isPresent()) {
|
||||
logger.debug("Tournament user is missing but player active -> start quit - tournamentId: " + tournament.getId() + " state: " + tableState.toString());
|
||||
// active tournament player but the user is no longer online
|
||||
quit(entry.getKey());
|
||||
|
|
@ -523,7 +519,7 @@ public class TournamentController {
|
|||
}
|
||||
}
|
||||
}
|
||||
if (activePlayers < 2 && tableState!=TableState.WAITING) {
|
||||
if (activePlayers < 2 && tableState != TableState.WAITING) {
|
||||
logger.debug("Tournament has less than 2 active players - tournamentId: " + tournament.getId() + " state: " + tableState.toString());
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue