From 713a7ab35dc58966df02f0aa0584719b4e68757b Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Fri, 15 May 2020 20:51:42 -0400 Subject: [PATCH] fixed a null pointer exception when multiple players discard --- .../effects/common/discard/DiscardEachPlayerEffect.java | 3 +-- Mage/src/main/java/mage/players/PlayerImpl.java | 5 ++++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Mage/src/main/java/mage/abilities/effects/common/discard/DiscardEachPlayerEffect.java b/Mage/src/main/java/mage/abilities/effects/common/discard/DiscardEachPlayerEffect.java index 92bf3876449..7fee7da644d 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/discard/DiscardEachPlayerEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/discard/DiscardEachPlayerEffect.java @@ -103,8 +103,7 @@ public class DiscardEachPlayerEffect extends OneShotEffect { if (player == null) { continue; } - Cards cardsPlayer = cardsToDiscard.get(playerId); - player.discard(cardsPlayer, source, game); + player.discard(cardsToDiscard.get(playerId), source, game); } return true; } diff --git a/Mage/src/main/java/mage/players/PlayerImpl.java b/Mage/src/main/java/mage/players/PlayerImpl.java index f7ff8422b18..305199185a8 100644 --- a/Mage/src/main/java/mage/players/PlayerImpl.java +++ b/Mage/src/main/java/mage/players/PlayerImpl.java @@ -721,6 +721,9 @@ public abstract class PlayerImpl implements Player, Serializable { @Override public Cards discard(Cards cards, Ability source, Game game) { Cards discardedCards = new CardsImpl(); + if (cards == null) { + return discardedCards; + } for (Card card : cards.getCards(game)) { if (doDiscard(card, source, game, false)) { discardedCards.add(card); @@ -4005,7 +4008,7 @@ public abstract class PlayerImpl implements Player, Serializable { for (Card card : cards) { if (card instanceof Permanent) { game.getBattlefield().removePermanent(card.getId()); - ZoneChangeEvent event = new ZoneChangeEvent((Permanent)card, + ZoneChangeEvent event = new ZoneChangeEvent((Permanent) card, (source == null ? null : source.getSourceId()), byOwner ? card.getOwnerId() : getId(), Zone.BATTLEFIELD, Zone.OUTSIDE, appliedEffects); game.fireEvent(event);