From 1016decf0728fbe1bfa166906721f4b6e8e8dfb4 Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Tue, 23 Jul 2013 17:23:47 +0200 Subject: [PATCH] Started fixing that match does not end, if player left mage during sideboarding (not finished yet). --- Mage/src/mage/game/Table.java | 10 +++++++--- Mage/src/mage/game/match/MatchImpl.java | 6 +++++- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/Mage/src/mage/game/Table.java b/Mage/src/mage/game/Table.java index b148c5094ab..fb8b5e9984d 100644 --- a/Mage/src/mage/game/Table.java +++ b/Mage/src/mage/game/Table.java @@ -186,9 +186,13 @@ public class Table implements Serializable { for (int i = 0; i < numSeats; i++ ) { Player player = seats[i].getPlayer(); if (player != null && player.getId().equals(playerId)) { - seats[i].setPlayer(null); - if (state == TableState.STARTING) { - state = TableState.WAITING; + if (match != null) { + match.leave(playerId); + } else { + seats[i].setPlayer(null); + if (state == TableState.STARTING) { + state = TableState.WAITING; + } } break; } diff --git a/Mage/src/mage/game/match/MatchImpl.java b/Mage/src/mage/game/match/MatchImpl.java index b12c7f43745..8df1ee07903 100644 --- a/Mage/src/mage/game/match/MatchImpl.java +++ b/Mage/src/mage/game/match/MatchImpl.java @@ -90,7 +90,11 @@ public abstract class MatchImpl implements Match { public boolean leave(UUID playerId) { MatchPlayer mPlayer = getPlayer(playerId); if (mPlayer != null) { - return players.remove(mPlayer); + boolean result = players.remove(mPlayer); + synchronized (this) { + this.notifyAll(); + } + return result; } return false; }