mirror of
https://github.com/magefree/mage.git
synced 2025-12-22 03:22:00 -08:00
Some NPE fixing for server and client.
This commit is contained in:
parent
a2e93986bc
commit
9020a287d6
3 changed files with 35 additions and 18 deletions
|
|
@ -192,7 +192,6 @@ public class TournamentPanel extends javax.swing.JPanel {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void update(TournamentView tournament) {
|
public void update(TournamentView tournament) {
|
||||||
|
|
||||||
if (!firstInitDone) {
|
if (!firstInitDone) {
|
||||||
Component c = this.getParent();
|
Component c = this.getParent();
|
||||||
while (c != null && !(c instanceof TournamentPane)) {
|
while (c != null && !(c instanceof TournamentPane)) {
|
||||||
|
|
@ -689,7 +688,7 @@ class UpdateTournamentTask extends SwingWorker<Void, TournamentView> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void process(List<TournamentView> view) {
|
protected void process(List<TournamentView> view) {
|
||||||
if (view != null) { // if user disconnects, view can be null for a short time
|
if (view != null && view.size() > 0) { // if user disconnects, view can be null for a short time
|
||||||
panel.update(view.get(0));
|
panel.update(view.get(0));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,7 @@ import java.util.concurrent.TimeUnit;
|
||||||
import mage.cards.decks.Deck;
|
import mage.cards.decks.Deck;
|
||||||
import mage.constants.ManaType;
|
import mage.constants.ManaType;
|
||||||
import mage.game.Table;
|
import mage.game.Table;
|
||||||
|
import mage.game.tournament.TournamentPlayer;
|
||||||
import mage.interfaces.callback.ClientCallback;
|
import mage.interfaces.callback.ClientCallback;
|
||||||
import mage.players.net.UserData;
|
import mage.players.net.UserData;
|
||||||
import mage.server.draft.DraftSession;
|
import mage.server.draft.DraftSession;
|
||||||
|
|
@ -73,7 +74,7 @@ public class User {
|
||||||
private final Map<UUID, TournamentSession> constructing;
|
private final Map<UUID, TournamentSession> constructing;
|
||||||
private final Map<UUID, Deck> sideboarding;
|
private final Map<UUID, Deck> sideboarding;
|
||||||
private final List<UUID> watchedGames;
|
private final List<UUID> watchedGames;
|
||||||
|
private final ArrayList<UUID> tablesToRemove = new ArrayList<>();
|
||||||
private String sessionId;
|
private String sessionId;
|
||||||
private String info;
|
private String info;
|
||||||
private Date lastActivity;
|
private Date lastActivity;
|
||||||
|
|
@ -365,28 +366,37 @@ public class User {
|
||||||
disconnectInfo = new StringBuilder(" (discon. ").append(getDisconnectDuration()).append(")").toString();
|
disconnectInfo = new StringBuilder(" (discon. ").append(getDisconnectDuration()).append(")").toString();
|
||||||
}
|
}
|
||||||
int draft = 0, match = 0, sideboard = 0, tournament = 0, construct = 0;
|
int draft = 0, match = 0, sideboard = 0, tournament = 0, construct = 0;
|
||||||
|
|
||||||
for (Map.Entry<UUID, Table> tableEntry : tables.entrySet()) {
|
for (Map.Entry<UUID, Table> tableEntry : tables.entrySet()) {
|
||||||
if (tableEntry != null) {
|
if (tableEntry != null) {
|
||||||
Table table = tableEntry.getValue();
|
Table table = tableEntry.getValue();
|
||||||
if (table != null) {
|
if (table != null) {
|
||||||
if (table.isTournament()) {
|
if (table.isTournament()) {
|
||||||
if (!table.getTournament().getPlayer(tableEntry.getKey()).isEliminated()) {
|
if (tableEntry.getKey() != null) {
|
||||||
switch (table.getState()) {
|
TournamentPlayer tournamentPlayer = table.getTournament().getPlayer(tableEntry.getKey());
|
||||||
case CONSTRUCTING:
|
if (tournamentPlayer != null && !tournamentPlayer.isEliminated()) {
|
||||||
construct++;
|
switch (table.getState()) {
|
||||||
break;
|
case CONSTRUCTING:
|
||||||
case DRAFTING:
|
construct++;
|
||||||
draft++;
|
break;
|
||||||
break;
|
case DRAFTING:
|
||||||
case DUELING:
|
draft++;
|
||||||
tournament++;
|
break;
|
||||||
break;
|
case DUELING:
|
||||||
}
|
tournament++;
|
||||||
if (!isConnected()) {
|
break;
|
||||||
table.getTournament().getPlayer(tableEntry.getKey()).setDisconnectInfo(disconnectInfo);
|
}
|
||||||
|
if (!isConnected()) {
|
||||||
|
table.getTournament().getPlayer(tableEntry.getKey()).setDisconnectInfo(disconnectInfo);
|
||||||
|
} else {
|
||||||
|
table.getTournament().getPlayer(tableEntry.getKey()).setDisconnectInfo("");
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
table.getTournament().getPlayer(tableEntry.getKey()).setDisconnectInfo("");
|
tablesToRemove.add(tableEntry.getKey());
|
||||||
|
logger.error(getName() + " tournament player missing - tournamentId:" + table.getId(), null);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
logger.error(getName() + " tournament key missing - tournamentId: " + table.getId(), null);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
switch (table.getState()) {
|
switch (table.getState()) {
|
||||||
|
|
@ -401,6 +411,12 @@ public class User {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (!tablesToRemove.isEmpty()) {
|
||||||
|
for (UUID tableKey : tablesToRemove) {
|
||||||
|
tables.remove(tableKey);
|
||||||
|
}
|
||||||
|
tablesToRemove.clear();
|
||||||
|
}
|
||||||
if (match > 0) {
|
if (match > 0) {
|
||||||
sb.append("Match: ").append(match).append(" ");
|
sb.append("Match: ").append(match).append(" ");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -45,6 +45,8 @@ since 1.3.0-2014-07-19
|
||||||
git log 75eb0bdfdf36ba83dd5a3e2c6a204ceb186c9d5e..HEAD --diff-filter=A --name-status | sed -ne "s/^A[^u]Mage.Sets\/src\/mage\/sets\///p" | sort > added_cards.txt
|
git log 75eb0bdfdf36ba83dd5a3e2c6a204ceb186c9d5e..HEAD --diff-filter=A --name-status | sed -ne "s/^A[^u]Mage.Sets\/src\/mage\/sets\///p" | sort > added_cards.txt
|
||||||
since 1.3.0-2014-07-30
|
since 1.3.0-2014-07-30
|
||||||
git log 69ce53e6e8036bf01bdd090e8785f4d63c486d1e..HEAD --diff-filter=A --name-status | sed -ne "s/^A[^u]Mage.Sets\/src\/mage\/sets\///p" | sort > added_cards.txt
|
git log 69ce53e6e8036bf01bdd090e8785f4d63c486d1e..HEAD --diff-filter=A --name-status | sed -ne "s/^A[^u]Mage.Sets\/src\/mage\/sets\///p" | sort > added_cards.txt
|
||||||
|
since 1.3.0-2014-08-11
|
||||||
|
git log 709dc83ae6fd6778e5b52e5176a978f1c6fda3b7..HEAD --diff-filter=A --name-status | sed -ne "s/^A[^u]Mage.Sets\/src\/mage\/sets\///p" | sort > added_cards.txt
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue