From 945b60c8d062c985f5e799a3fab44df44dd1634b Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Fri, 25 Mar 2022 21:16:38 -0400 Subject: [PATCH] fixed some NPE issues with player target choosing --- .../Mage.Player.Human/src/mage/player/human/HumanPlayer.java | 2 +- Mage.Sets/src/mage/cards/d/DrafnasRestoration.java | 2 +- Mage/src/main/java/mage/target/common/TargetCardInHand.java | 4 ++-- .../mage/target/common/TargetCardInOpponentsGraveyard.java | 4 ++-- .../java/mage/target/common/TargetCardInYourGraveyard.java | 4 ++-- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Mage.Server.Plugins/Mage.Player.Human/src/mage/player/human/HumanPlayer.java b/Mage.Server.Plugins/Mage.Player.Human/src/mage/player/human/HumanPlayer.java index 65aef6c1d05..e87e4aa3a0c 100644 --- a/Mage.Server.Plugins/Mage.Player.Human/src/mage/player/human/HumanPlayer.java +++ b/Mage.Server.Plugins/Mage.Player.Human/src/mage/player/human/HumanPlayer.java @@ -535,7 +535,7 @@ public class HumanPlayer extends PlayerImpl { updateGameStatePriority("choose(5)", game); prepareForResponse(game); if (!isExecutingMacro()) { - game.fireSelectTargetEvent(getId(), new MessageToClient(target.getMessage(), getRelatedObjectName(source.getSourceId(), game)), targetIds, required, getOptions(target, options)); + game.fireSelectTargetEvent(getId(), new MessageToClient(target.getMessage(), getRelatedObjectName(source, game)), targetIds, required, getOptions(target, options)); } waitForResponse(game); diff --git a/Mage.Sets/src/mage/cards/d/DrafnasRestoration.java b/Mage.Sets/src/mage/cards/d/DrafnasRestoration.java index 24ce96f52ba..d6b080002e3 100644 --- a/Mage.Sets/src/mage/cards/d/DrafnasRestoration.java +++ b/Mage.Sets/src/mage/cards/d/DrafnasRestoration.java @@ -67,7 +67,7 @@ class DrafnasRestorationTarget extends TargetCardInGraveyard { Player targetPlayer = game.getPlayer(((StackObject) object).getStackAbility().getFirstTarget()); if (targetPlayer != null) { for (Card card : targetPlayer.getGraveyard().getCards(filter, sourceControllerId, source, game)) { - if (source.getSourceId() == null || isNotTarget() || !game.replaceEvent(new TargetEvent(card, source.getSourceId(), sourceControllerId))) { + if (source == null || source.getSourceId() == null || isNotTarget() || !game.replaceEvent(new TargetEvent(card, source.getSourceId(), sourceControllerId))) { possibleTargets.add(card.getId()); } } diff --git a/Mage/src/main/java/mage/target/common/TargetCardInHand.java b/Mage/src/main/java/mage/target/common/TargetCardInHand.java index 98211eeaa12..e0622f1146f 100644 --- a/Mage/src/main/java/mage/target/common/TargetCardInHand.java +++ b/Mage/src/main/java/mage/target/common/TargetCardInHand.java @@ -61,7 +61,7 @@ public class TargetCardInHand extends TargetCard { Player player = game.getPlayer(sourceControllerId); if (player != null) { for (Card card : player.getHand().getCards(filter, sourceControllerId, source, game)) { - if (source.getSourceId() == null || isNotTarget() || !game.replaceEvent(new TargetEvent(card, source.getSourceId(), sourceControllerId))) { + if (source == null || source.getSourceId() == null || isNotTarget() || !game.replaceEvent(new TargetEvent(card, source.getSourceId(), sourceControllerId))) { possibleTargets.add(card.getId()); } } @@ -75,7 +75,7 @@ public class TargetCardInHand extends TargetCard { Player player = game.getPlayer(sourceControllerId); if (player != null) { for (Card card : player.getHand().getCards(filter, sourceControllerId, source, game)) { - if (source.getSourceId() == null || isNotTarget() || !game.replaceEvent(new TargetEvent(card, source.getSourceId(), sourceControllerId))) { + if (source == null || source.getSourceId() == null || isNotTarget() || !game.replaceEvent(new TargetEvent(card, source.getSourceId(), sourceControllerId))) { possibleTargets++; if (possibleTargets >= this.minNumberOfTargets) { return true; diff --git a/Mage/src/main/java/mage/target/common/TargetCardInOpponentsGraveyard.java b/Mage/src/main/java/mage/target/common/TargetCardInOpponentsGraveyard.java index 97c60583b87..858fa342e5d 100644 --- a/Mage/src/main/java/mage/target/common/TargetCardInOpponentsGraveyard.java +++ b/Mage/src/main/java/mage/target/common/TargetCardInOpponentsGraveyard.java @@ -100,7 +100,7 @@ public class TargetCardInOpponentsGraveyard extends TargetCard { Player player = game.getPlayer(playerId); if (player != null) { for (Card card : player.getGraveyard().getCards(filter, sourceControllerId, source, game)) { - if (source.getSourceId() == null || isNotTarget() || !game.replaceEvent(new TargetEvent(card, source.getSourceId(), sourceControllerId))) { + if (source == null || source.getSourceId() == null || isNotTarget() || !game.replaceEvent(new TargetEvent(card, source.getSourceId(), sourceControllerId))) { possibleTargets++; if (possibleTargets >= this.minNumberOfTargets) { return true; @@ -125,7 +125,7 @@ public class TargetCardInOpponentsGraveyard extends TargetCard { if (player != null) { Set targetsInThisGraveyeard = new HashSet<>(); for (Card card : player.getGraveyard().getCards(filter, sourceControllerId, source, game)) { - if (source.getSourceId() == null || isNotTarget() || !game.replaceEvent(new TargetEvent(card, source.getSourceId(), sourceControllerId))) { + if (source == null || source.getSourceId() == null || isNotTarget() || !game.replaceEvent(new TargetEvent(card, source.getSourceId(), sourceControllerId))) { targetsInThisGraveyeard.add(card.getId()); } } diff --git a/Mage/src/main/java/mage/target/common/TargetCardInYourGraveyard.java b/Mage/src/main/java/mage/target/common/TargetCardInYourGraveyard.java index 77ac0d5bdf1..c6bf6018902 100644 --- a/Mage/src/main/java/mage/target/common/TargetCardInYourGraveyard.java +++ b/Mage/src/main/java/mage/target/common/TargetCardInYourGraveyard.java @@ -76,7 +76,7 @@ public class TargetCardInYourGraveyard extends TargetCard { Set possibleTargets = new HashSet<>(); Player player = game.getPlayer(sourceControllerId); for (Card card : player.getGraveyard().getCards(filter, sourceControllerId, source, game)) { - if (source.getSourceId() == null || isNotTarget() || !game.replaceEvent(new TargetEvent(card, source.getSourceId(), sourceControllerId))) { + if (source == null || source.getSourceId() == null || isNotTarget() || !game.replaceEvent(new TargetEvent(card, source.getSourceId(), sourceControllerId))) { possibleTargets.add(card.getId()); } } @@ -116,7 +116,7 @@ public class TargetCardInYourGraveyard extends TargetCard { } int possibleTargets = 0; for (Card card : player.getGraveyard().getCards(filter, sourceControllerId, source, game)) { - if (source.getSourceId() == null || isNotTarget() || !game.replaceEvent(new TargetEvent(card, source.getSourceId(), sourceControllerId))) { + if (source == null || source.getSourceId() == null || isNotTarget() || !game.replaceEvent(new TargetEvent(card, source.getSourceId(), sourceControllerId))) { possibleTargets++; if (possibleTargets >= this.minNumberOfTargets) { return true;