diff --git a/Mage.Common/src/mage/utils/properties/PropertiesUtil.java b/Mage.Common/src/mage/utils/properties/PropertiesUtil.java index 87a936131f8..1ffa89c8b5d 100644 --- a/Mage.Common/src/mage/utils/properties/PropertiesUtil.java +++ b/Mage.Common/src/mage/utils/properties/PropertiesUtil.java @@ -28,6 +28,7 @@ public class PropertiesUtil { } } else { logger.warn("No xmage.properties were found on classpath"); + } } diff --git a/Mage.Server/src/main/java/mage/server/SessionManager.java b/Mage.Server/src/main/java/mage/server/SessionManager.java index faaecf004b0..0083d0fcc9c 100644 --- a/Mage.Server/src/main/java/mage/server/SessionManager.java +++ b/Mage.Server/src/main/java/mage/server/SessionManager.java @@ -52,7 +52,7 @@ public class SessionManager { private final ConcurrentHashMap sessions = new ConcurrentHashMap<>(); public Session getSession(String sessionId) { - if (sessions == null || sessionId == null) { + if (sessionId == null) { return null; } Session session = sessions.get(sessionId); diff --git a/Mage.Server/src/main/java/mage/server/draft/DraftController.java b/Mage.Server/src/main/java/mage/server/draft/DraftController.java index 3b69b5b2e5f..a0baa1a460a 100644 --- a/Mage.Server/src/main/java/mage/server/draft/DraftController.java +++ b/Mage.Server/src/main/java/mage/server/draft/DraftController.java @@ -171,7 +171,7 @@ public class DraftController { return false; } for (DraftPlayer player: draft.getPlayers()) { - if (player.getPlayer().isHuman() && draftSessions.get(player.getPlayer().getId()) == null) { + if (player.getPlayer().isHuman() && !draftSessions.containsKey(player.getPlayer().getId())) { return false; } } diff --git a/Mage.Sets/src/mage/cards/m/MyriadLandscape.java b/Mage.Sets/src/mage/cards/m/MyriadLandscape.java index 6382bcc74a5..e052bbc2ab1 100644 --- a/Mage.Sets/src/mage/cards/m/MyriadLandscape.java +++ b/Mage.Sets/src/mage/cards/m/MyriadLandscape.java @@ -111,12 +111,7 @@ class TargetCardInLibrarySharingLandType extends TargetCardInLibrary { landTypes = new HashSet<>(); landTypes.addAll(landCard.getSubtype(game)); } else { - for (Iterator iterator = landTypes.iterator(); iterator.hasNext();) { - String next = iterator.next(); - if (!landCard.getSubtype(game).contains(next)) { - iterator.remove(); - } - } + landTypes.removeIf(next -> !landCard.getSubtype(game).contains(next)); } } } diff --git a/Mage/src/main/java/mage/abilities/AbilitiesImpl.java b/Mage/src/main/java/mage/abilities/AbilitiesImpl.java index ffe5fff8e3e..8c9cd7348e4 100644 --- a/Mage/src/main/java/mage/abilities/AbilitiesImpl.java +++ b/Mage/src/main/java/mage/abilities/AbilitiesImpl.java @@ -33,6 +33,7 @@ import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.UUID; + import mage.abilities.common.ZoneChangeTriggeredAbility; import mage.abilities.costs.Cost; import mage.abilities.keyword.ProtectionAbility; @@ -44,9 +45,8 @@ import mage.util.ThreadLocalStringBuilder; import org.apache.log4j.Logger; /** - * - * @author BetaSteward_at_googlemail.com * @param + * @author BetaSteward_at_googlemail.com */ public class AbilitiesImpl extends ArrayList implements Abilities { @@ -171,7 +171,7 @@ public class AbilitiesImpl extends ArrayList implements Ab public Abilities getManaAbilities(Zone zone) { Abilities abilities = new AbilitiesImpl<>(); for (T ability : this) { - if (ability.getAbilityType().equals(AbilityType.MANA) && ability.getZone().match(zone)) { + if (ability.getAbilityType() == AbilityType.MANA && ability.getZone().match(zone)) { abilities.add(ability); } } @@ -257,7 +257,7 @@ public class AbilitiesImpl extends ArrayList implements Ab @Override public boolean contains(T ability) { - for (Iterator iterator = this.iterator(); iterator.hasNext();) { // simple loop can cause java.util.ConcurrentModificationException + for (Iterator iterator = this.iterator(); iterator.hasNext(); ) { // simple loop can cause java.util.ConcurrentModificationException T test = iterator.next(); // Checking also by getRule() without other restrictions is a problem when a triggered ability will be copied to a permanent that had the same ability // already before the copy. Because then it keeps the triggered ability twice and it triggers twice. @@ -287,6 +287,7 @@ public class AbilitiesImpl extends ArrayList implements Ab @Override public boolean containsAll(Abilities abilities) { + if (this.size() < abilities.size()) { return false; } diff --git a/Mage/src/main/java/mage/abilities/DelayedTriggeredAbilities.java b/Mage/src/main/java/mage/abilities/DelayedTriggeredAbilities.java index 0192a4ca7ee..f98551cb414 100644 --- a/Mage/src/main/java/mage/abilities/DelayedTriggeredAbilities.java +++ b/Mage/src/main/java/mage/abilities/DelayedTriggeredAbilities.java @@ -54,7 +54,7 @@ import mage.game.events.GameEvent; if (this.size() > 0) { for (Iterator it = this.iterator();it.hasNext();) { DelayedTriggeredAbility ability = it.next(); - if (ability.getDuration().equals(Duration.Custom)){ + if (ability.getDuration()== Duration.Custom){ if (ability.isInactive(game)) { it.remove(); continue; @@ -74,21 +74,11 @@ import mage.game.events.GameEvent; } public void removeEndOfTurnAbilities() { - for (Iterator it = this.iterator();it.hasNext();) { - DelayedTriggeredAbility ability = it.next(); - if (ability.getDuration() == Duration.EndOfTurn) { - it.remove(); - } - } + this.removeIf(ability -> ability.getDuration() == Duration.EndOfTurn); } public void removeEndOfCombatAbilities() { - for (Iterator it = this.iterator();it.hasNext();) { - DelayedTriggeredAbility ability = it.next(); - if (ability.getDuration() == Duration.EndOfCombat) { - it.remove(); - } - } + this.removeIf(ability -> ability.getDuration() == Duration.EndOfCombat); } diff --git a/Mage/src/main/java/mage/abilities/SpecialActions.java b/Mage/src/main/java/mage/abilities/SpecialActions.java index 43ec620b2a0..72a5eb444c9 100644 --- a/Mage/src/main/java/mage/abilities/SpecialActions.java +++ b/Mage/src/main/java/mage/abilities/SpecialActions.java @@ -67,11 +67,6 @@ public class SpecialActions extends AbilitiesImpl { } public void removeManaActions() { - for (Iterator iterator = this.iterator(); iterator.hasNext();) { - SpecialAction next = iterator.next(); - if (next.isManaAction()) { - iterator.remove(); - } - } + this.removeIf(SpecialAction::isManaAction); } } diff --git a/Mage/src/main/java/mage/abilities/SpellAbility.java b/Mage/src/main/java/mage/abilities/SpellAbility.java index e12d0c472de..8952db5a3a3 100644 --- a/Mage/src/main/java/mage/abilities/SpellAbility.java +++ b/Mage/src/main/java/mage/abilities/SpellAbility.java @@ -27,22 +27,18 @@ */ package mage.abilities; -import java.util.UUID; import mage.MageObject; import mage.abilities.costs.mana.ManaCost; import mage.abilities.keyword.FlashAbility; import mage.cards.SplitCard; -import mage.constants.AbilityType; -import mage.constants.AsThoughEffectType; -import mage.constants.SpellAbilityType; -import mage.constants.TimingRule; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; import mage.players.Player; +import java.util.UUID; + /** - * * @author BetaSteward_at_googlemail.com */ public class SpellAbility extends ActivatedAbilityImpl { @@ -90,7 +86,7 @@ public class SpellAbility extends ActivatedAbilityImpl { public boolean canActivate(UUID playerId, Game game) { if (game.getContinuousEffects().asThough(sourceId, AsThoughEffectType.CAST_AS_INSTANT, this, playerId, game) // check this first to allow Offering in main phase || this.spellCanBeActivatedRegularlyNow(playerId, game)) { - if (spellAbilityType.equals(SpellAbilityType.SPLIT)) { + if (spellAbilityType == SpellAbilityType.SPLIT) { return false; } // fix for Gitaxian Probe and casting opponent's spells @@ -106,7 +102,7 @@ public class SpellAbility extends ActivatedAbilityImpl { } } // Alternate spell abilities (Flashback, Overload) can't be cast with no mana to pay option - if (getSpellAbilityType().equals(SpellAbilityType.BASE_ALTERNATE)) { + if (getSpellAbilityType()== SpellAbilityType.BASE_ALTERNATE) { Player player = game.getPlayer(playerId); if (player != null && getSourceId().equals(player.getCastSourceIdWithAlternateMana())) { return false; diff --git a/Mage/src/main/java/mage/abilities/StaticAbility.java b/Mage/src/main/java/mage/abilities/StaticAbility.java index 1930634dbe8..df71172aac5 100644 --- a/Mage/src/main/java/mage/abilities/StaticAbility.java +++ b/Mage/src/main/java/mage/abilities/StaticAbility.java @@ -56,7 +56,7 @@ public abstract class StaticAbility extends AbilityImpl { if (game.getShortLivingLKI(getSourceId(), zone)) { return true; // maybe this can be a problem if effects removed the ability from the object } - if (game.getPermanentEntering(getSourceId()) != null && zone.equals(Zone.BATTLEFIELD)) { + if (game.getPermanentEntering(getSourceId()) != null && zone == Zone.BATTLEFIELD) { return true; // abilities of permanents entering battlefield are countes as on battlefield } return super.isInUseableZone(game, source, event); diff --git a/Mage/src/main/java/mage/abilities/TriggeredAbilityImpl.java b/Mage/src/main/java/mage/abilities/TriggeredAbilityImpl.java index 7fb0c0b2257..a7566dafbc8 100644 --- a/Mage/src/main/java/mage/abilities/TriggeredAbilityImpl.java +++ b/Mage/src/main/java/mage/abilities/TriggeredAbilityImpl.java @@ -188,7 +188,7 @@ public abstract class TriggeredAbilityImpl extends AbilityImpl implements Trigge case ZONE_CHANGE: case DESTROYED_PERMANENT: if (isLeavesTheBattlefieldTrigger()) { - if (event.getType().equals(EventType.DESTROYED_PERMANENT)) { + if (event.getType() == EventType.DESTROYED_PERMANENT) { source = game.getLastKnownInformation(getSourceId(), Zone.BATTLEFIELD); } else if (((ZoneChangeEvent) event).getTarget() != null) { source = ((ZoneChangeEvent) event).getTarget(); diff --git a/Mage/src/main/java/mage/abilities/common/AttackedByCreatureTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/AttackedByCreatureTriggeredAbility.java index d9174aeb2f9..9f3fc3ef004 100644 --- a/Mage/src/main/java/mage/abilities/common/AttackedByCreatureTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/AttackedByCreatureTriggeredAbility.java @@ -77,7 +77,7 @@ public class AttackedByCreatureTriggeredAbility extends TriggeredAbilityImpl { UUID playerId = game.getCombat().getDefendingPlayerId(event.getSourceId(), game); Permanent attackingCreature = game.getPermanent(event.getSourceId()); if (getControllerId().equals(playerId) && attackingCreature != null) { - if (!setTargetPointer.equals(SetTargetPointer.NONE)) { + if (setTargetPointer != SetTargetPointer.NONE) { for (Effect effect : this.getEffects()) { switch (setTargetPointer) { case PERMANENT: diff --git a/Mage/src/main/java/mage/abilities/common/BeginningOfCombatTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/BeginningOfCombatTriggeredAbility.java index d6ecec875c9..71ae888c954 100644 --- a/Mage/src/main/java/mage/abilities/common/BeginningOfCombatTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/BeginningOfCombatTriggeredAbility.java @@ -46,7 +46,7 @@ public class BeginningOfCombatTriggeredAbility extends TriggeredAbilityImpl { boolean yours = event.getPlayerId().equals(this.controllerId); if (yours && setTargetPointer) { if (getTargets().isEmpty()) { - this.getEffects().stream().forEach((effect) -> { + this.getEffects().forEach(effect -> { effect.setTargetPointer(new FixedTarget(event.getPlayerId())); }); } @@ -55,7 +55,7 @@ public class BeginningOfCombatTriggeredAbility extends TriggeredAbilityImpl { case OPPONENT: if (game.getPlayer(this.controllerId).hasOpponent(event.getPlayerId(), game)) { if (setTargetPointer) { - this.getEffects().stream().forEach((effect) -> { + this.getEffects().forEach(effect -> { effect.setTargetPointer(new FixedTarget(event.getPlayerId())); }); } @@ -64,7 +64,7 @@ public class BeginningOfCombatTriggeredAbility extends TriggeredAbilityImpl { break; case ANY: if (setTargetPointer) { - this.getEffects().stream().forEach((effect) -> { + this.getEffects().forEach(effect -> { effect.setTargetPointer(new FixedTarget(event.getPlayerId())); }); } diff --git a/Mage/src/main/java/mage/abilities/common/CycleAllTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/CycleAllTriggeredAbility.java index f76ee4fbb8b..f9bc0570646 100644 --- a/Mage/src/main/java/mage/abilities/common/CycleAllTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/CycleAllTriggeredAbility.java @@ -62,7 +62,7 @@ public class CycleAllTriggeredAbility extends TriggeredAbilityImpl { } StackObject item = game.getState().getStack().getFirst(); if (item instanceof StackAbility - && ((StackAbility) item).getStackAbility() instanceof CyclingAbility) { + && item.getStackAbility() instanceof CyclingAbility) { return true; } return false; diff --git a/Mage/src/main/java/mage/abilities/common/DealsCombatDamageTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/DealsCombatDamageTriggeredAbility.java index 0864c62c0a7..455c2cc387f 100644 --- a/Mage/src/main/java/mage/abilities/common/DealsCombatDamageTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/DealsCombatDamageTriggeredAbility.java @@ -76,7 +76,7 @@ public class DealsCombatDamageTriggeredAbility extends TriggeredAbilityImpl { return true; } - if (event.getType().equals(GameEvent.EventType.COMBAT_DAMAGE_STEP_PRE)) { + if (event.getType()== GameEvent.EventType.COMBAT_DAMAGE_STEP_PRE) { usedInPhase = false; } return false; diff --git a/Mage/src/main/java/mage/abilities/common/DealsDamageAttachedTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/DealsDamageAttachedTriggeredAbility.java index 29595c9f2fd..042e50de150 100644 --- a/Mage/src/main/java/mage/abilities/common/DealsDamageAttachedTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/DealsDamageAttachedTriggeredAbility.java @@ -13,20 +13,19 @@ import mage.game.events.GameEvent; import mage.game.permanent.Permanent; /** - * * @author LevelX2 */ public class DealsDamageAttachedTriggeredAbility extends TriggeredAbilityImpl { - + public DealsDamageAttachedTriggeredAbility(Zone zone, Effect effect, boolean optional) { super(zone, effect, optional); } - + public DealsDamageAttachedTriggeredAbility(final DealsDamageAttachedTriggeredAbility ability) { super(ability); } - + @Override public DealsDamageAttachedTriggeredAbility copy() { return new DealsDamageAttachedTriggeredAbility(this); @@ -34,11 +33,11 @@ public class DealsDamageAttachedTriggeredAbility extends TriggeredAbilityImpl { @Override public boolean checkEventType(GameEvent event, Game game) { - return event.getType().equals(GameEvent.EventType.DAMAGED_CREATURE) - || event.getType().equals(GameEvent.EventType.DAMAGED_PLAYER) - || event.getType().equals(GameEvent.EventType.DAMAGED_PLANESWALKER); + return event.getType() == GameEvent.EventType.DAMAGED_CREATURE + || event.getType() == GameEvent.EventType.DAMAGED_PLAYER + || event.getType() == GameEvent.EventType.DAMAGED_PLANESWALKER; } - + @Override public boolean checkTrigger(GameEvent event, Game game) { Permanent enchantment = game.getPermanent(this.getSourceId()); @@ -54,7 +53,7 @@ public class DealsDamageAttachedTriggeredAbility extends TriggeredAbilityImpl { } return false; } - + @Override public String getRule() { return "Whenever enchanted creature deals damage, " + super.getRule(); diff --git a/Mage/src/main/java/mage/abilities/common/DealsDamageToACreatureAttachedTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/DealsDamageToACreatureAttachedTriggeredAbility.java index 8fb691705ff..1abe44e781c 100644 --- a/Mage/src/main/java/mage/abilities/common/DealsDamageToACreatureAttachedTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/DealsDamageToACreatureAttachedTriggeredAbility.java @@ -38,7 +38,6 @@ import mage.game.permanent.Permanent; import mage.target.targetpointer.FixedTarget; /** - * * @author LevelX */ public class DealsDamageToACreatureAttachedTriggeredAbility extends TriggeredAbilityImpl { @@ -54,15 +53,15 @@ public class DealsDamageToACreatureAttachedTriggeredAbility extends TriggeredAbi } public DealsDamageToACreatureAttachedTriggeredAbility(final DealsDamageToACreatureAttachedTriggeredAbility ability) { - super(ability); - this.setTargetPointer = ability.setTargetPointer; - this.combatOnly = ability.combatOnly; - this.attachedDescription = ability.attachedDescription; + super(ability); + this.setTargetPointer = ability.setTargetPointer; + this.combatOnly = ability.combatOnly; + this.attachedDescription = ability.attachedDescription; } @Override public DealsDamageToACreatureAttachedTriggeredAbility copy() { - return new DealsDamageToACreatureAttachedTriggeredAbility(this); + return new DealsDamageToACreatureAttachedTriggeredAbility(this); } @Override @@ -74,18 +73,17 @@ public class DealsDamageToACreatureAttachedTriggeredAbility extends TriggeredAbi public boolean checkTrigger(GameEvent event, Game game) { if (!combatOnly || ((DamagedCreatureEvent) event).isCombatDamage()) { Permanent attachment = game.getPermanent(this.getSourceId()); - if (attachment != null - && attachment.getAttachedTo() != null - && event.getSourceId().equals(attachment.getAttachedTo()) - ) { - if (setTargetPointer) { - for (Effect effect : this.getEffects()) { - effect.setTargetPointer(new FixedTarget(event.getTargetId())); - effect.setValue("damage", event.getAmount()); - } - } - return true; + if (attachment != null + && attachment.getAttachedTo() != null + && event.getSourceId().equals(attachment.getAttachedTo())) { + if (setTargetPointer) { + for (Effect effect : this.getEffects()) { + effect.setTargetPointer(new FixedTarget(event.getTargetId())); + effect.setValue("damage", event.getAmount()); + } } + return true; + } } return false; @@ -93,11 +91,11 @@ public class DealsDamageToACreatureAttachedTriggeredAbility extends TriggeredAbi @Override public String getRule() { - return new StringBuilder("Whenever ").append(attachedDescription) - .append(" deals ") - .append(combatOnly ? "combat ":"") - .append("damage to a creature, ") - .append(super.getRule()).toString(); + return new StringBuilder("Whenever ").append(attachedDescription) + .append(" deals ") + .append(combatOnly ? "combat " : "") + .append("damage to a creature, ") + .append(super.getRule()).toString(); } } diff --git a/Mage/src/main/java/mage/abilities/common/DealsDamageToOneOrMoreCreaturesTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/DealsDamageToOneOrMoreCreaturesTriggeredAbility.java index 4e61eae9ba2..19fb7eacfde 100644 --- a/Mage/src/main/java/mage/abilities/common/DealsDamageToOneOrMoreCreaturesTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/DealsDamageToOneOrMoreCreaturesTriggeredAbility.java @@ -11,7 +11,6 @@ import mage.game.Game; import mage.game.events.GameEvent; /** - * * @author LevelX2 */ public class DealsDamageToOneOrMoreCreaturesTriggeredAbility extends DealsDamageToACreatureTriggeredAbility { @@ -28,7 +27,8 @@ public class DealsDamageToOneOrMoreCreaturesTriggeredAbility extends DealsDamage public boolean checkTrigger(GameEvent event, Game game) { if (super.checkTrigger(event, game)) { // check that combat damage does only once trigger also if multiple creatures were damaged because they block or were blocked by source - if (game.getTurn().getStepType().equals(PhaseStep.COMBAT_DAMAGE) || game.getTurn().getStepType().equals(PhaseStep.FIRST_COMBAT_DAMAGE)) { + if (game.getTurn().getStepType() == PhaseStep.COMBAT_DAMAGE + || game.getTurn().getStepType() == PhaseStep.FIRST_COMBAT_DAMAGE) { String stepHash = (String) game.getState().getValue("damageStep" + getOriginalId()); String newStepHash = game.getStep().getType().toString() + game.getTurnNum(); if (stepHash == null || !newStepHash.equals(stepHash)) { diff --git a/Mage/src/main/java/mage/abilities/common/DiesCreatureTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/DiesCreatureTriggeredAbility.java index 7ac272e8e28..6e160f70208 100644 --- a/Mage/src/main/java/mage/abilities/common/DiesCreatureTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/DiesCreatureTriggeredAbility.java @@ -67,7 +67,7 @@ public class DiesCreatureTriggeredAbility extends TriggeredAbilityImpl { @Override public boolean checkTrigger(GameEvent event, Game game) { ZoneChangeEvent zEvent = (ZoneChangeEvent) event; - if (zEvent.getFromZone().equals(Zone.BATTLEFIELD) && zEvent.getToZone().equals(Zone.GRAVEYARD)) { + if (zEvent.getFromZone() == Zone.BATTLEFIELD && zEvent.getToZone() == Zone.GRAVEYARD) { if (filter.match(zEvent.getTarget(), sourceId, controllerId, game)) { if (setTargetPointer) { for (Effect effect : this.getEffects()) { diff --git a/Mage/src/main/java/mage/abilities/common/LandfallAbility.java b/Mage/src/main/java/mage/abilities/common/LandfallAbility.java index 6e8651d8f00..646f3f8462c 100644 --- a/Mage/src/main/java/mage/abilities/common/LandfallAbility.java +++ b/Mage/src/main/java/mage/abilities/common/LandfallAbility.java @@ -77,7 +77,7 @@ public class LandfallAbility extends TriggeredAbilityImpl { && permanent.getCardType().contains(CardType.LAND) && permanent.getControllerId().equals(this.controllerId)) { triggeringLand = permanent; - if (setTargetPointer.equals(SetTargetPointer.PERMANENT)) { + if (setTargetPointer == SetTargetPointer.PERMANENT) { for (Effect effect : getAllEffects()) { effect.setTargetPointer(new FixedTarget(permanent, game)); } diff --git a/Mage/src/main/java/mage/abilities/common/SpellCastAllTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/SpellCastAllTriggeredAbility.java index ef844b4f46e..c729a6091b5 100644 --- a/Mage/src/main/java/mage/abilities/common/SpellCastAllTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/SpellCastAllTriggeredAbility.java @@ -87,7 +87,7 @@ public class SpellCastAllTriggeredAbility extends TriggeredAbilityImpl { public boolean checkTrigger(GameEvent event, Game game) { Spell spell = game.getStack().getSpell(event.getTargetId()); if (spell != null && filter.match(spell, getSourceId(), getControllerId(), game)) { - if (!setTargetPointer.equals(SetTargetPointer.NONE)) { + if (setTargetPointer != SetTargetPointer.NONE) { for (Effect effect : this.getEffects()) { switch (setTargetPointer) { case SPELL: diff --git a/Mage/src/main/java/mage/abilities/common/SpellCastOpponentTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/SpellCastOpponentTriggeredAbility.java index 61dcda10453..ec9f10502ec 100644 --- a/Mage/src/main/java/mage/abilities/common/SpellCastOpponentTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/SpellCastOpponentTriggeredAbility.java @@ -38,7 +38,6 @@ import mage.game.stack.Spell; import mage.target.targetpointer.FixedTarget; /** - * * @author BetaSteward_at_googlemail.com */ public class SpellCastOpponentTriggeredAbility extends TriggeredAbilityImpl { @@ -60,7 +59,6 @@ public class SpellCastOpponentTriggeredAbility extends TriggeredAbilityImpl { } /** - * * @param zone * @param effect * @param filter @@ -89,8 +87,8 @@ public class SpellCastOpponentTriggeredAbility extends TriggeredAbilityImpl { if (game.getPlayer(this.getControllerId()).hasOpponent(event.getPlayerId(), game)) { Spell spell = game.getStack().getSpell(event.getTargetId()); if (spell != null && filter.match(spell, game)) { - if (!setTargetPointer.equals(SetTargetPointer.NONE)) { - for (Effect effect: this.getEffects()) { + if (setTargetPointer != SetTargetPointer.NONE) { + for (Effect effect : this.getEffects()) { switch (setTargetPointer) { case SPELL: effect.setTargetPointer(new FixedTarget(event.getTargetId())); @@ -101,7 +99,7 @@ public class SpellCastOpponentTriggeredAbility extends TriggeredAbilityImpl { default: throw new UnsupportedOperationException("Value of SetTargetPointer not supported!"); } - + } } return true; diff --git a/Mage/src/main/java/mage/abilities/common/SpellCounteredControllerTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/SpellCounteredControllerTriggeredAbility.java index befb31d4452..ffa9768a1df 100644 --- a/Mage/src/main/java/mage/abilities/common/SpellCounteredControllerTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/SpellCounteredControllerTriggeredAbility.java @@ -44,7 +44,7 @@ public class SpellCounteredControllerTriggeredAbility extends TriggeredAbilityIm @Override public boolean checkTrigger(GameEvent event, Game game) { - StackObject stackObjectThatCountered = (StackObject) game.getStack().getStackObject(event.getSourceId()); + StackObject stackObjectThatCountered = game.getStack().getStackObject(event.getSourceId()); if (stackObjectThatCountered == null) { stackObjectThatCountered = (StackObject) game.getLastKnownInformation(event.getSourceId(), Zone.STACK); } diff --git a/Mage/src/main/java/mage/abilities/common/delayed/AtTheBeginOfMainPhaseDelayedTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/delayed/AtTheBeginOfMainPhaseDelayedTriggeredAbility.java index 0a871fa0526..e1d0b62e23d 100644 --- a/Mage/src/main/java/mage/abilities/common/delayed/AtTheBeginOfMainPhaseDelayedTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/delayed/AtTheBeginOfMainPhaseDelayedTriggeredAbility.java @@ -37,7 +37,6 @@ import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; /** - * * @author LevelX2 */ public class AtTheBeginOfMainPhaseDelayedTriggeredAbility extends DelayedTriggeredAbility { @@ -93,8 +92,8 @@ public class AtTheBeginOfMainPhaseDelayedTriggeredAbility extends DelayedTrigger case ANY: return true; case YOU: - boolean yours = event.getPlayerId().equals(this.controllerId); - return yours; + return event.getPlayerId().equals(this.controllerId); + case OPPONENT: if (game.getPlayer(this.getControllerId()).hasOpponent(event.getPlayerId(), game)) { return true; @@ -117,11 +116,11 @@ public class AtTheBeginOfMainPhaseDelayedTriggeredAbility extends DelayedTrigger switch (phaseSelection) { case NEXT_MAIN: case NEXT_MAIN_THIS_TURN: - return EventType.PRECOMBAT_MAIN_PHASE_PRE.equals(eventType) || EventType.POSTCOMBAT_MAIN_PHASE_PRE.equals(eventType); + return EventType.PRECOMBAT_MAIN_PHASE_PRE == eventType || EventType.POSTCOMBAT_MAIN_PHASE_PRE == eventType; case NEXT_POSTCOMAT_MAIN: - return EventType.POSTCOMBAT_MAIN_PHASE_PRE.equals(eventType); + return EventType.POSTCOMBAT_MAIN_PHASE_PRE == eventType; case NEXT_PRECOMBAT_MAIN: - return EventType.PRECOMBAT_MAIN_PHASE_PRE.equals(eventType); + return EventType.PRECOMBAT_MAIN_PHASE_PRE == eventType; default: return false; } diff --git a/Mage/src/main/java/mage/abilities/common/delayed/AtTheBeginOfNextEndStepDelayedTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/delayed/AtTheBeginOfNextEndStepDelayedTriggeredAbility.java index 37706874426..4f16e72e8da 100644 --- a/Mage/src/main/java/mage/abilities/common/delayed/AtTheBeginOfNextEndStepDelayedTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/delayed/AtTheBeginOfNextEndStepDelayedTriggeredAbility.java @@ -73,8 +73,8 @@ public class AtTheBeginOfNextEndStepDelayedTriggeredAbility extends DelayedTrigg case ANY: return true; case YOU: - boolean yours = event.getPlayerId().equals(this.controllerId); - return yours; + return event.getPlayerId().equals(this.controllerId); + case OPPONENT: if (game.getPlayer(this.getControllerId()).hasOpponent(event.getPlayerId(), game)) { return true; diff --git a/Mage/src/main/java/mage/abilities/condition/common/AfterUpkeepStepCondtion.java b/Mage/src/main/java/mage/abilities/condition/common/AfterUpkeepStepCondtion.java index 3e2010f922b..c0ef7381d1b 100644 --- a/Mage/src/main/java/mage/abilities/condition/common/AfterUpkeepStepCondtion.java +++ b/Mage/src/main/java/mage/abilities/condition/common/AfterUpkeepStepCondtion.java @@ -11,7 +11,6 @@ import mage.constants.PhaseStep; import mage.game.Game; /** - * * @author LevelX2 */ public class AfterUpkeepStepCondtion implements Condition { @@ -24,8 +23,8 @@ public class AfterUpkeepStepCondtion implements Condition { @Override public boolean apply(Game game, Ability source) { - return !(game.getStep().getType().equals(PhaseStep.UNTAP) - || game.getStep().getType().equals(PhaseStep.UPKEEP)); + return !(game.getStep().getType() == PhaseStep.UNTAP + || game.getStep().getType() == PhaseStep.UPKEEP); } @Override diff --git a/Mage/src/main/java/mage/abilities/condition/common/CardsInHandCondition.java b/Mage/src/main/java/mage/abilities/condition/common/CardsInHandCondition.java index ebb6bf0aa41..4283b97b721 100644 --- a/Mage/src/main/java/mage/abilities/condition/common/CardsInHandCondition.java +++ b/Mage/src/main/java/mage/abilities/condition/common/CardsInHandCondition.java @@ -44,7 +44,7 @@ import mage.util.CardUtil; */ public class CardsInHandCondition implements Condition { - public static enum CountType { + public enum CountType { MORE_THAN, FEWER_THAN, EQUAL_TO } diff --git a/Mage/src/main/java/mage/abilities/condition/common/IsStepCondition.java b/Mage/src/main/java/mage/abilities/condition/common/IsStepCondition.java index 6b96d1c8589..9f144749af6 100644 --- a/Mage/src/main/java/mage/abilities/condition/common/IsStepCondition.java +++ b/Mage/src/main/java/mage/abilities/condition/common/IsStepCondition.java @@ -53,7 +53,7 @@ public class IsStepCondition implements Condition { @Override public boolean apply(Game game, Ability source) { - return phaseStep.equals(game.getStep().getType()) && (!onlyDuringYourSteps || game.getActivePlayerId().equals(source.getControllerId())); + return phaseStep == game.getStep().getType() && (!onlyDuringYourSteps || game.getActivePlayerId().equals(source.getControllerId())); } @Override diff --git a/Mage/src/main/java/mage/abilities/costs/AlternativeCostSourceAbility.java b/Mage/src/main/java/mage/abilities/costs/AlternativeCostSourceAbility.java index b6937c67a35..441fe6b0216 100644 --- a/Mage/src/main/java/mage/abilities/costs/AlternativeCostSourceAbility.java +++ b/Mage/src/main/java/mage/abilities/costs/AlternativeCostSourceAbility.java @@ -166,12 +166,7 @@ public class AlternativeCostSourceAbility extends StaticAbility implements Alter if (alternativeCostsToCheck.canPay(ability, ability.getSourceId(), ability.getControllerId(), game) && player.chooseUse(Outcome.Benefit, costChoiceText, this, game)) { if (ability instanceof SpellAbility) { - for (Iterator iterator = ability.getManaCostsToPay().iterator(); iterator.hasNext();) { - ManaCost manaCost = iterator.next(); - if (manaCost instanceof VariableCost) { - iterator.remove(); - } - } + ability.getManaCostsToPay().removeIf(manaCost -> manaCost instanceof VariableCost); CardUtil.reduceCost((SpellAbility) ability, ability.getManaCosts()); } else { diff --git a/Mage/src/main/java/mage/abilities/costs/OptionalAdditionalCostImpl.java b/Mage/src/main/java/mage/abilities/costs/OptionalAdditionalCostImpl.java index 5a4fda252ed..6b7b7e320f8 100644 --- a/Mage/src/main/java/mage/abilities/costs/OptionalAdditionalCostImpl.java +++ b/Mage/src/main/java/mage/abilities/costs/OptionalAdditionalCostImpl.java @@ -52,7 +52,7 @@ public class OptionalAdditionalCostImpl ex this.delimiter = delimiter; this.reminderText = "(" + reminderText + ")"; this.activatedCounter = 0; - this.add((Cost) cost); + this.add(cost); } public OptionalAdditionalCostImpl(final OptionalAdditionalCostImpl cost) { diff --git a/Mage/src/main/java/mage/cards/CardSetInfo.java b/Mage/src/main/java/mage/cards/CardSetInfo.java index a17907a9922..1ca89809377 100644 --- a/Mage/src/main/java/mage/cards/CardSetInfo.java +++ b/Mage/src/main/java/mage/cards/CardSetInfo.java @@ -20,7 +20,7 @@ public final class CardSetInfo implements Serializable { this.expansionSetCode = expansionSetCode; this.cardNumber = cardNumber; this.rarity = rarity; - if (graphicInfo == null && Rarity.LAND.equals(rarity)) { + if (graphicInfo == null && Rarity.LAND == rarity) { // Workaround to get images of basic land permanents loaded this.graphicInfo = new CardGraphicInfo(null, true); } else { diff --git a/Mage/src/main/java/mage/cards/repository/CardRepository.java b/Mage/src/main/java/mage/cards/repository/CardRepository.java index 94a8b3a2dd0..0a8cdfa8d75 100644 --- a/Mage/src/main/java/mage/cards/repository/CardRepository.java +++ b/Mage/src/main/java/mage/cards/repository/CardRepository.java @@ -37,10 +37,12 @@ import com.j256.ormlite.stmt.Where; import com.j256.ormlite.support.ConnectionSource; import com.j256.ormlite.support.DatabaseConnection; import com.j256.ormlite.table.TableUtils; + import java.io.File; import java.sql.SQLException; import java.util.*; import java.util.concurrent.Callable; + import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SetType; @@ -48,7 +50,6 @@ import mage.util.RandomUtil; import org.apache.log4j.Logger; /** - * * @author North */ public enum CardRepository { @@ -61,7 +62,7 @@ public enum CardRepository { private static final long CARD_DB_VERSION = 50; // raise this if new cards were added to the server private static final long CARD_CONTENT_VERSION = 70; - private final TreeSet landTypes = new TreeSet(); + private final TreeSet landTypes = new TreeSet<>(); private Dao cardDao; private Set classNames; @@ -87,21 +88,18 @@ public enum CardRepository { public void addCards(final List cards) { try { - cardDao.callBatchTasks(new Callable() { - @Override - public Object call() throws Exception { - try { - for (CardInfo card : cards) { - cardDao.create(card); - if (classNames != null) { - classNames.add(card.getClassName()); - } + cardDao.callBatchTasks(() -> { + try { + for (CardInfo card : cards) { + cardDao.create(card); + if (classNames != null) { + classNames.add(card.getClassName()); } - } catch (SQLException ex) { - Logger.getLogger(CardRepository.class).error("Error adding cards to DB - ", ex); } - return null; + } catch (SQLException ex) { + Logger.getLogger(CardRepository.class).error("Error adding cards to DB - ", ex); } + return null; }); } catch (Exception ex) { } @@ -157,6 +155,7 @@ public enum CardRepository { } } } catch (SQLException ex) { + Logger.getLogger(CardRepository.class).error("Error getting names from DB : " + ex); } return names; } @@ -178,6 +177,8 @@ public enum CardRepository { } } } catch (SQLException ex) { + Logger.getLogger(CardRepository.class).error("Error getting non-land names from DB : " + ex); + } return names; } @@ -199,6 +200,8 @@ public enum CardRepository { } } } catch (SQLException ex) { + Logger.getLogger(CardRepository.class).error("Error getting creature names from DB : " + ex); + } return names; } @@ -221,6 +224,7 @@ public enum CardRepository { } } } catch (SQLException ex) { + Logger.getLogger(CardRepository.class).error("Error getting non-land and non-creature names from DB : " + ex); } return names; } @@ -243,6 +247,8 @@ public enum CardRepository { } } } catch (SQLException ex) { + Logger.getLogger(CardRepository.class).error("Error getting non-artifact non-land names from DB : " + ex); + } return names; } @@ -284,6 +290,8 @@ public enum CardRepository { subtypes.add("Triskelavite"); } catch (SQLException ex) { + Logger.getLogger(CardRepository.class).error("Error getting creaturetypes from DB : " + ex); + } return subtypes; } @@ -302,6 +310,7 @@ public enum CardRepository { landTypes.remove("Dryad"); } catch (SQLException ex) { + Logger.getLogger(CardRepository.class).error("Error getting landtypes from DB : " + ex); } } return landTypes; @@ -316,6 +325,8 @@ public enum CardRepository { return result.get(0); } } catch (SQLException ex) { + Logger.getLogger(CardRepository.class).error("Error finding card from DB : " + ex); + } return null; } @@ -328,6 +339,7 @@ public enum CardRepository { names.add(card.getClassName()); } } catch (SQLException ex) { + Logger.getLogger(CardRepository.class).error("Error getting classnames from DB : " + ex); } return names; } @@ -339,12 +351,14 @@ public enum CardRepository { return cardDao.query(queryBuilder.prepare()); } catch (SQLException ex) { + Logger.getLogger(CardRepository.class).error("Error getting missing cards from DB : " + ex); + } + return Collections.emptyList(); } /** - * * @param name * @return random card with the provided name or null if none is found */ diff --git a/Mage/src/main/java/mage/counters/Counters.java b/Mage/src/main/java/mage/counters/Counters.java index 4dacb284ccd..6adbc3aa3d2 100644 --- a/Mage/src/main/java/mage/counters/Counters.java +++ b/Mage/src/main/java/mage/counters/Counters.java @@ -57,11 +57,9 @@ public class Counters extends HashMap implements Serializable { } public void addCounter(Counter counter) { - if (!this.containsKey(counter.name)) { - put(counter.name, counter); - } else { - get(counter.name).add(counter.getCount()); - } + putIfAbsent(counter.name, counter); + get(counter.name).add(counter.getCount()); + } public boolean removeCounter(String name) { diff --git a/Mage/src/main/java/mage/filter/FilterCard.java b/Mage/src/main/java/mage/filter/FilterCard.java index 035d6e8809c..b1d25603e8c 100644 --- a/Mage/src/main/java/mage/filter/FilterCard.java +++ b/Mage/src/main/java/mage/filter/FilterCard.java @@ -32,6 +32,8 @@ import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.UUID; +import java.util.stream.Collectors; + import mage.cards.Card; import mage.cards.SplitCard; import mage.filter.predicate.ObjectPlayer; @@ -41,7 +43,6 @@ import mage.filter.predicate.Predicates; import mage.game.Game; /** - * * @author BetaSteward_at_googlemail.com * @author North */ @@ -105,13 +106,8 @@ public class FilterCard extends FilterObject { } public Set filter(Set cards, Game game) { - Set filtered = new HashSet<>(); - for (Card card : cards) { - if (match(card, game)) { - filtered.add(card); - } - } - return filtered; + return cards.stream().filter(card -> match(card, game)).collect(Collectors.toSet()); + } public boolean hasPredicates() { diff --git a/Mage/src/main/java/mage/game/CardState.java b/Mage/src/main/java/mage/game/CardState.java index cf63e960bb4..0bfe9915366 100644 --- a/Mage/src/main/java/mage/game/CardState.java +++ b/Mage/src/main/java/mage/game/CardState.java @@ -87,9 +87,7 @@ public class CardState implements Serializable { abilities = new AbilitiesImpl<>(); } abilities.add(ability); - for (Ability sub : ability.getSubAbilities()) { - abilities.add(sub); - } + abilities.addAll(ability.getSubAbilities()); } public void clearAbilities() { diff --git a/Mage/src/main/java/mage/game/Exile.java b/Mage/src/main/java/mage/game/Exile.java index 8abb6d4cb59..101b95dd676 100644 --- a/Mage/src/main/java/mage/game/Exile.java +++ b/Mage/src/main/java/mage/game/Exile.java @@ -79,10 +79,7 @@ public class Exile implements Serializable, Copyable { } private ExileZone createZone(UUID id, String name, boolean hidden) { - if (!exileZones.containsKey(id)) { - ExileZone exile = new ExileZone(id, name, hidden); - exileZones.put(id, exile); - } + exileZones.putIfAbsent(id, new ExileZone(id, name, hidden)); return exileZones.get(id); } diff --git a/Mage/src/main/java/mage/game/GameState.java b/Mage/src/main/java/mage/game/GameState.java index 6b42e627eac..1a7e839531c 100644 --- a/Mage/src/main/java/mage/game/GameState.java +++ b/Mage/src/main/java/mage/game/GameState.java @@ -1092,9 +1092,7 @@ public class GameState implements Serializable, Copyable { } public CardState getCardState(UUID cardId) { - if (!cardState.containsKey(cardId)) { - cardState.put(cardId, new CardState()); - } + cardState.putIfAbsent(cardId, new CardState()); return cardState.get(cardId); } diff --git a/Mage/src/main/java/mage/game/Revealed.java b/Mage/src/main/java/mage/game/Revealed.java index af4b7cd320b..71ce2ab8ad7 100644 --- a/Mage/src/main/java/mage/game/Revealed.java +++ b/Mage/src/main/java/mage/game/Revealed.java @@ -68,9 +68,7 @@ public class Revealed extends HashMap implements Serializable, Co } public Cards createRevealed(String name) { - if (!this.containsKey(name)) { - this.put(name, new CardsImpl()); - } + putIfAbsent(name, new CardsImpl()); return this.get(name); } diff --git a/Mage/src/main/java/mage/game/Table.java b/Mage/src/main/java/mage/game/Table.java index e9d31528417..5753566aa79 100644 --- a/Mage/src/main/java/mage/game/Table.java +++ b/Mage/src/main/java/mage/game/Table.java @@ -28,6 +28,7 @@ package mage.game; import java.io.Serializable; +import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.UUID; diff --git a/Mage/src/main/java/mage/game/permanent/Battlefield.java b/Mage/src/main/java/mage/game/permanent/Battlefield.java index 115e78a3c38..8bfa4251178 100644 --- a/Mage/src/main/java/mage/game/permanent/Battlefield.java +++ b/Mage/src/main/java/mage/game/permanent/Battlefield.java @@ -27,23 +27,18 @@ */ package mage.game.permanent; -import java.io.Serializable; -import java.util.ArrayList; -import java.util.Collection; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Set; -import java.util.UUID; import mage.abilities.keyword.PhasingAbility; import mage.constants.CardType; import mage.constants.RangeOfInfluence; import mage.filter.FilterPermanent; import mage.game.Game; +import java.io.Serializable; +import java.util.*; +import java.util.Map.Entry; +import java.util.stream.Collectors; + /** - * * @author BetaSteward_at_googlemail.com */ public class Battlefield implements Serializable { @@ -76,7 +71,7 @@ public class Battlefield implements Serializable { /** * Returns a count of all {@link Permanent} that match the filter and are * controlled by controllerId. - * + *

* Some filter predicates do not work here (e.g. AnotherPredicate() because * filter.match() is called without controllerId. To use this predicates you * can use count() instead of countAll() @@ -87,13 +82,13 @@ public class Battlefield implements Serializable { * @return count */ public int countAll(FilterPermanent filter, UUID controllerId, Game game) { - int count = 0; - for (Permanent permanent : field.values()) { - if (permanent.getControllerId().equals(controllerId) && filter.match(permanent, game) && permanent.isPhasedIn()) { - count++; - } - } - return count; + return (int) field.values() + .stream() + .filter(permanent -> permanent.getControllerId().equals(controllerId) + && filter.match(permanent, game) + && permanent.isPhasedIn()) + .count(); + } /** @@ -101,27 +96,27 @@ public class Battlefield implements Serializable { * influence of the specified player id and that match the supplied filter. * * @param filter - * @param sourceId - sourceId of the MageObject the calling effect/ability - * belongs to + * @param sourceId - sourceId of the MageObject the calling effect/ability + * belongs to * @param sourcePlayerId * @param game * @return count */ public int count(FilterPermanent filter, UUID sourceId, UUID sourcePlayerId, Game game) { - int count = 0; + int count; if (game.getRangeOfInfluence() == RangeOfInfluence.ALL) { - for (Permanent permanent : field.values()) { - if (filter.match(permanent, sourceId, sourcePlayerId, game) && permanent.isPhasedIn()) { - count++; - } - } + count = (int) field.values() + .stream() + .filter(permanent -> filter.match(permanent, sourceId, sourcePlayerId, game) + && permanent.isPhasedIn()) + .count(); } else { Set range = game.getPlayer(sourcePlayerId).getInRange(); - for (Permanent permanent : field.values()) { - if (range.contains(permanent.getControllerId()) && filter.match(permanent, sourceId, sourcePlayerId, game) && permanent.isPhasedIn()) { - count++; - } - } + count = (int) field.values() + .stream() + .filter(permanent -> range.contains(permanent.getControllerId()) + && filter.match(permanent, sourceId, sourcePlayerId, game) + && permanent.isPhasedIn()).count(); } return count; } @@ -136,16 +131,11 @@ public class Battlefield implements Serializable { * @return boolean */ public boolean contains(FilterPermanent filter, int num, Game game) { - int count = 0; - for (Permanent permanent : field.values()) { - if (filter.match(permanent, game) && permanent.isPhasedIn()) { - count++; - if (num == count) { - return true; - } - } - } - return false; + return field.values() + .stream() + .filter(permanent -> filter.match(permanent, game) + && permanent.isPhasedIn()).count() == num; + } /** @@ -186,14 +176,10 @@ public class Battlefield implements Serializable { public boolean contains(FilterPermanent filter, UUID sourcePlayerId, Game game, int num) { int count = 0; if (game.getRangeOfInfluence() == RangeOfInfluence.ALL) { - for (Permanent permanent : field.values()) { - if (filter.match(permanent, null, sourcePlayerId, game) && permanent.isPhasedIn()) { - count++; - if (num == count) { - return true; - } - } - } + return field.values().stream() + .filter(permanent -> filter.match(permanent, null, sourcePlayerId, game) + && permanent.isPhasedIn()).count() == num; + } else { Set range = game.getPlayer(sourcePlayerId).getInRange(); for (Permanent permanent : field.values()) { @@ -245,13 +231,10 @@ public class Battlefield implements Serializable { } public List getAllActivePermanents() { - List active = new ArrayList<>(); - for (Permanent perm : field.values()) { - if (perm.isPhasedIn()) { - active.add(perm); - } - } - return active; + return field.values() + .stream() + .filter(Permanent::isPhasedIn) + .collect(Collectors.toList()); } /** @@ -263,13 +246,11 @@ public class Battlefield implements Serializable { * @see Permanent */ public List getAllActivePermanents(UUID controllerId) { - List active = new ArrayList<>(); - for (Permanent perm : field.values()) { - if (perm.isPhasedIn() && perm.getControllerId().equals(controllerId)) { - active.add(perm); - } - } - return active; + return field.values() + .stream() + .filter(perm -> perm.isPhasedIn() + && perm.getControllerId().equals(controllerId)) + .collect(Collectors.toList()); } /** @@ -281,20 +262,13 @@ public class Battlefield implements Serializable { * @see Permanent */ public List getAllActivePermanents(CardType type) { - List active = new ArrayList<>(); - for (Permanent perm : field.values()) { - if (perm.isPhasedIn() && perm.getCardType().contains(type)) { - active.add(perm); - } - } - return active; + return field.values().stream().filter(perm -> perm.isPhasedIn() && perm.getCardType().contains(type)).collect(Collectors.toList()); } /** * Returns all {@link Permanent} on the battlefield that match the supplied * filter. This method ignores the range of influence. * - * * @param filter * @param game * @return a list of {@link Permanent} @@ -387,14 +361,13 @@ public class Battlefield implements Serializable { if (game.getRangeOfInfluence() == RangeOfInfluence.ALL) { return getAllActivePermanents(); } else { - List active = new ArrayList<>(); Set range = game.getPlayer(sourcePlayerId).getInRange(); - for (Permanent perm : field.values()) { - if (perm.isPhasedIn() && range.contains(perm.getControllerId())) { - active.add(perm); - } - } - return active; + return field.values() + .stream() + .filter(perm -> perm.isPhasedIn() + && range.contains(perm.getControllerId())) + .collect(Collectors.toList()); + } } diff --git a/Mage/src/main/java/mage/game/tournament/TournamentPlayer.java b/Mage/src/main/java/mage/game/tournament/TournamentPlayer.java index 5b4042155a5..21afc64ffbb 100644 --- a/Mage/src/main/java/mage/game/tournament/TournamentPlayer.java +++ b/Mage/src/main/java/mage/game/tournament/TournamentPlayer.java @@ -206,19 +206,19 @@ public class TournamentPlayer { } public void setStateAtTournamentEnd() { - if (this.getState().equals(TournamentPlayerState.DRAFTING) - || this.getState().equals(TournamentPlayerState.CONSTRUCTING) - || this.getState().equals(TournamentPlayerState.DUELING) - || this.getState().equals(TournamentPlayerState.SIDEBOARDING) - || this.getState().equals(TournamentPlayerState.WAITING)) { + if (this.getState() == TournamentPlayerState.DRAFTING + || this.getState() == TournamentPlayerState.CONSTRUCTING + || this.getState() == TournamentPlayerState.DUELING + || this.getState() == TournamentPlayerState.SIDEBOARDING + || this.getState() == TournamentPlayerState.WAITING) { this.setState(TournamentPlayerState.FINISHED); } } public boolean isInTournament() { - return !this.getState().equals(TournamentPlayerState.CANCELED) - && !this.getState().equals(TournamentPlayerState.ELIMINATED) - && !this.getState().equals(TournamentPlayerState.FINISHED); + return !(this.getState() == TournamentPlayerState.CANCELED) + && !(this.getState() == TournamentPlayerState.ELIMINATED) + && !(this.getState() == TournamentPlayerState.FINISHED); } public TournamentPlayer getReplacedTournamentPlayer() { diff --git a/Mage/src/main/java/mage/util/CardUtil.java b/Mage/src/main/java/mage/util/CardUtil.java index d40647ebae2..de51b575fac 100644 --- a/Mage/src/main/java/mage/util/CardUtil.java +++ b/Mage/src/main/java/mage/util/CardUtil.java @@ -593,7 +593,7 @@ public class CardUtil { public static Set getCMC(MageObject object) { Set cmcObject = new HashSet<>(); if (object instanceof Spell) { - cmcObject.add(((Spell) object).getConvertedManaCost()); + cmcObject.add(object.getConvertedManaCost()); } else if (object instanceof Card) { Card card = (Card) object; if (card instanceof SplitCard) {