From 07adaa06ab61f3fc5ba953f2e1e830c7fc931584 Mon Sep 17 00:00:00 2001 From: Jeff <jeff@delmarus.com> Date: Mon, 25 Mar 2019 11:02:37 -0500 Subject: [PATCH] - Fixed #5654 --- .../common/PlayersAttackedThisTurnWatcher.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/Mage/src/main/java/mage/watchers/common/PlayersAttackedThisTurnWatcher.java b/Mage/src/main/java/mage/watchers/common/PlayersAttackedThisTurnWatcher.java index 9587c7001d..09d584dead 100644 --- a/Mage/src/main/java/mage/watchers/common/PlayersAttackedThisTurnWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/PlayersAttackedThisTurnWatcher.java @@ -27,11 +27,11 @@ public class PlayersAttackedThisTurnWatcher extends Watcher { super(watcher); for (Map.Entry<UUID, PlayerList> entry : watcher.playersAttackedThisTurn.entrySet()) { - this.playersAttackedThisTurn.put(entry.getKey(), entry.getValue()); + this.playersAttackedThisTurn.putIfAbsent(entry.getKey(), entry.getValue()); } for (Map.Entry<UUID, PlayerList> entry : watcher.opponentsAttackedThisTurn.entrySet()) { - this.opponentsAttackedThisTurn.put(entry.getKey(), entry.getValue()); + this.opponentsAttackedThisTurn.putIfAbsent(entry.getKey(), entry.getValue()); } } @@ -55,10 +55,11 @@ public class PlayersAttackedThisTurnWatcher extends Watcher { playersAttacked = new PlayerList(); } UUID playerDefender = game.getCombat().getDefendingPlayerId(event.getSourceId(), game); - if (playerDefender != null) { + if (playerDefender != null + && !playersAttacked.contains(playerDefender)) { playersAttacked.add(playerDefender); } - playersAttackedThisTurn.put(event.getPlayerId(), playersAttacked); + playersAttackedThisTurn.putIfAbsent(event.getPlayerId(), playersAttacked); // opponents PlayerList opponentsAttacked = opponentsAttackedThisTurn.get(event.getPlayerId()); @@ -66,10 +67,12 @@ public class PlayersAttackedThisTurnWatcher extends Watcher { opponentsAttacked = new PlayerList(); } UUID opponentDefender = game.getCombat().getDefendingPlayerId(event.getSourceId(), game); - if (opponentDefender != null && game.getOpponents(event.getPlayerId()).contains(opponentDefender)) { + if (opponentDefender != null + && game.getOpponents(event.getPlayerId()).contains(opponentDefender) + && !opponentsAttacked.contains(opponentDefender)) { opponentsAttacked.add(opponentDefender); } - opponentsAttackedThisTurn.put(event.getPlayerId(), opponentsAttacked); + opponentsAttackedThisTurn.putIfAbsent(event.getPlayerId(), opponentsAttacked); } }