From e977420ffa6ee25b8471298444c2a6f3882ca412 Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Fri, 6 Sep 2019 12:55:40 +0800 Subject: [PATCH] Finalization for Refactoring --- .../java/forge/ai/AiAttackController.java | 3 +- .../main/java/forge/ai/AiBlockController.java | 11 +--- .../src/main/java/forge/ai/ComputerUtil.java | 3 +- .../src/main/java/forge/ai/GameState.java | 10 +-- .../main/java/forge/ai/ability/AttachAi.java | 21 ++----- .../main/java/forge/ai/ability/TokenAi.java | 26 ++++---- .../ai/simulation/SpellAbilityPicker.java | 14 ++--- .../main/java/forge/card/mana/ManaCost.java | 4 +- .../src/main/java/forge/deck/DeckGroup.java | 4 +- .../src/main/java/forge/util/TextUtil.java | 2 +- .../java/forge/util/collect/FCollection.java | 18 +----- .../java/forge/game/GameLogFormatter.java | 10 +-- .../java/forge/game/ability/AbilityUtils.java | 12 +--- .../game/ability/SpellAbilityEffect.java | 4 +- .../ability/effects/ChangeZoneEffect.java | 4 +- .../game/ability/effects/CloneEffect.java | 2 +- .../ability/effects/DamageDealEffect.java | 6 +- .../ability/effects/DamagePreventEffect.java | 4 +- .../game/ability/effects/DestroyEffect.java | 6 +- .../forge/game/ability/effects/DigEffect.java | 4 +- .../game/ability/effects/EncodeEffect.java | 2 +- .../game/ability/effects/FightEffect.java | 4 +- .../game/ability/effects/FlipCoinEffect.java | 2 +- .../game/ability/effects/MillEffect.java | 2 +- .../game/ability/effects/ProtectEffect.java | 6 +- .../game/ability/effects/PumpEffect.java | 6 +- .../game/ability/effects/SacrificeEffect.java | 2 +- .../game/ability/effects/TokenEffect.java | 10 +-- .../game/ability/effects/TwoPilesEffect.java | 8 +-- .../src/main/java/forge/game/card/Card.java | 41 ++++++------ .../java/forge/game/card/CardFactoryUtil.java | 34 +++++----- .../java/forge/game/card/CardPlayOption.java | 2 +- .../main/java/forge/game/card/CardUtil.java | 2 +- .../main/java/forge/game/card/CardView.java | 2 +- .../main/java/forge/game/combat/Combat.java | 4 +- .../forge/game/cost/CostRemoveAnyCounter.java | 2 +- .../java/forge/game/cost/CostTapType.java | 2 +- .../forge/game/mana/ManaCostBeingPaid.java | 4 +- .../src/main/java/forge/game/phase/Untap.java | 8 +-- .../java/forge/deckchooser/FDeckChooser.java | 2 +- .../forge/gui/framework/SRearrangingUtil.java | 4 +- .../forge/gui/framework/SResizingUtil.java | 4 +- .../itemmanager/filters/ListLabelFilter.java | 4 +- .../itemmanager/filters/StatTypeFilter.java | 2 +- .../forge/itemmanager/views/ImageView.java | 4 +- .../main/java/forge/screens/home/CLobby.java | 5 +- .../home/gauntlet/ContestGauntletLister.java | 2 +- .../home/gauntlet/QuickGauntletLister.java | 2 +- .../home/quest/CSubmenuChallenges.java | 2 +- .../screens/home/quest/CSubmenuDuels.java | 2 +- .../screens/home/quest/QuestFileLister.java | 2 +- .../home/settings/VSubmenuDownloaders.java | 12 ++-- .../forge/screens/match/VAssignDamage.java | 2 +- .../src/main/java/forge/view/FView.java | 3 +- .../src/forge/animation/GifDecoder.java | 12 ++-- .../src/forge/deck/FDeckChooser.java | 2 +- .../src/forge/deck/FDeckImportDialog.java | 2 +- .../itemmanager/filters/ListLabelFilter.java | 4 +- .../forge/itemmanager/views/ImageView.java | 4 +- .../screens/constructed/LobbyScreen.java | 8 +-- .../screens/gauntlet/LoadGauntletScreen.java | 4 +- .../match/winlose/GauntletWinLose.java | 7 +-- .../planarconquest/LoadConquestScreen.java | 4 +- .../forge/screens/quest/LoadQuestScreen.java | 4 +- .../forge/screens/settings/SettingsPage.java | 5 +- .../src/forge/toolbox/FComboBox.java | 9 +-- .../main/java/forge/card/CardDetailUtil.java | 18 +++--- .../forge/card/CardReaderExperiments.java | 2 +- .../java/forge/deck/DeckGeneratorTheme.java | 10 +-- .../src/main/java/forge/deck/DeckgenUtil.java | 3 +- .../forge/itemmanager/AdvancedSearch.java | 18 +++--- .../forge/itemmanager/BooleanExpression.java | 18 +++--- .../java/forge/itemmanager/SFilterUtil.java | 10 +-- .../forge/itemmanager/SItemManagerUtil.java | 2 +- .../main/java/forge/limited/CardRanker.java | 3 +- .../match/input/InputConfirmMulligan.java | 6 +- .../forge/planarconquest/ConquestData.java | 18 +++--- .../forge/planarconquest/ConquestUtil.java | 16 ++--- .../src/main/java/forge/player/HumanPlay.java | 2 +- .../forge/player/PlayerControllerHuman.java | 19 +++--- .../properties/ForgeProfileProperties.java | 12 ++-- .../java/forge/quest/QuestEventDraft.java | 26 ++++---- .../java/forge/quest/QuestRewardCard.java | 12 ++-- .../src/main/java/forge/quest/QuestUtil.java | 2 +- .../forge/quest/QuestWinLoseController.java | 2 +- .../forge/quest/bazaar/QuestPetStorage.java | 4 +- .../main/java/forge/quest/io/QuestDataIO.java | 8 +-- .../java/forge/sound/EventVisualizer.java | 62 +++++++++---------- .../src/main/java/forge/util/RestartUtil.java | 4 +- 89 files changed, 312 insertions(+), 393 deletions(-) diff --git a/forge-ai/src/main/java/forge/ai/AiAttackController.java b/forge-ai/src/main/java/forge/ai/AiAttackController.java index 12b309f09aa..277128eb06d 100644 --- a/forge-ai/src/main/java/forge/ai/AiAttackController.java +++ b/forge-ai/src/main/java/forge/ai/AiAttackController.java @@ -103,8 +103,7 @@ public class AiAttackController { } // overloaded constructor to evaluate single specified attacker public static List getOpponentCreatures(final Player defender) { - List defenders = new ArrayList<>(); - defenders.addAll(defender.getCreaturesInPlay()); + List defenders = new ArrayList<>(defender.getCreaturesInPlay()); Predicate canAnimate = new Predicate() { @Override public boolean apply(Card c) { diff --git a/forge-ai/src/main/java/forge/ai/AiBlockController.java b/forge-ai/src/main/java/forge/ai/AiBlockController.java index e87a974d2db..68d0622b1a4 100644 --- a/forge-ai/src/main/java/forge/ai/AiBlockController.java +++ b/forge-ai/src/main/java/forge/ai/AiBlockController.java @@ -148,9 +148,7 @@ public class AiBlockController { final CardCollection attackers = combat.getAttackersOf(defender); // Begin with the attackers that pose the biggest threat CardLists.sortByPowerDesc(attackers); - for (final Card c : attackers) { - sortedAttackers.add(c); - } + sortedAttackers.addAll(attackers); } else if (defender instanceof Player && defender.equals(ai)) { firstAttacker = combat.getAttackersOf(defender); } @@ -163,9 +161,7 @@ public class AiBlockController { } } else { // add creatures attacking the Player to the back of the list - for (final Card c : firstAttacker) { - sortedAttackers.add(c); - } + sortedAttackers.addAll(firstAttacker); } return sortedAttackers; } @@ -481,8 +477,7 @@ public class AiBlockController { final int damageNeeded = ComputerUtilCombat.getDamageToKill(attacker) + ComputerUtilCombat.predictToughnessBonusOfAttacker(attacker, secondBlocker, combat, false); - List usableBlockersAsThird = new ArrayList<>(); - usableBlockersAsThird.addAll(usableBlockers); + List usableBlockersAsThird = new ArrayList<>(usableBlockers); usableBlockersAsThird.remove(secondBlocker); // loop over the remaining blockers in search of a good third blocker candidate diff --git a/forge-ai/src/main/java/forge/ai/ComputerUtil.java b/forge-ai/src/main/java/forge/ai/ComputerUtil.java index 9cf6b37e417..1d5d4eb26e1 100644 --- a/forge-ai/src/main/java/forge/ai/ComputerUtil.java +++ b/forge-ai/src/main/java/forge/ai/ComputerUtil.java @@ -2283,8 +2283,7 @@ public class ComputerUtil { chosen = ComputerUtilCard.getMostProminentType(list, valid); } else if (logic.equals("MostNeededType")) { // Choose a type that is in the deck, but not in hand or on the battlefield - final List basics = new ArrayList<>(); - basics.addAll(CardType.Constant.BASIC_TYPES); + final List basics = new ArrayList<>(CardType.Constant.BASIC_TYPES); CardCollectionView presentCards = CardCollection.combine(ai.getCardsIn(ZoneType.Battlefield), ai.getCardsIn(ZoneType.Hand)); CardCollectionView possibleCards = ai.getAllCards(); diff --git a/forge-ai/src/main/java/forge/ai/GameState.java b/forge-ai/src/main/java/forge/ai/GameState.java index 1703b9b0869..6edd9ffb70e 100644 --- a/forge-ai/src/main/java/forge/ai/GameState.java +++ b/forge-ai/src/main/java/forge/ai/GameState.java @@ -254,7 +254,7 @@ public abstract class GameState { newText.append(";"); } if (c.isToken()) { - newText.append("t:" + new TokenInfo(c).toString()); + newText.append("t:").append(new TokenInfo(c).toString()); } else { if (c.getPaperCard() == null) { return; @@ -377,7 +377,7 @@ public abstract class GameState { newText.append("|Attacking"); GameEntity def = c.getGame().getCombat().getDefenderByAttacker(c); if (def instanceof Card) { - newText.append(":" + def.getId()); + newText.append(":").append(def.getId()); } } } @@ -653,15 +653,15 @@ public abstract class GameState { } private String processManaPool(ManaPool manaPool) { - String mana = ""; + StringBuilder mana = new StringBuilder(); for (final byte c : MagicColor.WUBRGC) { int amount = manaPool.getAmountOfColor(c); for (int i = 0; i < amount; i++) { - mana += MagicColor.toShortString(c) + " "; + mana.append(MagicColor.toShortString(c)).append(" "); } } - return mana.trim(); + return mana.toString().trim(); } private void updateManaPool(Player p, String manaDef, boolean clearPool, boolean persistent) { diff --git a/forge-ai/src/main/java/forge/ai/ability/AttachAi.java b/forge-ai/src/main/java/forge/ai/ability/AttachAi.java index 43cfb9dd765..1b0ab5d0f5a 100644 --- a/forge-ai/src/main/java/forge/ai/ability/AttachAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/AttachAi.java @@ -31,10 +31,7 @@ import forge.game.trigger.TriggerType; import forge.game.zone.ZoneType; import forge.util.MyRandom; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Map; +import java.util.*; public class AttachAi extends SpellAbilityAi { @@ -875,15 +872,11 @@ public class AttachAi extends SpellAbilityAi { String kws = stabMap.get("AddKeyword"); if (kws != null) { - for (final String kw : kws.split(" & ")) { - keywords.add(kw); - } + keywords.addAll(Arrays.asList(kws.split(" & "))); } kws = stabMap.get("AddHiddenKeyword"); if (kws != null) { - for (final String kw : kws.split(" & ")) { - keywords.add(kw); - } + keywords.addAll(Arrays.asList(kws.split(" & "))); } } } @@ -1173,15 +1166,11 @@ public class AttachAi extends SpellAbilityAi { String kws = stabMap.get("AddKeyword"); if (kws != null) { - for (final String kw : kws.split(" & ")) { - keywords.add(kw); - } + keywords.addAll(Arrays.asList(kws.split(" & "))); } kws = stabMap.get("AddHiddenKeyword"); if (kws != null) { - for (final String kw : kws.split(" & ")) { - keywords.add(kw); - } + keywords.addAll(Arrays.asList(kws.split(" & "))); } } } diff --git a/forge-ai/src/main/java/forge/ai/ability/TokenAi.java b/forge-ai/src/main/java/forge/ai/ability/TokenAi.java index ecc32895e01..49ce81440e9 100644 --- a/forge-ai/src/main/java/forge/ai/ability/TokenAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/TokenAi.java @@ -403,7 +403,7 @@ public class TokenAi extends SpellAbilityAi { String tokenToughness = sa.getParam("TokenToughness"); String tokenName = sa.getParam("TokenName"); String[] tokenTypes = sa.getParam("TokenTypes").split(","); - String cost = ""; + StringBuilder cost = new StringBuilder(); String[] tokenColors = sa.getParam("TokenColors").split(","); String tokenImage = sa.hasParam("TokenImage") ? PaperToken.makeTokenFileName(sa.getParam("TokenImage")) : ""; String[] tokenAbilities = sa.hasParam("TokenAbilities") ? sa.getParam("TokenAbilities").split(",") : null; @@ -418,35 +418,35 @@ public class TokenAi extends SpellAbilityAi { substitutedColors[i] = host.getChosenColor(); } } - String colorDesc = ""; + StringBuilder colorDesc = new StringBuilder(); for (final String col : substitutedColors) { if (col.equalsIgnoreCase("White")) { - colorDesc += "W "; + colorDesc.append("W "); } else if (col.equalsIgnoreCase("Blue")) { - colorDesc += "U "; + colorDesc.append("U "); } else if (col.equalsIgnoreCase("Black")) { - colorDesc += "B "; + colorDesc.append("B "); } else if (col.equalsIgnoreCase("Red")) { - colorDesc += "R "; + colorDesc.append("R "); } else if (col.equalsIgnoreCase("Green")) { - colorDesc += "G "; + colorDesc.append("G "); } else if (col.equalsIgnoreCase("Colorless")) { - colorDesc = "C"; + colorDesc = new StringBuilder("C"); } } final List imageNames = new ArrayList<>(1); if (tokenImage.equals("")) { - imageNames.add(PaperToken.makeTokenFileName(TextUtil.fastReplace(colorDesc, " ", ""), tokenPower, tokenToughness, tokenName)); + imageNames.add(PaperToken.makeTokenFileName(TextUtil.fastReplace(colorDesc.toString(), " ", ""), tokenPower, tokenToughness, tokenName)); } else { imageNames.add(0, tokenImage); } - for (final char c : colorDesc.toCharArray()) { - cost += c + ' '; + for (final char c : colorDesc.toString().toCharArray()) { + cost.append(c + ' '); } - cost = colorDesc.replace('C', '1').trim(); + cost = new StringBuilder(colorDesc.toString().replace('C', '1').trim()); final int finalPower = AbilityUtils.calculateAmount(host, tokenPower, sa); final int finalToughness = AbilityUtils.calculateAmount(host, tokenToughness, sa); @@ -460,7 +460,7 @@ public class TokenAi extends SpellAbilityAi { final String substitutedName = tokenName.equals("ChosenType") ? host.getChosenType() : tokenName; final String imageName = imageNames.get(MyRandom.getRandom().nextInt(imageNames.size())); final TokenInfo tokenInfo = new TokenInfo(substitutedName, imageName, - cost, substitutedTypes, tokenKeywords, finalPower, finalToughness); + cost.toString(), substitutedTypes, tokenKeywords, finalPower, finalToughness); Card token = tokenInfo.makeOneToken(ai); if (token == null) { diff --git a/forge-ai/src/main/java/forge/ai/simulation/SpellAbilityPicker.java b/forge-ai/src/main/java/forge/ai/simulation/SpellAbilityPicker.java index 43f0c6f5e89..b81c648c1d2 100644 --- a/forge-ai/src/main/java/forge/ai/simulation/SpellAbilityPicker.java +++ b/forge-ai/src/main/java/forge/ai/simulation/SpellAbilityPicker.java @@ -270,28 +270,28 @@ public class SpellAbilityPicker { return abilityToString(sa, true); } public static String abilityToString(SpellAbility sa, boolean withTargets) { - String saString = "N/A"; + StringBuilder saString = new StringBuilder("N/A"); if (sa != null) { - saString = sa.toString(); + saString = new StringBuilder(sa.toString()); String cardName = sa.getHostCard().getName(); if (!cardName.isEmpty()) { - saString = TextUtil.fastReplace(saString, cardName, "<$>"); + saString = new StringBuilder(TextUtil.fastReplace(saString.toString(), cardName, "<$>")); } if (saString.length() > 40) { - saString = saString.substring(0, 40) + "..."; + saString = new StringBuilder(saString.substring(0, 40) + "..."); } if (withTargets) { SpellAbility saOrSubSa = sa; do { if (saOrSubSa.usesTargeting()) { - saString += " (targets: " + saOrSubSa.getTargets().getTargetedString() + ")"; + saString.append(" (targets: ").append(saOrSubSa.getTargets().getTargetedString()).append(")"); } saOrSubSa = saOrSubSa.getSubAbility(); } while (saOrSubSa != null); } - saString = sa.getHostCard() + " -> " + saString; + saString.insert(0, sa.getHostCard() + " -> "); } - return saString; + return saString.toString(); } private boolean shouldWaitForLater(final SpellAbility sa) { diff --git a/forge-core/src/main/java/forge/card/mana/ManaCost.java b/forge-core/src/main/java/forge/card/mana/ManaCost.java index 90886018108..51611a48d18 100644 --- a/forge-core/src/main/java/forge/card/mana/ManaCost.java +++ b/forge-core/src/main/java/forge/card/mana/ManaCost.java @@ -114,7 +114,7 @@ public final class ManaCost implements Comparable, Iterable 0) { - sb.append("{" + this.genericCost + "}"); + sb.append("{").append(this.genericCost).append("}"); } for (final ManaCostShard s : this.shards) { if (s == ManaCostShard.X) { @@ -251,7 +251,7 @@ public final class ManaCost implements Comparable, Iterable " + (p.getValue() == null ? "(null)" : p.getValue().toString())); + mapAsString.append(p.getKey()).append(" => ").append(p.getValue() == null ? "(null)" : p.getValue().toString()); } return mapAsString.toString(); } diff --git a/forge-core/src/main/java/forge/util/collect/FCollection.java b/forge-core/src/main/java/forge/util/collect/FCollection.java index 1438b4f802c..4599035c795 100644 --- a/forge-core/src/main/java/forge/util/collect/FCollection.java +++ b/forge-core/src/main/java/forge/util/collect/FCollection.java @@ -9,15 +9,7 @@ import com.google.common.collect.Sets; import org.apache.commons.lang3.ArrayUtils; import java.io.Serializable; -import java.util.Collection; -import java.util.Collections; -import java.util.Comparator; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; -import java.util.ListIterator; -import java.util.NoSuchElementException; -import java.util.Set; +import java.util.*; /** * Collection with unique elements ({@link Set}) that maintains the order in @@ -73,9 +65,7 @@ public class FCollection implements List, /*Set,*/ FCollectionView, * creation. */ public FCollection(final T[] c) { - for (final T e : c) { - add(e); - } + this.addAll(Arrays.asList(c)); } /** @@ -87,9 +77,7 @@ public class FCollection implements List, /*Set,*/ FCollectionView, * creation. */ public FCollection(final Iterable i) { - for (final T e : i) { - add(e); - } + this.addAll(i); } /** diff --git a/forge-game/src/main/java/forge/game/GameLogFormatter.java b/forge-game/src/main/java/forge/game/GameLogFormatter.java index 520d39d33f4..9716126bd6b 100644 --- a/forge-game/src/main/java/forge/game/GameLogFormatter.java +++ b/forge-game/src/main/java/forge/game/GameLogFormatter.java @@ -229,11 +229,11 @@ public class GameLogFormatter extends IGameEventVisitor.Base { continue; } if (sb.length() > 0) sb.append("\n"); - sb.append(ev.player + " assigned " + Lang.joinHomogenous(attackers)); - sb.append(" to attack " + k + "."); + sb.append(ev.player).append(" assigned ").append(Lang.joinHomogenous(attackers)); + sb.append(" to attack ").append(k).append("."); } if (sb.length() == 0) { - sb.append(ev.player + " didn't attack this turn."); + sb.append(ev.player).append(" didn't attack this turn."); } return new GameLogEntry(GameLogEntryType.COMBAT, sb.toString()); } @@ -265,10 +265,10 @@ public class GameLogFormatter extends IGameEventVisitor.Base { blockers = att.getValue(); if (blockers.isEmpty()) { - sb.append(controllerName + " didn't block "); + sb.append(controllerName).append(" didn't block "); } else { - sb.append(controllerName + " assigned " + Lang.joinHomogenous(blockers) + " to block "); + sb.append(controllerName).append(" assigned ").append(Lang.joinHomogenous(blockers)).append(" to block "); } sb.append(att.getKey()).append("."); diff --git a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java index e4cb884ad78..3da8d02f45e 100644 --- a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java +++ b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java @@ -149,9 +149,7 @@ public class AbilityUtils { if (crd instanceof Card) { c = game.getCardState((Card) crd); } else if (crd instanceof Iterable) { - for (final Card cardItem : Iterables.filter((Iterable) crd, Card.class)) { - cards.add(cardItem); - } + cards.addAll(Iterables.filter((Iterable) crd, Card.class)); } } } @@ -161,9 +159,7 @@ public class AbilityUtils { if (crd instanceof Card) { c = game.getCardState((Card) crd); } else if (crd instanceof List) { - for (final Card cardItem : (CardCollection) crd) { - cards.add(cardItem); - } + cards.addAll((CardCollection) crd); } } else if (defined.equals("Remembered") || defined.equals("RememberedCard")) { @@ -530,9 +526,7 @@ public class AbilityUtils { } if (calcX[0].endsWith("LKI")) { // last known information - for (final Card c : newCard.getImprintedCards()) { - list.add(c); - } + list.addAll(newCard.getImprintedCards()); } else { for (final Card c : newCard.getImprintedCards()) { diff --git a/forge-game/src/main/java/forge/game/ability/SpellAbilityEffect.java b/forge-game/src/main/java/forge/game/ability/SpellAbilityEffect.java index 831141a7b0b..160febd110b 100644 --- a/forge-game/src/main/java/forge/game/ability/SpellAbilityEffect.java +++ b/forge-game/src/main/java/forge/game/ability/SpellAbilityEffect.java @@ -83,7 +83,7 @@ public abstract class SpellAbilityEffect { "CARDNAME", sa.getHostCard().getName())); } if (sa.getTargets() != null && !sa.getTargets().getTargets().isEmpty()) { - sb.append(" (Targeting: " + sa.getTargets().getTargets() + ")"); + sb.append(" (Targeting: ").append(sa.getTargets().getTargets()).append(")"); } } else if (!"None".equalsIgnoreCase(stackDesc)) { // by typing "none" they want to suppress output makeSpellDescription(sa, sb, stackDesc); @@ -258,7 +258,7 @@ public abstract class SpellAbilityEffect { if (your) { delTrig.append("| ValidPlayer$ You "); } - delTrig.append("| TriggerDescription$ " + desc); + delTrig.append("| TriggerDescription$ ").append(desc); final Trigger trig = TriggerHandler.parseTrigger(delTrig.toString(), sa.getHostCard(), intrinsic); for (final Card c : crds) { diff --git a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java index 8f8baaaaa00..b18b305f9b9 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java @@ -876,9 +876,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect { selectedCards = decider.getController().chooseCardsForZoneChange(destination, origin, sa, fetchList, 0, changeNum, delayedReveal, selectPrompt, decider); } while (selectedCards != null && selectedCards.size() > changeNum); if (selectedCards != null) { - for (Card card : selectedCards) { - chosenCards.add(card); - } + chosenCards.addAll(selectedCards); } // maybe prompt the user if they selected fewer than the maximum possible? } else { diff --git a/forge-game/src/main/java/forge/game/ability/effects/CloneEffect.java b/forge-game/src/main/java/forge/game/ability/effects/CloneEffect.java index 950643e4a9c..742132bac5f 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/CloneEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/CloneEffect.java @@ -40,7 +40,7 @@ public class CloneEffect extends SpellAbilityEffect { } sb.append(tgtCard); - sb.append(" becomes a copy of " + cardToCopy + "."); + sb.append(" becomes a copy of ").append(cardToCopy).append("."); return sb.toString(); } // end cloneStackDescription() diff --git a/forge-game/src/main/java/forge/game/ability/effects/DamageDealEffect.java b/forge-game/src/main/java/forge/game/ability/effects/DamageDealEffect.java index 97b00f3c9be..bfb6258496d 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/DamageDealEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/DamageDealEffect.java @@ -108,10 +108,8 @@ public class DamageDealEffect extends DamageBaseEffect { } // Can't radiate from a player if (origin != null) { - for (final Card c : CardUtil.getRadiance(hostCard, origin, - sa.getParam("ValidTgts").split(","))) { - tgts.add(c); - } + tgts.addAll(CardUtil.getRadiance(hostCard, origin, + sa.getParam("ValidTgts").split(","))); } } diff --git a/forge-game/src/main/java/forge/game/ability/effects/DamagePreventEffect.java b/forge-game/src/main/java/forge/game/ability/effects/DamagePreventEffect.java index fb2df2a405a..5b7ce50d73f 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/DamagePreventEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/DamagePreventEffect.java @@ -81,9 +81,7 @@ public class DamagePreventEffect extends SpellAbilityEffect { } if (origin != null) { // Can't radiate from a player - for (final Card c : CardUtil.getRadiance(host, origin, sa.getParam("ValidTgts").split(","))) { - untargetedCards.add(c); - } + untargetedCards.addAll(CardUtil.getRadiance(host, origin, sa.getParam("ValidTgts").split(","))); } } diff --git a/forge-game/src/main/java/forge/game/ability/effects/DestroyEffect.java b/forge-game/src/main/java/forge/game/ability/effects/DestroyEffect.java index b8d71057e54..e53e99e19c0 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/DestroyEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/DestroyEffect.java @@ -78,10 +78,8 @@ public class DestroyEffect extends SpellAbilityEffect { CardCollection untargetedCards = new CardCollection(); if (sa.hasParam("Radiance")) { - for (final Card c : CardUtil.getRadiance(card, tgtCards.get(0), - sa.getParam("ValidTgts").split(","))) { - untargetedCards.add(c); - } + untargetedCards.addAll(CardUtil.getRadiance(card, tgtCards.get(0), + sa.getParam("ValidTgts").split(","))); } if (tgtCards.size() > 1) { diff --git a/forge-game/src/main/java/forge/game/ability/effects/DigEffect.java b/forge-game/src/main/java/forge/game/ability/effects/DigEffect.java index 7c654e8689d..dca94e86b5d 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/DigEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/DigEffect.java @@ -167,9 +167,7 @@ public class DigEffect extends SpellAbilityEffect { if (!noMove) { CardCollection movedCards; - for (final Card c : top) { - rest.add(c); - } + rest.addAll(top); CardCollection valid; if (mitosis) { valid = sharesNameWithCardOnBattlefield(game, top); diff --git a/forge-game/src/main/java/forge/game/ability/effects/EncodeEffect.java b/forge-game/src/main/java/forge/game/ability/effects/EncodeEffect.java index 6ededdfbf7c..7b0754c09cf 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/EncodeEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/EncodeEffect.java @@ -45,7 +45,7 @@ public class EncodeEffect extends SpellAbilityEffect { final StringBuilder sb = new StringBuilder(); - sb.append("Do you want to exile " + host + " and encode it onto a creature you control?"); + sb.append("Do you want to exile ").append(host).append(" and encode it onto a creature you control?"); if (!player.getController().confirmAction(sa, null, sb.toString())) { return; } diff --git a/forge-game/src/main/java/forge/game/ability/effects/FightEffect.java b/forge-game/src/main/java/forge/game/ability/effects/FightEffect.java index 4029bfd4d12..aa57af95f61 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/FightEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/FightEffect.java @@ -26,10 +26,10 @@ public class FightEffect extends DamageBaseEffect { List fighters = getFighters(sa); if (fighters.size() > 1) { - sb.append(fighters.get(0) + " fights " + fighters.get(1)); + sb.append(fighters.get(0)).append(" fights ").append(fighters.get(1)); } else if (fighters.size() == 1) { - sb.append(fighters.get(0) + " fights unknown"); + sb.append(fighters.get(0)).append(" fights unknown"); } return sb.toString(); } diff --git a/forge-game/src/main/java/forge/game/ability/effects/FlipCoinEffect.java b/forge-game/src/main/java/forge/game/ability/effects/FlipCoinEffect.java index 9724391b980..c23c2fb8f78 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/FlipCoinEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/FlipCoinEffect.java @@ -35,7 +35,7 @@ public class FlipCoinEffect extends SpellAbilityEffect { sb.append(player).append(" flips a coin."); if (tgts != null && !tgts.isEmpty()) { - sb.append(" Targeting: " + tgts + "."); + sb.append(" Targeting: ").append(tgts).append("."); } return sb.toString(); } diff --git a/forge-game/src/main/java/forge/game/ability/effects/MillEffect.java b/forge-game/src/main/java/forge/game/ability/effects/MillEffect.java index 1bbe40ac2a3..eca41963660 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/MillEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/MillEffect.java @@ -105,7 +105,7 @@ public class MillEffect extends SpellAbilityEffect { sb.append("s"); } final String millPosition = sa.hasParam("FromBottom") ? "bottom" : "top"; - sb.append(" from the " + millPosition + " of their library."); + sb.append(" from the ").append(millPosition).append(" of their library."); return sb.toString(); diff --git a/forge-game/src/main/java/forge/game/ability/effects/ProtectEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ProtectEffect.java index 45b268b9873..dd4769a547a 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ProtectEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ProtectEffect.java @@ -132,10 +132,8 @@ public class ProtectEffect extends SpellAbilityEffect { final TargetRestrictions tgt = sa.getTargetRestrictions(); if (sa.hasParam("Radiance") && (tgt != null)) { - for (final Card c : CardUtil.getRadiance(host, tgtCards.get(0), - sa.getParam("ValidTgts").split(","))) { - untargetedCards.add(c); - } + untargetedCards.addAll(CardUtil.getRadiance(host, tgtCards.get(0), + sa.getParam("ValidTgts").split(","))); } diff --git a/forge-game/src/main/java/forge/game/ability/effects/PumpEffect.java b/forge-game/src/main/java/forge/game/ability/effects/PumpEffect.java index 72c2987dd5c..4bd8a310b2c 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/PumpEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/PumpEffect.java @@ -332,10 +332,8 @@ public class PumpEffect extends SpellAbilityEffect { } if (sa.hasParam("Radiance")) { - for (final Card c : CardUtil.getRadiance(host, tgtCards.get(0), sa.getParam("ValidTgts") - .split(","))) { - untargetedCards.add(c); - } + untargetedCards.addAll(CardUtil.getRadiance(host, tgtCards.get(0), sa.getParam("ValidTgts") + .split(","))); } final ZoneType pumpZone = sa.hasParam("PumpZone") ? ZoneType.smartValueOf(sa.getParam("PumpZone")) diff --git a/forge-game/src/main/java/forge/game/ability/effects/SacrificeEffect.java b/forge-game/src/main/java/forge/game/ability/effects/SacrificeEffect.java index 607c18d793c..367d9785286 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/SacrificeEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/SacrificeEffect.java @@ -62,7 +62,7 @@ public class SacrificeEffect extends SpellAbilityEffect { game.updateLastStateForCard(card); StringBuilder sb = new StringBuilder(); - sb.append("Cumulative upkeep for " + card); + sb.append("Cumulative upkeep for ").append(card); boolean isPaid = activator.getController().payManaOptional(card, payCost, sa, sb.toString(), ManaPaymentPurpose.CumulativeUpkeep); final Map runParams = Maps.newHashMap(); diff --git a/forge-game/src/main/java/forge/game/ability/effects/TokenEffect.java b/forge-game/src/main/java/forge/game/ability/effects/TokenEffect.java index 548b7b18844..3c590887b26 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/TokenEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/TokenEffect.java @@ -368,14 +368,14 @@ public class TokenEffect extends SpellAbilityEffect { } private String parseColorForImage() { - String originalColorDesc = ""; + StringBuilder originalColorDesc = new StringBuilder(); for (final String col : this.tokenOriginalColors) { - originalColorDesc += MagicColor.toShortString(col); - if (originalColorDesc.equals("C")) { - return originalColorDesc; + originalColorDesc.append(MagicColor.toShortString(col)); + if (originalColorDesc.toString().equals("C")) { + return originalColorDesc.toString(); } } - return originalColorDesc; + return originalColorDesc.toString(); } private String determineTokenColor(Card host) { diff --git a/forge-game/src/main/java/forge/game/ability/effects/TwoPilesEffect.java b/forge-game/src/main/java/forge/game/ability/effects/TwoPilesEffect.java index d25125b73df..37febec93c9 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/TwoPilesEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/TwoPilesEffect.java @@ -106,16 +106,16 @@ public class TwoPilesEffect extends SpellAbilityEffect { CardCollectionView chosenPile = pile1WasChosen ? pile1 : pile2; CardCollectionView unchosenPile = !pile1WasChosen ? pile1 : pile2; - String notification = chooser + " chooses Pile " + (pile1WasChosen ? "1" : "2") + ":\n"; + StringBuilder notification = new StringBuilder(chooser + " chooses Pile " + (pile1WasChosen ? "1" : "2") + ":\n"); if (!chosenPile.isEmpty()) { for (Card c : chosenPile) { - notification += c.getName() + "\n"; + notification.append(c.getName()).append("\n"); } } else { - notification += "(Empty pile)"; + notification.append("(Empty pile)"); } - p.getGame().getAction().nofityOfValue(sa, chooser, notification, chooser); + p.getGame().getAction().nofityOfValue(sa, chooser, notification.toString(), chooser); // take action on the chosen pile if (sa.hasParam("ChosenPile")) { diff --git a/forge-game/src/main/java/forge/game/card/Card.java b/forge-game/src/main/java/forge/game/card/Card.java index 02f48f06494..78d1123680a 100644 --- a/forge-game/src/main/java/forge/game/card/Card.java +++ b/forge-game/src/main/java/forge/game/card/Card.java @@ -1652,13 +1652,13 @@ public class Card extends GameEntity implements Comparable { if (!mCost.isOnlyManaCost()) { sbLong.append("."); } - sbLong.append(" (" + inst.getReminderText() + ")"); + sbLong.append(" (").append(inst.getReminderText()).append(")"); sbLong.append("\r\n"); } } else if (keyword.startsWith("Emerge")) { final String[] k = keyword.split(":"); sbLong.append(k[0]).append(" ").append(ManaCostParser.parse(k[1])); - sbLong.append(" (" + inst.getReminderText() + ")"); + sbLong.append(" (").append(inst.getReminderText()).append(")"); sbLong.append("\r\n"); } else if (keyword.startsWith("Echo")) { sbLong.append("Echo "); @@ -1689,7 +1689,7 @@ public class Card extends GameEntity implements Comparable { final String[] n = keyword.split(":"); final Cost cost = new Cost(n[1], false); sbLong.append("Multikicker ").append(cost.toSimpleString()); - sbLong.append(" (" + inst.getReminderText() + ")").append("\r\n"); + sbLong.append(" (").append(inst.getReminderText()).append(")").append("\r\n"); } } else if (keyword.startsWith("Kicker")) { if (!keyword.endsWith("Generic")) { @@ -1703,7 +1703,7 @@ public class Card extends GameEntity implements Comparable { final Cost cost2 = new Cost(n[2], false); sbx.append(cost2.toSimpleString()); } - sbx.append(" (" + inst.getReminderText() + ")"); + sbx.append(" (").append(inst.getReminderText()).append(")"); sbLong.append(sbx).append("\r\n"); } } else if (keyword.startsWith("Hexproof:")) { @@ -1733,10 +1733,10 @@ public class Card extends GameEntity implements Comparable { || keyword.equals("Hideaway") || keyword.equals("Ascend") || keyword.equals("Totem armor") || keyword.equals("Battle cry") || keyword.equals("Devoid") || keyword.equals("Riot")){ - sbLong.append(keyword + " (" + inst.getReminderText() + ")"); + sbLong.append(keyword).append(" (").append(inst.getReminderText()).append(")"); } else if (keyword.startsWith("Partner:")) { final String[] k = keyword.split(":"); - sbLong.append("Partner with " + k[1] + " (" + inst.getReminderText() + ")"); + sbLong.append("Partner with ").append(k[1]).append(" (").append(inst.getReminderText()).append(")"); } else if (keyword.startsWith("Modular") || keyword.startsWith("Bloodthirst") || keyword.startsWith("Dredge") || keyword.startsWith("Fabricate") || keyword.startsWith("Soulshift") || keyword.startsWith("Bushido") || keyword.startsWith("Crew") || keyword.startsWith("Tribute") || keyword.startsWith("Absorb") @@ -1745,7 +1745,7 @@ public class Card extends GameEntity implements Comparable { || keyword.startsWith("Afflict") || keyword.startsWith ("Poisonous") || keyword.startsWith("Rampage") || keyword.startsWith("Renown") || keyword.startsWith("Annihilator") || keyword.startsWith("Devour")) { final String[] k = keyword.split(":"); - sbLong.append(k[0] + " " + k[1] + " (" + inst.getReminderText() + ")"); + sbLong.append(k[0]).append(" ").append(k[1]).append(" (").append(inst.getReminderText()).append(")"); } else if (keyword.contains("Haunt")) { sb.append("\r\nHaunt ("); if (isCreature()) { @@ -1766,14 +1766,14 @@ public class Card extends GameEntity implements Comparable { if (sb.length() != 0) { sb.append("\r\n"); } - sb.append(keyword + " (" + inst.getReminderText() + ")"); + sb.append(keyword).append(" (").append(inst.getReminderText()).append(")"); } else if (keyword.endsWith(" offering")) { String offeringType = keyword.split(" ")[0]; if (sb.length() != 0) { sb.append("\r\n"); } sbLong.append(keyword); - sbLong.append(" (" + Keyword.getInstance("Offering:"+ offeringType).getReminderText() + ")"); + sbLong.append(" (").append(Keyword.getInstance("Offering:" + offeringType).getReminderText()).append(")"); } else if (keyword.startsWith("Equip") || keyword.startsWith("Fortify") || keyword.startsWith("Outlast") || keyword.startsWith("Unearth") || keyword.startsWith("Scavenge") || keyword.startsWith("Spectacle") || keyword.startsWith("Evoke") || keyword.startsWith("Bestow") || keyword.startsWith("Dash") @@ -1935,7 +1935,7 @@ public class Card extends GameEntity implements Comparable { String meld = this.getRules().getMeldWith(); if (meld != "" && (!hasMeldEffect)) { sb.append("\r\n"); - sb.append("(Melds with " + meld + ".)"); + sb.append("(Melds with ").append(meld).append(".)"); sb.append("\r\n"); } } @@ -2042,7 +2042,7 @@ public class Card extends GameEntity implements Comparable { } if (isGoaded()) { - sb.append("is goaded by: " + Lang.joinHomogenous(getGoaded())); + sb.append("is goaded by: ").append(Lang.joinHomogenous(getGoaded())); sb.append("\r\n"); } // replace triple line feeds with double line feeds @@ -2104,17 +2104,17 @@ public class Card extends GameEntity implements Comparable { || keyword.equals("Undaunted") || keyword.equals("Cascade") || keyword.equals("Devoid") || keyword.equals("Lifelink") || keyword.equals("Split second")) { - sbBefore.append(keyword + " (" + inst.getReminderText() + ")"); + sbBefore.append(keyword).append(" (").append(inst.getReminderText()).append(")"); sbBefore.append("\r\n"); } else if(keyword.equals("Conspire") || keyword.equals("Epic") || keyword.equals("Suspend") || keyword.equals("Jump-start")) { - sbAfter.append(keyword + " (" + inst.getReminderText() + ")"); + sbAfter.append(keyword).append(" (").append(inst.getReminderText()).append(")"); sbAfter.append("\r\n"); } else if (keyword.startsWith("Ripple")) { - sbBefore.append(TextUtil.fastReplace(keyword, ":", " ") + " (" + inst.getReminderText() + ")"); + sbBefore.append(TextUtil.fastReplace(keyword, ":", " ")).append(" (").append(inst.getReminderText()).append(")"); sbBefore.append("\r\n"); } else if (keyword.startsWith("Dredge")) { - sbAfter.append(TextUtil.fastReplace(keyword, ":", " ") + " (" + inst.getReminderText() + ")"); + sbAfter.append(TextUtil.fastReplace(keyword, ":", " ")).append(" (").append(inst.getReminderText()).append(")"); sbAfter.append("\r\n"); } else if (keyword.startsWith("Escalate") || keyword.startsWith("Buyback") || keyword.startsWith("Prowl")) { @@ -2129,14 +2129,13 @@ public class Card extends GameEntity implements Comparable { sbCost.append(" "); } sbCost.append(cost.toSimpleString()); - sbBefore.append(sbCost + " (" + inst.getReminderText() + ")"); + sbBefore.append(sbCost).append(" (").append(inst.getReminderText()).append(")"); sbBefore.append("\r\n"); } else if (keyword.startsWith("Multikicker")) { if (!keyword.endsWith("Generic")) { final String[] n = keyword.split(":"); final Cost cost = new Cost(n[1], false); - sbBefore.append("Multikicker ").append(cost.toSimpleString()) - .append(" (" + inst.getReminderText() + ")").append("\r\n"); + sbBefore.append("Multikicker ").append(cost.toSimpleString()).append(" (").append(inst.getReminderText()).append(")").append("\r\n"); } } else if (keyword.startsWith("Kicker")) { if (!keyword.endsWith("Generic")) { @@ -2150,7 +2149,7 @@ public class Card extends GameEntity implements Comparable { final Cost cost2 = new Cost(n[2], false); sbx.append(cost2.toSimpleString()); } - sbx.append(" (" + inst.getReminderText() + ")"); + sbx.append(" (").append(inst.getReminderText()).append(")"); sbBefore.append(sbx).append("\r\n"); } }else if (keyword.startsWith("AlternateAdditionalCost")) { @@ -2179,7 +2178,7 @@ public class Card extends GameEntity implements Comparable { sbCost.append(" "); } sbCost.append(cost.toSimpleString()); - sbAfter.append(sbCost + " (" + inst.getReminderText() + ")"); + sbAfter.append(sbCost).append(" (").append(inst.getReminderText()).append(")"); sbAfter.append("\r\n"); } else if (keyword.equals("CARDNAME can't be countered.") || keyword.equals("Remove CARDNAME from your deck before playing if you're not playing for ante.")) { @@ -2209,7 +2208,7 @@ public class Card extends GameEntity implements Comparable { } sbAfter.append("Splice onto ").append(desc).append(" ").append(cost.toSimpleString()); - sbAfter.append(" (" + inst.getReminderText() + ")").append("\r\n"); + sbAfter.append(" (").append(inst.getReminderText()).append(")").append("\r\n"); } else if (keyword.equals("Storm")) { sbAfter.append("Storm ("); diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index 3c2413b6ed6..b6d21204033 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -901,11 +901,11 @@ public class CardFactoryUtil { if (sq[0].contains("xColorPaid")) { String[] attrs = sq[0].split(" "); - String colors = ""; + StringBuilder colors = new StringBuilder(); for (int i = 1; i < attrs.length; i++) { - colors += attrs[i]; + colors.append(attrs[i]); } - return doXMath(c.getXManaCostPaidCount(colors), m, c); + return doXMath(c.getXManaCostPaidCount(colors.toString()), m, c); } @@ -2113,7 +2113,7 @@ public class CardFactoryUtil { } if (!zone.isEmpty()) { - repEffsb.append(" | ActiveZones$ " + zone); + repEffsb.append(" | ActiveZones$ ").append(zone); } ReplacementEffect re = ReplacementHandler.parseReplacement(repEffsb.toString(), card, intrinsic); @@ -2323,7 +2323,7 @@ public class CardFactoryUtil { StringBuilder trig = new StringBuilder(); trig.append("Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self"); - trig.append(" | TriggerDescription$ Champion ").append(article + " ").append(desc); + trig.append(" | TriggerDescription$ Champion ").append(article).append(" ").append(desc); trig.append(" (").append(Keyword.getInstance("Champion:"+desc).getReminderText()) .append(")"); StringBuilder trigReturn = new StringBuilder(); @@ -2677,7 +2677,7 @@ public class CardFactoryUtil { final StringBuilder sbTrig = new StringBuilder(); sbTrig.append("Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | "); sbTrig.append("ValidCard$ Card.Self | Secondary$ True | TriggerDescription$ "); - sbTrig.append("Living Weapon (" + inst.getReminderText() + ")"); + sbTrig.append("Living Weapon (").append(inst.getReminderText()).append(")"); final StringBuilder sbGerm = new StringBuilder(); sbGerm.append("DB$ Token | TokenAmount$ 1 | TokenScript$ b_0_0_germ |TokenOwner$ You | RememberTokens$ True"); @@ -3142,7 +3142,7 @@ public class CardFactoryUtil { } final String costStr = k.length == 3 ? k[2] : cost.toSimpleString(); - sb.append(costStr.substring(0,1).toLowerCase() + costStr.substring(1)); + sb.append(costStr.substring(0, 1).toLowerCase()).append(costStr.substring(1)); sb.append("."); String upkeepTrig = "Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | " + @@ -3934,8 +3934,8 @@ public class CardFactoryUtil { } else { abilityStr.append(" "); } - abilityStr.append("| CostDesc$ " + cost.toSimpleString() + " "); - abilityStr.append("| SpellDescription$ (" + inst.getReminderText() + ")"); + abilityStr.append("| CostDesc$ ").append(cost.toSimpleString()).append(" "); + abilityStr.append("| SpellDescription$ (").append(inst.getReminderText()).append(")"); // instantiate attach ability final SpellAbility newSA = AbilityFactory.getAbility(abilityStr.toString(), card); newSA.setIntrinsic(intrinsic); @@ -4008,7 +4008,7 @@ public class CardFactoryUtil { abilityStr.append("| PrecostDesc$ Fortify"); Cost cost = new Cost(equipCost, true); abilityStr.append(cost.isOnlyManaCost() ? " " : "—"); - abilityStr.append("| CostDesc$ " + cost.toSimpleString() + " "); + abilityStr.append("| CostDesc$ ").append(cost.toSimpleString()).append(" "); abilityStr.append("| SpellDescription$ ("); abilityStr.append(inst.getReminderText()).append(")"); @@ -4169,8 +4169,8 @@ public class CardFactoryUtil { } else { abilityStr.append(" "); } - abilityStr.append("| CostDesc$ " + cost.toSimpleString() + " "); - abilityStr.append("| SpellDescription$ (" + inst.getReminderText() + ")"); + abilityStr.append("| CostDesc$ ").append(cost.toSimpleString()).append(" "); + abilityStr.append("| SpellDescription$ (").append(inst.getReminderText()).append(")"); final SpellAbility sa = AbilityFactory.getAbility(abilityStr.toString(), card); sa.setIntrinsic(intrinsic); @@ -4192,7 +4192,7 @@ public class CardFactoryUtil { // makes new SpellDescription final StringBuilder sb = new StringBuilder(); sb.append(newSA.getCostDescription()); - sb.append("(" + inst.getReminderText() + ")"); + sb.append("(").append(inst.getReminderText()).append(")"); newSA.setDescription(sb.toString()); newSA.setBasicSpell(false); @@ -4209,9 +4209,9 @@ public class CardFactoryUtil { StringBuilder sb = new StringBuilder(); sb.append("AB$ PutCounter | CounterType$ P1P1 | ActivationZone$ Hand"); sb.append("| ValidTgts$ Creature | TgtPrompt$ Select target creature"); - sb.append("| Cost$ " + manacost + " Discard<1/CARDNAME>"); + sb.append("| Cost$ ").append(manacost).append(" Discard<1/CARDNAME>"); sb.append("| CounterNum$ ").append(n); - sb.append("| CostDesc$ " + ManaCostParser.parse(manacost)); // to hide the Discard from the cost + sb.append("| CostDesc$ ").append(ManaCostParser.parse(manacost)); // to hide the Discard from the cost sb.append("| PrecostDesc$ Reinforce ").append(n).append("—"); sb.append("| SpellDescription$ (").append(inst.getReminderText()).append(")"); @@ -4421,7 +4421,7 @@ public class CardFactoryUtil { sb.append(manacost); sb.append(" Discard<1/CARDNAME> | ActivationZone$ Hand | PrecostDesc$ Cycling"); sb.append(cost.isOnlyManaCost() ? " " : "—"); - sb.append("| CostDesc$ " + cost.toSimpleString() + " "); + sb.append("| CostDesc$ ").append(cost.toSimpleString()).append(" "); sb.append("| SpellDescription$ (").append(inst.getReminderText()).append(")"); SpellAbility sa = AbilityFactory.getAbility(sb.toString(), card); @@ -4494,7 +4494,7 @@ public class CardFactoryUtil { StringBuilder sb = new StringBuilder(); sb.append("Mode$ Continuous | EffectZone$ Exile | Affected$ Card.EncodedWithSource"); sb.append(" | AddTrigger$ CipherTrigger"); - sb.append(" | Description$ Cipher (" + inst.getReminderText() + ")"); + sb.append(" | Description$ Cipher (").append(inst.getReminderText()).append(")"); effect = sb.toString(); diff --git a/forge-game/src/main/java/forge/game/card/CardPlayOption.java b/forge-game/src/main/java/forge/game/card/CardPlayOption.java index b7531dde10d..3c2cb2e699e 100644 --- a/forge-game/src/main/java/forge/game/card/CardPlayOption.java +++ b/forge-game/src/main/java/forge/game/card/CardPlayOption.java @@ -82,7 +82,7 @@ public final class CardPlayOption { switch (getPayManaCost()) { case YES: if (altManaCost != null) { - sb.append(" (by paying " + getFormattedAltManaCost() + " instead of paying its mana cost"); + sb.append(" (by paying ").append(getFormattedAltManaCost()).append(" instead of paying its mana cost"); if (isWithFlash()) { sb.append(" and as though it has flash"); } diff --git a/forge-game/src/main/java/forge/game/card/CardUtil.java b/forge-game/src/main/java/forge/game/card/CardUtil.java index 2f1efa59769..7bf0cfe1390 100644 --- a/forge-game/src/main/java/forge/game/card/CardUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardUtil.java @@ -92,7 +92,7 @@ public final class CardUtil { public static String getShortColorsString(final Iterable colors) { StringBuilder colorDesc = new StringBuilder(); for (final String col : colors) { - colorDesc.append(MagicColor.toShortString(col) + " "); + colorDesc.append(MagicColor.toShortString(col)).append(" "); } return colorDesc.toString(); } diff --git a/forge-game/src/main/java/forge/game/card/CardView.java b/forge-game/src/main/java/forge/game/card/CardView.java index 8f33fc065ad..d452b7d8123 100644 --- a/forge-game/src/main/java/forge/game/card/CardView.java +++ b/forge-game/src/main/java/forge/game/card/CardView.java @@ -559,7 +559,7 @@ public class CardView extends GameEntityView { sb.append(rulesText).append("\r\n\r\n"); } if (isCommander()) { - sb.append(getOwner()).append("'s " + getCommanderType() + "\r\n"); + sb.append(getOwner()).append("'s ").append(getCommanderType()).append("\r\n"); sb.append(getOwner().getCommanderInfo(this)).append("\r\n"); } diff --git a/forge-game/src/main/java/forge/game/combat/Combat.java b/forge-game/src/main/java/forge/game/combat/Combat.java index 94aff5f0de3..7a85137e66c 100644 --- a/forge-game/src/main/java/forge/game/combat/Combat.java +++ b/forge-game/src/main/java/forge/game/combat/Combat.java @@ -71,9 +71,7 @@ public class Combat { playerWhoAttacks = attacker; // Create keys for all possible attack targets - for (final GameEntity defender : CombatUtil.getAllPossibleDefenders(playerWhoAttacks)) { - attackableEntries.add(defender); - } + attackableEntries.addAll(CombatUtil.getAllPossibleDefenders(playerWhoAttacks)); attackConstraints = new AttackConstraints(this); } diff --git a/forge-game/src/main/java/forge/game/cost/CostRemoveAnyCounter.java b/forge-game/src/main/java/forge/game/cost/CostRemoveAnyCounter.java index 329f2991bc8..063a44ce224 100644 --- a/forge-game/src/main/java/forge/game/cost/CostRemoveAnyCounter.java +++ b/forge-game/src/main/java/forge/game/cost/CostRemoveAnyCounter.java @@ -123,7 +123,7 @@ public class CostRemoveAnyCounter extends CostPartWithList { sb.append("Remove "); sb.append(Cost.convertIntAndTypeToWords(this.convertAmount(), "counter")); final String desc = this.getTypeDescription() == null ? this.getType() : this.getTypeDescription(); - sb.append(" from " + desc); + sb.append(" from ").append(desc); return sb.toString(); } diff --git a/forge-game/src/main/java/forge/game/cost/CostTapType.java b/forge-game/src/main/java/forge/game/cost/CostTapType.java index 4a400a3a4dc..fa62b2945a9 100644 --- a/forge-game/src/main/java/forge/game/cost/CostTapType.java +++ b/forge-game/src/main/java/forge/game/cost/CostTapType.java @@ -77,7 +77,7 @@ public class CostTapType extends CostPartWithList { sb.append("two untapped creatures you control that share a creature type"); } else if (type.contains("+withTotalPowerGE")) { String num = type.split("\\+withTotalPowerGE")[1]; - sb.append("Tap any number of untapped creatures you control other than CARDNAME with total power " + num + "or greater"); + sb.append("Tap any number of untapped creatures you control other than CARDNAME with total power ").append(num).append("or greater"); } else { sb.append(Cost.convertAmountTypeToWords(i, this.getAmount(), "untapped " + desc)); sb.append(" you control"); diff --git a/forge-game/src/main/java/forge/game/mana/ManaCostBeingPaid.java b/forge-game/src/main/java/forge/game/mana/ManaCostBeingPaid.java index 3208205f582..f3484f6192b 100644 --- a/forge-game/src/main/java/forge/game/mana/ManaCostBeingPaid.java +++ b/forge-game/src/main/java/forge/game/mana/ManaCostBeingPaid.java @@ -610,12 +610,12 @@ public class ManaCostBeingPaid { if (nGeneric > 0) { if (nGeneric <= 20) { - sb.append("{" + nGeneric + "}"); + sb.append("{").append(nGeneric).append("}"); } else { //if no mana symbol exists for generic amount, use combination of symbols for each digit String genericStr = String.valueOf(nGeneric); for (int i = 0; i < genericStr.length(); i++) { - sb.append("{" + genericStr.charAt(i) + "}"); + sb.append("{").append(genericStr.charAt(i)).append("}"); } } } diff --git a/forge-game/src/main/java/forge/game/phase/Untap.java b/forge-game/src/main/java/forge/game/phase/Untap.java index 688a295ce79..6b317fa3dff 100644 --- a/forge-game/src/main/java/forge/game/phase/Untap.java +++ b/forge-game/src/main/java/forge/game/phase/Untap.java @@ -220,19 +220,19 @@ public class Untap extends Phase { private static void optionalUntap(final Card c) { if (c.hasKeyword("You may choose not to untap CARDNAME during your untap step.")) { if (c.isTapped()) { - String prompt = "Untap " + c.toString() + "?"; + StringBuilder prompt = new StringBuilder("Untap " + c.toString() + "?"); boolean defaultChoice = true; if (c.getGainControlTargets().size() > 0) { final Iterable targets = c.getGainControlTargets(); - prompt += "\r\n" + c + " is controlling: "; + prompt.append("\r\n").append(c).append(" is controlling: "); for (final Card target : targets) { - prompt += target; + prompt.append(target); if (target.isInPlay()) { defaultChoice = false; } } } - boolean untap = c.getController().getController().chooseBinary(new SpellAbility.EmptySa(c, c.getController()), prompt, BinaryChoiceType.UntapOrLeaveTapped, defaultChoice); + boolean untap = c.getController().getController().chooseBinary(new SpellAbility.EmptySa(c, c.getController()), prompt.toString(), BinaryChoiceType.UntapOrLeaveTapped, defaultChoice); if (untap) { c.untap(); } diff --git a/forge-gui-desktop/src/main/java/forge/deckchooser/FDeckChooser.java b/forge-gui-desktop/src/main/java/forge/deckchooser/FDeckChooser.java index c25f55b5d78..2c8b5b40eaf 100644 --- a/forge-gui-desktop/src/main/java/forge/deckchooser/FDeckChooser.java +++ b/forge-gui-desktop/src/main/java/forge/deckchooser/FDeckChooser.java @@ -444,7 +444,7 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener { if (decksComboBox.getDeckType() == null || decksComboBox.getDeckType() == DeckType.NET_DECK) { //handle special case of net decks if (netDeckCategory == null) { return ""; } - state.append(NetDeckCategory.PREFIX + netDeckCategory.getName()); + state.append(NetDeckCategory.PREFIX).append(netDeckCategory.getName()); } else { state.append(decksComboBox.getDeckType().name()); diff --git a/forge-gui-desktop/src/main/java/forge/gui/framework/SRearrangingUtil.java b/forge-gui-desktop/src/main/java/forge/gui/framework/SRearrangingUtil.java index 83144ef6a40..0f779013499 100644 --- a/forge-gui-desktop/src/main/java/forge/gui/framework/SRearrangingUtil.java +++ b/forge-gui-desktop/src/main/java/forge/gui/framework/SRearrangingUtil.java @@ -98,9 +98,7 @@ public final class SRearrangingUtil { } // Otherwise, add all of the documents. else { - for (final IVDoc vDoc : cellSrc.getDocs()) { - docsToMove.add(vDoc); - } + docsToMove.addAll(cellSrc.getDocs()); } // Reset and show preview panel diff --git a/forge-gui-desktop/src/main/java/forge/gui/framework/SResizingUtil.java b/forge-gui-desktop/src/main/java/forge/gui/framework/SResizingUtil.java index 5c6902bd3cc..3a3771b449f 100644 --- a/forge-gui-desktop/src/main/java/forge/gui/framework/SResizingUtil.java +++ b/forge-gui-desktop/src/main/java/forge/gui/framework/SResizingUtil.java @@ -136,9 +136,7 @@ public final class SResizingUtil { int smoothVal = 0; Set existingComponents = new HashSet<>(); - for (Component c : pnlContent.getComponents()) { - existingComponents.add(c); - } + existingComponents.addAll(Arrays.asList(pnlContent.getComponents())); // This is the core of the pixel-perfect layout. To avoid ±1 px errors on borders // from rounding individual panels, the intermediate values (exactly accurate, in %) diff --git a/forge-gui-desktop/src/main/java/forge/itemmanager/filters/ListLabelFilter.java b/forge-gui-desktop/src/main/java/forge/itemmanager/filters/ListLabelFilter.java index 5490f787e5f..989db5eb853 100644 --- a/forge-gui-desktop/src/main/java/forge/itemmanager/filters/ListLabelFilter.java +++ b/forge-gui-desktop/src/main/java/forge/itemmanager/filters/ListLabelFilter.java @@ -45,10 +45,10 @@ public abstract class ListLabelFilter extends ItemFilte labelBuilder.append("s: All"); break; case 1: - labelBuilder.append(": " + getList().iterator().next()); + labelBuilder.append(": ").append(getList().iterator().next()); break; default: - labelBuilder.append("s: " + TextUtil.join(getList(), ", ")); + labelBuilder.append("s: ").append(TextUtil.join(getList(), ", ")); break; } label.setText(labelBuilder.toString()); diff --git a/forge-gui-desktop/src/main/java/forge/itemmanager/filters/StatTypeFilter.java b/forge-gui-desktop/src/main/java/forge/itemmanager/filters/StatTypeFilter.java index 0c84dea03da..775cdaf496e 100644 --- a/forge-gui-desktop/src/main/java/forge/itemmanager/filters/StatTypeFilter.java +++ b/forge-gui-desktop/src/main/java/forge/itemmanager/filters/StatTypeFilter.java @@ -32,7 +32,7 @@ public abstract class StatTypeFilter extends ToggleButt final Localizer localizer = Localizer.getInstance(); StringBuilder tooltip = new StringBuilder(); tooltip.append(st.label); - tooltip.append(" (" + localizer.getMessage("lblclicktotoogle") + " "); + tooltip.append(" (").append(localizer.getMessage("lblclicktotoogle")).append(" "); if (st.label.length() > 1 && !Character.isUpperCase(st.label.charAt(1))) { tooltip.append(st.label.substring(0, 1).toLowerCase()); tooltip.append(st.label.substring(1)); diff --git a/forge-gui-desktop/src/main/java/forge/itemmanager/views/ImageView.java b/forge-gui-desktop/src/main/java/forge/itemmanager/views/ImageView.java index c4ab75b5ff9..b57a92b3261 100644 --- a/forge-gui-desktop/src/main/java/forge/itemmanager/views/ImageView.java +++ b/forge-gui-desktop/src/main/java/forge/itemmanager/views/ImageView.java @@ -597,9 +597,7 @@ public class ImageView extends ItemView { piles.get(key).items.add(itemInfo); } group.piles.clear(); - for (Pile pile : piles.values()) { - group.piles.add(pile); - } + group.piles.addAll(piles.values()); } groupY = y; diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/CLobby.java b/forge-gui-desktop/src/main/java/forge/screens/home/CLobby.java index 46e9d1c9748..0058e27744f 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/CLobby.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/CLobby.java @@ -2,6 +2,7 @@ package forge.screens.home; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.util.Arrays; import java.util.Vector; import javax.swing.SwingUtilities; @@ -28,9 +29,7 @@ public class CLobby { private void addDecks(final Iterable commanderDecks, FList deckList, String... initialItems) { Vector listData = new Vector<>(); - for (String item : initialItems) { - listData.add(item); - } + listData.addAll(Arrays.asList(initialItems)); listData.add("Generate"); if (!Iterables.isEmpty(commanderDecks)) { listData.add("Random"); diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/ContestGauntletLister.java b/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/ContestGauntletLister.java index b02d5215ac2..2dc906c0e61 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/ContestGauntletLister.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/ContestGauntletLister.java @@ -45,7 +45,7 @@ public class ContestGauntletLister extends JPanel { this.removeAll(); final List tempRows = new ArrayList<>(); final List sorted = new ArrayList<>(); - for (final GauntletData gd : gd0) { sorted.add(gd); } + sorted.addAll(gd0); sorted.sort(new Comparator() { @Override public int compare(final GauntletData x, final GauntletData y) { diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/QuickGauntletLister.java b/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/QuickGauntletLister.java index f610817ec5f..99e47412fb5 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/QuickGauntletLister.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/QuickGauntletLister.java @@ -64,7 +64,7 @@ public class QuickGauntletLister extends JPanel { this.removeAll(); final List tempRows = new ArrayList<>(); final List sorted = new ArrayList<>(); - for (final GauntletData gd : gauntlets) { sorted.add(gd); } + sorted.addAll(gauntlets); sorted.sort(new Comparator() { @Override public int compare(final GauntletData x, final GauntletData y) { diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuChallenges.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuChallenges.java index b35b3edbe36..f674b5b8ee2 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuChallenges.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuChallenges.java @@ -161,7 +161,7 @@ public enum CSubmenuChallenges implements ICDoc { final JXButtonPanel grpPanel = new JXButtonPanel(); StringBuilder sb = new StringBuilder(); - sb.append(localizer.getMessage("lblMatchBestof") + " ").append(FModel.getQuest().getMatchLength()); + sb.append(localizer.getMessage("lblMatchBestof")).append(" ").append(FModel.getQuest().getMatchLength()); view.getCbxMatchLength().setSelectedItem(sb.toString()); boolean haveAnyChallenges = true; diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuDuels.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuDuels.java index 448f521e7e7..1ddc1ebaaf6 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuDuels.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuDuels.java @@ -197,7 +197,7 @@ public enum CSubmenuDuels implements ICDoc { view.getPnlDuels().add(grpPanel, "w 100%!"); StringBuilder sb = new StringBuilder(); - sb.append(localizer.getMessage("lblMatchBestof") + " ").append(FModel.getQuest().getMatchLength()); + sb.append(localizer.getMessage("lblMatchBestof")).append(" ").append(FModel.getQuest().getMatchLength()); view.getCbxMatchLength().setSelectedItem(sb.toString()); } } diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/QuestFileLister.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/QuestFileLister.java index bcf8dfe969d..7a650ed9ee4 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/QuestFileLister.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/QuestFileLister.java @@ -66,7 +66,7 @@ public class QuestFileLister extends JPanel { this.removeAll(); List tempRows = new ArrayList<>(); List sorted = new ArrayList<>(); - for (QuestData qd : qd0) { sorted.add(qd); } + sorted.addAll(qd0); sorted.sort(new Comparator() { @Override public int compare(final QuestData x, final QuestData y) { diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuDownloaders.java b/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuDownloaders.java index 7a287619e01..bd4bde30705 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuDownloaders.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuDownloaders.java @@ -234,8 +234,8 @@ public enum VSubmenuDownloaders implements IVSubmenu { cniSB.append("-------------------\n\n"); for (CardEdition e : editions) { - nifSB.append("Edition: " + e.getName() + " " + "(" + e.getCode() + "/" + e.getCode2() + ")\n"); - cniSB.append("Edition: " + e.getName() + " " + "(" + e.getCode() + "/" + e.getCode2() + ")\n"); + nifSB.append("Edition: ").append(e.getName()).append(" ").append("(").append(e.getCode()).append("/").append(e.getCode2()).append(")\n"); + cniSB.append("Edition: ").append(e.getName()).append(" ").append("(").append(e.getCode()).append("/").append(e.getCode2()).append(")\n"); String imagePath; int artIndex = 1; @@ -261,7 +261,7 @@ public enum VSubmenuDownloaders implements IVSubmenu { } if (cp == null) { - cniSB.append(" " + c + "\n"); + cniSB.append(" ").append(c).append("\n"); notImplementedCount++; continue; } @@ -274,7 +274,7 @@ public enum VSubmenuDownloaders implements IVSubmenu { if (imagePath != null) { File file = ImageKeys.getImageFile(imagePath); if (file == null) { - nifSB.append(" " + imagePath + "\n"); + nifSB.append(" ").append(imagePath).append("\n"); missingCount++; } } @@ -287,7 +287,7 @@ public enum VSubmenuDownloaders implements IVSubmenu { if (imagePath != null) { File file = ImageKeys.getImageFile(imagePath); if (file == null) { - nifSB.append(" " + imagePath + "\n"); + nifSB.append(" ").append(imagePath).append("\n"); missingCount++; } } @@ -310,7 +310,7 @@ public enum VSubmenuDownloaders implements IVSubmenu { String imgKey = token.getImageKey(i); File file = ImageKeys.getImageFile(imgKey); if (file == null) { - nifSB.append(" " + token.getImageFilename(i+1) + "\n"); + nifSB.append(" ").append(token.getImageFilename(i + 1)).append("\n"); missingCount++; } } diff --git a/forge-gui-desktop/src/main/java/forge/screens/match/VAssignDamage.java b/forge-gui-desktop/src/main/java/forge/screens/match/VAssignDamage.java index 8b4717a3929..e0115d20a61 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/match/VAssignDamage.java +++ b/forge-gui-desktop/src/main/java/forge/screens/match/VAssignDamage.java @@ -403,7 +403,7 @@ public class VAssignDamage { StringBuilder sb = new StringBuilder(); sb.append(dmg); if( overkill >= 0 ) { - sb.append(" (" +localizer.getMessage("lblLethal")); + sb.append(" (").append(localizer.getMessage("lblLethal")); if( overkill > 0 ) sb.append(" +").append(overkill); sb.append(")"); diff --git a/forge-gui-desktop/src/main/java/forge/view/FView.java b/forge-gui-desktop/src/main/java/forge/view/FView.java index 8e94854947f..2f9bb499825 100644 --- a/forge-gui-desktop/src/main/java/forge/view/FView.java +++ b/forge-gui-desktop/src/main/java/forge/view/FView.java @@ -459,8 +459,7 @@ public enum FView { * @return {@link java.util.List}<{@link forge.gui.framework.DragCell}> */ public List getDragCells() { - final List clone = new ArrayList<>(); - clone.addAll(allCells); + final List clone = new ArrayList<>(allCells); return clone; } diff --git a/forge-gui-mobile/src/forge/animation/GifDecoder.java b/forge-gui-mobile/src/forge/animation/GifDecoder.java index 675d0018ed1..258b8d7036c 100644 --- a/forge-gui-mobile/src/forge/animation/GifDecoder.java +++ b/forge-gui-mobile/src/forge/animation/GifDecoder.java @@ -504,11 +504,11 @@ public class GifDecoder { break; case 0xff: // application extension readBlock(); - String app = ""; + StringBuilder app = new StringBuilder(); for (int i = 0; i < 11; i++) { - app += (char) block[i]; + app.append((char) block[i]); } - if (app.equals("NETSCAPE2.0")) { + if (app.toString().equals("NETSCAPE2.0")) { readNetscapeExt(); } else { skip(); // don't care @@ -554,11 +554,11 @@ public class GifDecoder { * Reads GIF file header information. */ protected void readHeader() { - String id = ""; + StringBuilder id = new StringBuilder(); for (int i = 0; i < 6; i++) { - id += (char) read(); + id.append((char) read()); } - if (!id.startsWith("GIF")) { + if (!id.toString().startsWith("GIF")) { status = STATUS_FORMAT_ERROR; return; } diff --git a/forge-gui-mobile/src/forge/deck/FDeckChooser.java b/forge-gui-mobile/src/forge/deck/FDeckChooser.java index 8f53bb83989..06c681b5b8f 100644 --- a/forge-gui-mobile/src/forge/deck/FDeckChooser.java +++ b/forge-gui-mobile/src/forge/deck/FDeckChooser.java @@ -950,7 +950,7 @@ public class FDeckChooser extends FScreen { if (cmbDeckTypes.getSelectedItem() == null || cmbDeckTypes.getSelectedItem() == DeckType.NET_DECK) { //handle special case of net decks if (netDeckCategory == null) { return ""; } - state.append(NetDeckCategory.PREFIX + netDeckCategory.getName()); + state.append(NetDeckCategory.PREFIX).append(netDeckCategory.getName()); } else { state.append(cmbDeckTypes.getSelectedItem().name()); diff --git a/forge-gui-mobile/src/forge/deck/FDeckImportDialog.java b/forge-gui-mobile/src/forge/deck/FDeckImportDialog.java index 999d4568fe9..e8c5c56cece 100644 --- a/forge-gui-mobile/src/forge/deck/FDeckImportDialog.java +++ b/forge-gui-mobile/src/forge/deck/FDeckImportDialog.java @@ -79,7 +79,7 @@ public class FDeckImportDialog extends FDialog { if (sb.length() > 0) { sb.append("\n"); } - sb.append(token.getNumber() + " " + token.getText()); + sb.append(token.getNumber()).append(" ").append(token.getText()); } } if (sb.length() > 0) { diff --git a/forge-gui-mobile/src/forge/itemmanager/filters/ListLabelFilter.java b/forge-gui-mobile/src/forge/itemmanager/filters/ListLabelFilter.java index 0dab393dcf6..7398e095dc7 100644 --- a/forge-gui-mobile/src/forge/itemmanager/filters/ListLabelFilter.java +++ b/forge-gui-mobile/src/forge/itemmanager/filters/ListLabelFilter.java @@ -43,10 +43,10 @@ public abstract class ListLabelFilter extends ItemFilte labelBuilder.append("s: All"); break; case 1: - labelBuilder.append(": " + getList().iterator().next()); + labelBuilder.append(": ").append(getList().iterator().next()); break; default: - labelBuilder.append("s: " + TextUtil.join(getList(), ", ")); + labelBuilder.append("s: ").append(TextUtil.join(getList(), ", ")); break; } label.setText(labelBuilder.toString()); diff --git a/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java b/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java index 199d7bc3280..8261e525f40 100644 --- a/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java +++ b/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java @@ -433,9 +433,7 @@ public class ImageView extends ItemView { piles.get(key).items.add(itemInfo); } group.piles.clear(); - for (Pile pile : piles.values()) { - group.piles.add(pile); - } + group.piles.addAll(piles.values()); } groupY = y; diff --git a/forge-gui-mobile/src/forge/screens/constructed/LobbyScreen.java b/forge-gui-mobile/src/forge/screens/constructed/LobbyScreen.java index 79109f1343d..1ddb4f0c318 100644 --- a/forge-gui-mobile/src/forge/screens/constructed/LobbyScreen.java +++ b/forge-gui-mobile/src/forge/screens/constructed/LobbyScreen.java @@ -216,14 +216,14 @@ public abstract class LobbyScreen extends LaunchScreen implements ILobbyView { cbVariants.setSelectedItem(appliedVariants.iterator().next()); } else { - String text = ""; + StringBuilder text = new StringBuilder(); for (GameType variantType : appliedVariants) { if (text.length() > 0) { - text += ", "; + text.append(", "); } - text += variantType.toString(); + text.append(variantType.toString()); } - cbVariants.setText(text); + cbVariants.setText(text.toString()); } } diff --git a/forge-gui-mobile/src/forge/screens/gauntlet/LoadGauntletScreen.java b/forge-gui-mobile/src/forge/screens/gauntlet/LoadGauntletScreen.java index 59cc9a377f5..a8a3cc58e6a 100644 --- a/forge-gui-mobile/src/forge/screens/gauntlet/LoadGauntletScreen.java +++ b/forge-gui-mobile/src/forge/screens/gauntlet/LoadGauntletScreen.java @@ -295,9 +295,7 @@ public class LoadGauntletScreen extends LaunchScreen { public void refresh() { List sorted = new ArrayList<>(); - for (GauntletData gauntlet : gauntlets) { - sorted.add(gauntlet); - } + sorted.addAll(gauntlets); sorted.sort(new Comparator() { @Override public int compare(final GauntletData x, final GauntletData y) { diff --git a/forge-gui-mobile/src/forge/screens/match/winlose/GauntletWinLose.java b/forge-gui-mobile/src/forge/screens/match/winlose/GauntletWinLose.java index c0dcc042f66..69d634cd9e5 100644 --- a/forge-gui-mobile/src/forge/screens/match/winlose/GauntletWinLose.java +++ b/forge-gui-mobile/src/forge/screens/match/winlose/GauntletWinLose.java @@ -52,17 +52,16 @@ public class GauntletWinLose extends ControlWinLose { if (!lstEventNames.isEmpty()) { for (int i = 0; i < len; i++) { if (i <= num) { - sb.append((i + 1) + ". " + lstEventNames.get(i) - + " (" + lstEventRecords.get(i) + ")\n"); + sb.append(i + 1).append(". ").append(lstEventNames.get(i)).append(" (").append(lstEventRecords.get(i)).append(")\n"); } else { - sb.append((i + 1) + ". ??????\n"); + sb.append(i + 1).append(". ??????\n"); } } } if (message1 != null) { sb.append("\n"); - sb.append(message1 + "\n\n"); + sb.append(message1).append("\n\n"); sb.append(message2); } else { diff --git a/forge-gui-mobile/src/forge/screens/planarconquest/LoadConquestScreen.java b/forge-gui-mobile/src/forge/screens/planarconquest/LoadConquestScreen.java index 893f5754347..db590928085 100644 --- a/forge-gui-mobile/src/forge/screens/planarconquest/LoadConquestScreen.java +++ b/forge-gui-mobile/src/forge/screens/planarconquest/LoadConquestScreen.java @@ -333,9 +333,7 @@ public class LoadConquestScreen extends LaunchScreen { public void setConquests(List qd0) { List sorted = new ArrayList<>(); - for (ConquestData qd : qd0) { - sorted.add(qd); - } + sorted.addAll(qd0); sorted.sort(new Comparator() { @Override public int compare(final ConquestData x, final ConquestData y) { diff --git a/forge-gui-mobile/src/forge/screens/quest/LoadQuestScreen.java b/forge-gui-mobile/src/forge/screens/quest/LoadQuestScreen.java index cb9daf1b4ef..23ccaaf97bf 100644 --- a/forge-gui-mobile/src/forge/screens/quest/LoadQuestScreen.java +++ b/forge-gui-mobile/src/forge/screens/quest/LoadQuestScreen.java @@ -335,9 +335,7 @@ public class LoadQuestScreen extends LaunchScreen { public void setQuests(List qd0) { List sorted = new ArrayList<>(); - for (QuestData qd : qd0) { - sorted.add(qd); - } + sorted.addAll(qd0); sorted.sort(new Comparator() { @Override public int compare(final QuestData x, final QuestData y) { diff --git a/forge-gui-mobile/src/forge/screens/settings/SettingsPage.java b/forge-gui-mobile/src/forge/screens/settings/SettingsPage.java index a8b95b99340..13b0dbe6720 100644 --- a/forge-gui-mobile/src/forge/screens/settings/SettingsPage.java +++ b/forge-gui-mobile/src/forge/screens/settings/SettingsPage.java @@ -29,6 +29,7 @@ import forge.util.Callback; import forge.util.Utils; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; public class SettingsPage extends TabPage { @@ -402,9 +403,7 @@ public class SettingsPage extends TabPage { public CustomSelectSetting(FPref pref0, String label0, String description0, String[] options0) { super(pref0, label0 + ":", description0); - for (String option : options0) { - options.add(option); - } + options.addAll(Arrays.asList(options0)); } public CustomSelectSetting(FPref pref0, String label0, String description0, Iterable options0) { super(pref0, label0 + ":", description0); diff --git a/forge-gui-mobile/src/forge/toolbox/FComboBox.java b/forge-gui-mobile/src/forge/toolbox/FComboBox.java index 8e22a40b9d2..e6878c5e142 100644 --- a/forge-gui-mobile/src/forge/toolbox/FComboBox.java +++ b/forge-gui-mobile/src/forge/toolbox/FComboBox.java @@ -1,6 +1,7 @@ package forge.toolbox; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import com.badlogic.gdx.utils.Align; @@ -26,9 +27,7 @@ public class FComboBox extends FTextField implements IComboBox { setLabel(label0); } public FComboBox(T[] itemArray) { - for (T item : itemArray) { - items.add(item); - } + items.addAll(Arrays.asList(itemArray)); initialize(); } public FComboBox(Iterable items0) { @@ -66,9 +65,7 @@ public class FComboBox extends FTextField implements IComboBox { public void setItems(T[] itemArray, T selectedItem0) { items.clear(); if (itemArray != null) { - for (T item : itemArray) { - items.add(item); - } + items.addAll(Arrays.asList(itemArray)); } setSelectedItem(selectedItem0); } diff --git a/forge-gui/src/main/java/forge/card/CardDetailUtil.java b/forge-gui/src/main/java/forge/card/CardDetailUtil.java index 5215450dfef..8a0a7c3e2a3 100644 --- a/forge-gui/src/main/java/forge/card/CardDetailUtil.java +++ b/forge-gui/src/main/java/forge/card/CardDetailUtil.java @@ -339,7 +339,7 @@ public class CardDetailUtil { if (area.length() != 0) { area.append("\n"); } - area.append(c.getKey().getName() + " counters: "); + area.append(c.getKey().getName()).append(" counters: "); area.append(c.getValue()); } } @@ -351,7 +351,7 @@ public class CardDetailUtil { if (area.length() != 0) { area.append("\n"); } - area.append("Damage: " + damage); + area.append("Damage: ").append(damage); } } if (state.isCreature() || state.isPlaneswalker()) { @@ -360,7 +360,7 @@ public class CardDetailUtil { if (area.length() != 0) { area.append("\n"); } - area.append("Assigned Damage: " + assigned); + area.append("Assigned Damage: ").append(assigned); } } @@ -416,7 +416,7 @@ public class CardDetailUtil { if (area.length() != 0) { area.append("\n"); } - area.append("(chosen player: " + card.getChosenPlayer() + ")"); + area.append("(chosen player: ").append(card.getChosenPlayer()).append(")"); } // chosen mode @@ -424,7 +424,7 @@ public class CardDetailUtil { if (area.length() != 0) { area.append("\n"); } - area.append("(chosen mode: " + card.getChosenMode() + ")"); + area.append("(chosen mode: ").append(card.getChosenMode()).append(")"); } // named card @@ -506,7 +506,7 @@ public class CardDetailUtil { if (area.length() != 0) { area.append("\n"); } - area.append("Haunting " + card.getHaunting()); + area.append("Haunting ").append(card.getHaunting()); } // Cipher @@ -514,7 +514,7 @@ public class CardDetailUtil { if (area.length() != 0) { area.append("\n"); } - area.append("Encoded: " + card.getEncodedCards()); + area.append("Encoded: ").append(card.getEncodedCards()); } // must block @@ -523,7 +523,7 @@ public class CardDetailUtil { area.append("\n"); } final String mustBlockThese = Lang.joinHomogenous(card.getMustBlockCards()); - area.append("Must block " + mustBlockThese); + area.append("Must block ").append(mustBlockThese); } // exerted @@ -550,7 +550,7 @@ public class CardDetailUtil { if (area.length() != 0) { area.append("\n\n"); } - area.append("Current Storm Count: " + gameView.getStormCount()); + area.append("Current Storm Count: ").append(gameView.getStormCount()); } } return area.toString(); diff --git a/forge-gui/src/main/java/forge/card/CardReaderExperiments.java b/forge-gui/src/main/java/forge/card/CardReaderExperiments.java index 147940c7f96..00acd98e5fa 100644 --- a/forge-gui/src/main/java/forge/card/CardReaderExperiments.java +++ b/forge-gui/src/main/java/forge/card/CardReaderExperiments.java @@ -164,7 +164,7 @@ public class CardReaderExperiments { StringBuilder newLineBuilder = new StringBuilder(); newLineBuilder.append(line, 0, m.start(1)); for (String sym : m.group(1).split(" ")) { - newLineBuilder.append("{" + sym + "}"); + newLineBuilder.append("{").append(sym).append("}"); } newLineBuilder.append(line.substring(m.end(1) - 1)); //-1 so final space appended updated = true; diff --git a/forge-gui/src/main/java/forge/deck/DeckGeneratorTheme.java b/forge-gui/src/main/java/forge/deck/DeckGeneratorTheme.java index 3f57c84a271..8cc0a5c94f5 100644 --- a/forge-gui/src/main/java/forge/deck/DeckGeneratorTheme.java +++ b/forge-gui/src/main/java/forge/deck/DeckGeneratorTheme.java @@ -124,7 +124,7 @@ public class DeckGeneratorTheme extends DeckGeneratorBase { final float p = (float) (g.percentage * .01); final int grpCnt = (int) (p * size); final int cnSize = g.cardnames.size(); - errorBuilder.append("Group" + i + ":" + grpCnt + "\n"); + errorBuilder.append("Group").append(i).append(":").append(grpCnt).append("\n"); for (int j = 0; j < grpCnt; j++) { s = g.cardnames.get(MyRandom.getRandom().nextInt(cnSize)); @@ -150,7 +150,7 @@ public class DeckGeneratorTheme extends DeckGeneratorBase { tDeck.add(pool.getCard(ss[0],ss[1])); } cardCounts.put(ss[0], n + 1); - errorBuilder.append(s + "\n"); + errorBuilder.append(s).append("\n"); } } @@ -162,15 +162,15 @@ public class DeckGeneratorTheme extends DeckGeneratorBase { numBLands = size - tDeck.countAll(); } - errorBuilder.append("numBLands:" + numBLands + "\n"); + errorBuilder.append("numBLands:").append(numBLands).append("\n"); addBasicLand(numBLands,basicLandSet); - errorBuilder.append("DeckSize:" + tDeck.countAll() + "\n"); + errorBuilder.append("DeckSize:").append(tDeck.countAll()).append("\n"); adjustDeckSize(size); - errorBuilder.append("DeckSize:" + tDeck.countAll() + "\n"); + errorBuilder.append("DeckSize:").append(tDeck.countAll()).append("\n"); if (!testing) { errorBuilder.delete(0, errorBuilder.length()); //clear if not testing } diff --git a/forge-gui/src/main/java/forge/deck/DeckgenUtil.java b/forge-gui/src/main/java/forge/deck/DeckgenUtil.java index a155d4e782e..67dd9217b04 100644 --- a/forge-gui/src/main/java/forge/deck/DeckgenUtil.java +++ b/forge-gui/src/main/java/forge/deck/DeckgenUtil.java @@ -622,9 +622,8 @@ public class DeckgenUtil { } } }else { - List> potentialCards = new ArrayList<>(); String matrixKey = (format.equals(DeckFormat.TinyLeaders) ? DeckFormat.Commander : format).toString(); //use Commander for Tiny Leaders - potentialCards.addAll(CardRelationMatrixGenerator.cardPools.get(matrixKey).get(commander.getName())); + List> potentialCards = new ArrayList<>(CardRelationMatrixGenerator.cardPools.get(matrixKey).get(commander.getName())); Collections.shuffle(potentialCards, MyRandom.getRandom()); for(Map.Entry pair:potentialCards){ if(format.isLegalCard(pair.getKey())) { diff --git a/forge-gui/src/main/java/forge/itemmanager/AdvancedSearch.java b/forge-gui/src/main/java/forge/itemmanager/AdvancedSearch.java index a7a96a4837b..129924ef861 100644 --- a/forge-gui/src/main/java/forge/itemmanager/AdvancedSearch.java +++ b/forge-gui/src/main/java/forge/itemmanager/AdvancedSearch.java @@ -886,12 +886,12 @@ public class AdvancedSearch { return formatValue(values.get(0)) + finalDelim + formatValue(values.get(1)); default: int lastValueIdx = valueCount - 1; - String result = formatValue(values.get(0)); + StringBuilder result = new StringBuilder(formatValue(values.get(0))); for (int i = 1; i < lastValueIdx; i++) { - result += delim + formatValue(values.get(i)); + result.append(delim).append(formatValue(values.get(i))); } - result += delim.trim() + finalDelim + formatValue(values.get(lastValueIdx)); - return result; + result.append(delim.trim()).append(finalDelim).append(formatValue(values.get(lastValueIdx))); + return result.toString(); } } @@ -1233,15 +1233,15 @@ public class AdvancedSearch { StringBuilder builder = new StringBuilder(); builder.append("Filter:\n"); - String indent = ""; + StringBuilder indent = new StringBuilder(); for (Object piece : expression) { - if (piece.equals(Operator.CLOSE_PAREN) && !indent.isEmpty()) { - indent = indent.substring(2); //trim an indent level when a close paren is hit + if (piece.equals(Operator.CLOSE_PAREN) && (indent.length() > 0)) { + indent = new StringBuilder(indent.substring(2)); //trim an indent level when a close paren is hit } - builder.append("\n" + indent + piece.toString().trim()); + builder.append("\n").append(indent).append(piece.toString().trim()); if (piece.equals(Operator.OPEN_PAREN)) { - indent += " "; //add an indent level when an open paren is hit + indent.append(" "); //add an indent level when an open paren is hit } } return GuiBase.getInterface().encodeSymbols(builder.toString(), false); diff --git a/forge-gui/src/main/java/forge/itemmanager/BooleanExpression.java b/forge-gui/src/main/java/forge/itemmanager/BooleanExpression.java index 291bc5f1441..995cbccd033 100644 --- a/forge-gui/src/main/java/forge/itemmanager/BooleanExpression.java +++ b/forge-gui/src/main/java/forge/itemmanager/BooleanExpression.java @@ -43,7 +43,7 @@ public class BooleanExpression { public Predicate evaluate() { - String currentValue = ""; + StringBuilder currentValue = new StringBuilder(); boolean escapeNext = false; while (expression.hasNext()) { @@ -59,7 +59,7 @@ public class BooleanExpression { operator = Operator.OPEN_PAREN; } else if (token.equals(Operator.CLOSE_PAREN.token)) { operator = Operator.CLOSE_PAREN; - } else if (token.equals(Operator.NOT.token) && currentValue.trim().isEmpty()) { //Ignore ! operators that aren't the first token in a search term (Don't use '!' in 'Kaboom!') + } else if (token.equals(Operator.NOT.token) && currentValue.toString().trim().isEmpty()) { //Ignore ! operators that aren't the first token in a search term (Don't use '!' in 'Kaboom!') operator = Operator.NOT; } else if (token.equals(Operator.ESCAPE.token)) { escapeNext = true; @@ -67,20 +67,20 @@ public class BooleanExpression { } if (operator == null) { - currentValue += token; + currentValue.append(token); } else { if (escapeNext) { escapeNext = false; - currentValue += token; + currentValue.append(token); continue; } - if (!currentValue.trim().isEmpty()) { - operands.push(valueOf(currentValue.trim())); + if (!currentValue.toString().trim().isEmpty()) { + operands.push(valueOf(currentValue.toString().trim())); } - currentValue = ""; + currentValue = new StringBuilder(); if (!operators.isEmpty() && operator.precedence < operators.peek().precedence) { resolve(true); @@ -98,8 +98,8 @@ public class BooleanExpression { } - if (!currentValue.trim().isEmpty()) { - operands.push(valueOf(currentValue.trim())); + if (!currentValue.toString().trim().isEmpty()) { + operands.push(valueOf(currentValue.toString().trim())); } while (!operators.isEmpty()) { diff --git a/forge-gui/src/main/java/forge/itemmanager/SFilterUtil.java b/forge-gui/src/main/java/forge/itemmanager/SFilterUtil.java index 241cb827008..d0b49c98364 100644 --- a/forge-gui/src/main/java/forge/itemmanager/SFilterUtil.java +++ b/forge-gui/src/main/java/forge/itemmanager/SFilterUtil.java @@ -70,7 +70,7 @@ public class SFilterUtil { private static List getSplitText(String text) { boolean inQuotes = false; - String entry = ""; + StringBuilder entry = new StringBuilder(); List splitText = new ArrayList<>(); for (int i = 0; i < text.length(); i++) { char ch = text.charAt(i); @@ -78,8 +78,8 @@ public class SFilterUtil { case ' ': if (!inQuotes) { //if not in quotes, end current entry if (entry.length() > 0) { - splitText.add(entry); - entry = ""; + splitText.add(entry.toString()); + entry = new StringBuilder(); } continue; } @@ -99,10 +99,10 @@ public class SFilterUtil { } break; } - entry += ch; + entry.append(ch); } if (entry.length() > 0) { - splitText.add(entry); + splitText.add(entry.toString()); } return splitText; } diff --git a/forge-gui/src/main/java/forge/itemmanager/SItemManagerUtil.java b/forge-gui/src/main/java/forge/itemmanager/SItemManagerUtil.java index f08c8960ded..eb960d86a2c 100644 --- a/forge-gui/src/main/java/forge/itemmanager/SItemManagerUtil.java +++ b/forge-gui/src/main/java/forge/itemmanager/SItemManagerUtil.java @@ -154,7 +154,7 @@ public final class SItemManagerUtil { }); final StringBuilder builder = new StringBuilder(); for (final Entry itemEntry : sorted) { - builder.append("\n" + itemEntry.getValue() + " * " + itemEntry.getKey().toString()); + builder.append("\n").append(itemEntry.getValue()).append(" * ").append(itemEntry.getKey().toString()); } return builder.toString(); } diff --git a/forge-gui/src/main/java/forge/limited/CardRanker.java b/forge-gui/src/main/java/forge/limited/CardRanker.java index 4fa6b84d7ee..91f12774e2e 100644 --- a/forge-gui/src/main/java/forge/limited/CardRanker.java +++ b/forge-gui/src/main/java/forge/limited/CardRanker.java @@ -135,8 +135,7 @@ public class CardRanker { } private static List getCardsExceptOne(List cache, int i) { - List otherCards = new ArrayList<>(); - otherCards.addAll(cache.subList(0, i)); + List otherCards = new ArrayList<>(cache.subList(0, i)); if (i + 1 < cache.size()) { otherCards.addAll(cache.subList(i + 1, cache.size())); } diff --git a/forge-gui/src/main/java/forge/match/input/InputConfirmMulligan.java b/forge-gui/src/main/java/forge/match/input/InputConfirmMulligan.java index f413918e55e..24e2a6a1d19 100644 --- a/forge-gui/src/main/java/forge/match/input/InputConfirmMulligan.java +++ b/forge-gui/src/main/java/forge/match/input/InputConfirmMulligan.java @@ -63,11 +63,11 @@ public class InputConfirmMulligan extends InputSyncronizedBase { final StringBuilder sb = new StringBuilder(); if (startingPlayer == player) { - sb.append(player).append(", "+ localizer.getMessage("lblYouAreGoingFirst") +"\n\n"); + sb.append(player).append(", ").append(localizer.getMessage("lblYouAreGoingFirst")).append("\n\n"); } else { - sb.append(startingPlayer.getName()).append(" " + localizer.getMessage("lblIsGoingFirst") +".\n"); - sb.append(player).append(", "+ localizer.getMessage("lblYouAreGoing") + " ").append(Lang.getOrdinal(game.getPosition(player, startingPlayer))).append(".\n\n"); + sb.append(startingPlayer.getName()).append(" ").append(localizer.getMessage("lblIsGoingFirst")).append(".\n"); + sb.append(player).append(", ").append(localizer.getMessage("lblYouAreGoing")).append(" ").append(Lang.getOrdinal(game.getPosition(player, startingPlayer))).append(".\n\n"); } getController().getGui().updateButtons(getOwner(), localizer.getMessage("lblKeep"), localizer.getMessage("lblMulligan"), true, true, true); diff --git a/forge-gui/src/main/java/forge/planarconquest/ConquestData.java b/forge-gui/src/main/java/forge/planarconquest/ConquestData.java index b3a31a54160..f1fd227ecc9 100644 --- a/forge-gui/src/main/java/forge/planarconquest/ConquestData.java +++ b/forge-gui/src/main/java/forge/planarconquest/ConquestData.java @@ -270,14 +270,14 @@ public final class ConquestData { List commandersBeingExiled = null; - String message = "Exile the following " + cardStr + " to receive {AE}" + value + "?\n"; + StringBuilder message = new StringBuilder("Exile the following " + cardStr + " to receive {AE}" + value + "?\n"); for (PaperCard card : cards) { if (planeswalker == card) { SOptionPane.showMessageDialog("Current planeswalker cannot be exiled.", title, SOptionPane.INFORMATION_ICON); return false; } - String commandersUsingCard = ""; + StringBuilder commandersUsingCard = new StringBuilder(); for (ConquestCommander commander : commanders) { if (commander.getCard() == card) { if (!commander.getDeck().getMain().isEmpty()) { @@ -290,19 +290,19 @@ public final class ConquestData { commandersBeingExiled.add(commander); //cache commander to make it easier to remove later } if (commander.getDeck().getMain().contains(card)) { - commandersUsingCard += "\n" + commander.getName(); + commandersUsingCard.append("\n").append(commander.getName()); } } - if (!commandersUsingCard.isEmpty()) { + if (commandersUsingCard.length() > 0) { SOptionPane.showMessageDialog(card.getName() + " is in use by the following commanders and cannot be exiled:\n" + commandersUsingCard, title, SOptionPane.INFORMATION_ICON); return false; } - message += "\n" + card.getName(); + message.append("\n").append(card.getName()); } - if (SOptionPane.showConfirmDialog(message, title, "OK", "Cancel")) { + if (SOptionPane.showConfirmDialog(message.toString(), title, "OK", "Cancel")) { if (exiledCards.addAll(cards)) { if (commandersBeingExiled != null) { commanders.removeAll(commandersBeingExiled); @@ -326,11 +326,11 @@ public final class ConquestData { return false; } - String message = "Spend {AE}" + cost + " to retrieve the following " + cardStr + " from exile?\n"; + StringBuilder message = new StringBuilder("Spend {AE}" + cost + " to retrieve the following " + cardStr + " from exile?\n"); for (PaperCard card : cards) { - message += "\n" + card.getName(); + message.append("\n").append(card.getName()); } - if (SOptionPane.showConfirmDialog(message, title, "OK", "Cancel")) { + if (SOptionPane.showConfirmDialog(message.toString(), title, "OK", "Cancel")) { if (exiledCards.removeAll(cards)) { for (PaperCard card : cards) { if (card.getRules().canBeCommander()) { //add back commander for card if needed diff --git a/forge-gui/src/main/java/forge/planarconquest/ConquestUtil.java b/forge-gui/src/main/java/forge/planarconquest/ConquestUtil.java index 7b1feacb8d3..df54a02c9fa 100644 --- a/forge-gui/src/main/java/forge/planarconquest/ConquestUtil.java +++ b/forge-gui/src/main/java/forge/planarconquest/ConquestUtil.java @@ -311,13 +311,13 @@ public class ConquestUtil { } public static AEtherFilter getColorFilter(ColorSet color) { - String name = ""; + StringBuilder name = new StringBuilder(); for (ManaCostShard s : color.getOrderedShards()) { - name += s.toString(); + name.append(s.toString()); } - name = name.replaceAll("[{}]", ""); //remove all brackets + name = new StringBuilder(name.toString().replaceAll("[{}]", "")); //remove all brackets try { - return AEtherFilter.valueOf(name); + return AEtherFilter.valueOf(name.toString()); } catch (Exception e) { System.err.println("No color filter with name " + name); @@ -462,7 +462,7 @@ public class ConquestUtil { double baseOdds = 0; double remainingOdds = 1; CardRarity baseRarity = null; - String caption = ""; + StringBuilder caption = new StringBuilder(); for (CardRarity rarity : rarityOdds.keySet()) { Double odds = oddsLookup.get(rarity); @@ -479,16 +479,16 @@ public class ConquestUtil { final String display = rounded < 1d ? Double.toString(rounded) // Display decimal if < 1% : Long.toString(Math.round(rounded)); - caption += ", " + rarity.getLongName() + " (" + display + "%)"; + caption.append(", ").append(rarity.getLongName()).append(" (").append(display).append("%)"); rarityOdds.put(rarity, odds); } } //prepend base rarity and odds - caption = baseRarity.getLongName() + " (" + (Math.round(1000 * remainingOdds) / 10) + "%)" + caption; + caption.insert(0, baseRarity.getLongName() + " (" + (Math.round(1000 * remainingOdds) / 10) + "%)"); rarityOdds.put(baseRarity, remainingOdds); - return caption; + return caption.toString(); } @Override diff --git a/forge-gui/src/main/java/forge/player/HumanPlay.java b/forge-gui/src/main/java/forge/player/HumanPlay.java index 40d69e11f79..bf9244ffd0c 100644 --- a/forge-gui/src/main/java/forge/player/HumanPlay.java +++ b/forge-gui/src/main/java/forge/player/HumanPlay.java @@ -333,7 +333,7 @@ public class HumanPlay { StringBuilder sb = new StringBuilder("Do you want to "); sb.append(res.contains(p) ? "" : "let that player "); - sb.append("draw " + Lang.nounWithAmount(amount, " card") + "?" + orString); + sb.append("draw ").append(Lang.nounWithAmount(amount, " card")).append("?").append(orString); if (!p.getController().confirmPayment(part, sb.toString(), sourceAbility)) { return false; diff --git a/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java b/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java index 4631c33e04a..eb4dc80fa2f 100644 --- a/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java +++ b/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java @@ -337,7 +337,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont if (min == 0) { builder.append("up to "); } - builder.append("%d " + message + "(s) to " + action + "."); + builder.append("%d ").append(message).append("(s) to ").append(action).append("."); final InputSelectCardsFromList inp = new InputSelectCardsFromList(this, min, max, valid, sa); inp.setMessage(builder.toString()); @@ -544,8 +544,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont for (SpellAbility spellAbility : spells) { spellViewCache.put(spellAbility.getView(), spellAbility); } - List choices = new ArrayList<>(); - choices.addAll(spellViewCache.keySet()); + List choices = new ArrayList<>(spellViewCache.keySet()); Object choice = getGui().one(title, choices); // Human is supposed to read the message and understand from it what to @@ -634,13 +633,13 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont } final Map tos = sa.getTriggeringObjects(); if (tos.containsKey("Attacker")) { - buildQuestion.append("\nAttacker: " + tos.get("Attacker")); + buildQuestion.append("\nAttacker: ").append(tos.get("Attacker")); } if (tos.containsKey("Card")) { final Card card = (Card) tos.get("Card"); if (card != null && (card.getController() == player || game.getZoneOf(card) == null || game.getZoneOf(card).getZoneType().isKnown())) { - buildQuestion.append("\nTriggered by: " + tos.get("Card")); + buildQuestion.append("\nTriggered by: ").append(tos.get("Card")); } } @@ -1623,7 +1622,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont // for the purpose of pre-ordering, no need for extra granularity Integer idxAdditionalInfo = firstStr.indexOf(" ["); - String saLookupKey = idxAdditionalInfo != -1 ? firstStr.substring(0, idxAdditionalInfo - 1) : firstStr; + StringBuilder saLookupKey = new StringBuilder(idxAdditionalInfo != -1 ? firstStr.substring(0, idxAdditionalInfo - 1) : firstStr); char delim = (char) 5; for (int i = 1; i < activePlayerSAs.size(); i++) { @@ -1635,14 +1634,14 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont // are the same } - saLookupKey += delim + saStr; + saLookupKey.append(delim).append(saStr); idxAdditionalInfo = saLookupKey.indexOf(" ["); if (idxAdditionalInfo != -1) { - saLookupKey = saLookupKey.substring(0, idxAdditionalInfo - 1); + saLookupKey = new StringBuilder(saLookupKey.substring(0, idxAdditionalInfo - 1)); } } if (needPrompt) { - List savedOrder = orderedSALookup.get(saLookupKey); + List savedOrder = orderedSALookup.get(saLookupKey.toString()); List orderedSAVs = Lists.newArrayList(); // create a mapping between a spell's view and the spell itself @@ -1681,7 +1680,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont for (SpellAbility sa : orderedSAs) { savedOrder.add(activePlayerSAs.indexOf(sa)); } - orderedSALookup.put(saLookupKey, savedOrder); + orderedSALookup.put(saLookupKey.toString(), savedOrder); } } for (int i = orderedSAs.size() - 1; i >= 0; i--) { diff --git a/forge-gui/src/main/java/forge/properties/ForgeProfileProperties.java b/forge-gui/src/main/java/forge/properties/ForgeProfileProperties.java index 17711e08509..78cd5278860 100644 --- a/forge-gui/src/main/java/forge/properties/ForgeProfileProperties.java +++ b/forge-gui/src/main/java/forge/properties/ForgeProfileProperties.java @@ -212,16 +212,16 @@ public class ForgeProfileProperties { //only append values that aren't equal to defaults final StringBuilder sb = new StringBuilder(); if (!userDir.equals(defaultUserDir)) { //ensure backslashes are escaped - sb.append(USER_DIR_KEY + "=" + userDir.replace("\\", "\\\\") + "\n"); + sb.append(USER_DIR_KEY + "=").append(userDir.replace("\\", "\\\\")).append("\n"); } if (!decksDir.equals(defaultDecksDir)) { - sb.append(DECKS_DIR_KEY + "=" + decksDir.replace("\\", "\\\\") + "\n"); + sb.append(DECKS_DIR_KEY + "=").append(decksDir.replace("\\", "\\\\")).append("\n"); } if (!cacheDir.equals(defaultCacheDir)) { - sb.append(CACHE_DIR_KEY + "=" + cacheDir.replace("\\", "\\\\") + "\n"); + sb.append(CACHE_DIR_KEY + "=").append(cacheDir.replace("\\", "\\\\")).append("\n"); } if (!cardPicsDir.equals(defaultCardPicsDir)) { - sb.append(CARD_PICS_DIR_KEY + "=" + cardPicsDir.replace("\\", "\\\\") + "\n"); + sb.append(CARD_PICS_DIR_KEY + "=").append(cardPicsDir.replace("\\", "\\\\")).append("\n"); } if (cardPicsSubDirs.size() > 0) { sb.append(CARD_PICS_SUB_DIRS_KEY + "="); @@ -230,12 +230,12 @@ public class ForgeProfileProperties { if (needDelim) { sb.append("|"); } - sb.append(entry.getKey() + "->" + entry.getValue()); + sb.append(entry.getKey()).append("->").append(entry.getValue()); } sb.append("\n"); } if (serverPort != 0) { - sb.append(SERVER_PORT_KEY + "=" + serverPort); + sb.append(SERVER_PORT_KEY + "=").append(serverPort); } if (sb.length() > 0) { FileUtil.writeFile(ForgeConstants.PROFILE_FILE, sb.toString()); diff --git a/forge-gui/src/main/java/forge/quest/QuestEventDraft.java b/forge-gui/src/main/java/forge/quest/QuestEventDraft.java index d3e36257b84..974aaddb753 100644 --- a/forge-gui/src/main/java/forge/quest/QuestEventDraft.java +++ b/forge-gui/src/main/java/forge/quest/QuestEventDraft.java @@ -693,17 +693,17 @@ public class QuestEventDraft implements IQuestEvent { if (edition != null) { return edition.getName() + " (" + edition.getCode() + ")"; } - String blockString = block.getName() + " ("; + StringBuilder blockString = new StringBuilder(block.getName() + " ("); List sets = block.getSets(); for (int i = 0; i < sets.size(); i++) { CardEdition cardEdition = sets.get(i); - blockString += cardEdition.getCode(); + blockString.append(cardEdition.getCode()); if (i < sets.size() - 1) { - blockString += ", "; + blockString.append(", "); } } - blockString += ")"; - return blockString; + blockString.append(")"); + return blockString.toString(); } public String getName() { @@ -959,14 +959,14 @@ public class QuestEventDraft implements IQuestEvent { final String s0c = sets.get(0).getCode(); if (sets.size() == 1) { int numBoosters = block.getCntBoostersDraft(); - String combination = ""; + StringBuilder combination = new StringBuilder(); for (int i = 0; i < numBoosters; i++) { - combination += s0c; + combination.append(s0c); if (i < numBoosters - 1) { - combination += "/"; + combination.append("/"); } } - possibleCombinations.add(combination); + possibleCombinations.add(combination.toString()); return possibleCombinations; } @@ -1087,15 +1087,15 @@ public class QuestEventDraft implements IQuestEvent { } public String getBoosterList() { - String boosterList = ""; + StringBuilder boosterList = new StringBuilder(); String[] boosterArray = boosterConfiguration.split("/"); for (int i = 0; i < boosterArray.length; i++) { - boosterList += FModel.getMagicDb().getEditions().get(boosterArray[i]).getName(); + boosterList.append(FModel.getMagicDb().getEditions().get(boosterArray[i]).getName()); if (i != boosterArray.length - 1) { - boosterList += " | "; + boosterList.append(" | "); } } - return boosterList; + return boosterList.toString(); } @Override diff --git a/forge-gui/src/main/java/forge/quest/QuestRewardCard.java b/forge-gui/src/main/java/forge/quest/QuestRewardCard.java index 26c2c6de0c7..9b0541dbc91 100644 --- a/forge-gui/src/main/java/forge/quest/QuestRewardCard.java +++ b/forge-gui/src/main/java/forge/quest/QuestRewardCard.java @@ -19,27 +19,27 @@ public abstract class QuestRewardCard implements IQuestRewardCard { return defaultDescription; } - String buildDesc = null; + StringBuilder buildDesc = null; for (final String s : input) { if (s.startsWith("desc:") || s.startsWith("Desc:")) { final String[] tmp = s.split(":"); if (tmp.length > 1) { - buildDesc = tmp[1]; + buildDesc = new StringBuilder(tmp[1]); } else { - buildDesc = ""; + buildDesc = new StringBuilder(); } } else if (buildDesc != null) { if (s.contains(":")) { - return buildDesc; + return buildDesc.toString(); } else { - buildDesc = buildDesc + " " + s; + buildDesc.append(" ").append(s); } } } if (buildDesc != null) { - return buildDesc; + return buildDesc.toString(); } return defaultDescription; } diff --git a/forge-gui/src/main/java/forge/quest/QuestUtil.java b/forge-gui/src/main/java/forge/quest/QuestUtil.java index 63be897d389..03b336a36cf 100644 --- a/forge-gui/src/main/java/forge/quest/QuestUtil.java +++ b/forge-gui/src/main/java/forge/quest/QuestUtil.java @@ -323,7 +323,7 @@ public class QuestUtil { view.getCbxMatchLength().removeAllItems(); boolean activeCharms = false; StringBuilder matchLength = new StringBuilder(); - matchLength.append(localizer.getMessage("lblMatchBestof") + " ").append(qCtrl.getMatchLength()); + matchLength.append(localizer.getMessage("lblMatchBestof")).append(" ").append(qCtrl.getMatchLength()); if (qCtrl.getAssets().hasItem(QuestItemType.CHARM_VIM)) { view.getCbxMatchLength().addItem(localizer.getMessage("lblMatchBestOf1")); activeCharms = true; diff --git a/forge-gui/src/main/java/forge/quest/QuestWinLoseController.java b/forge-gui/src/main/java/forge/quest/QuestWinLoseController.java index 265ea61bb58..bcf80b0526d 100644 --- a/forge-gui/src/main/java/forge/quest/QuestWinLoseController.java +++ b/forge-gui/src/main/java/forge/quest/QuestWinLoseController.java @@ -227,7 +227,7 @@ public class QuestWinLoseController { sb.append(" opponent: ").append(credBase).append(" credits.\n"); if(qEvent.getIsRandomMatch()){ - sb.append("Random Opponent Bonus: " + credBase + " credit" + (credBase > 1 ? "s." : ".") + "\n"); + sb.append("Random Opponent Bonus: ").append(credBase).append(" credit").append(credBase > 1 ? "s." : ".").append("\n"); credBase += credBase; } diff --git a/forge-gui/src/main/java/forge/quest/bazaar/QuestPetStorage.java b/forge-gui/src/main/java/forge/quest/bazaar/QuestPetStorage.java index 8c30919f90e..899f7c93d4a 100644 --- a/forge-gui/src/main/java/forge/quest/bazaar/QuestPetStorage.java +++ b/forge-gui/src/main/java/forge/quest/bazaar/QuestPetStorage.java @@ -142,9 +142,7 @@ public class QuestPetStorage { final List result = new ArrayList<>(); final List allPossible = this.petsBySlot.get(Integer.valueOf(iSlot)); if (null != allPossible) { - for (final QuestPetController c : allPossible) { - result.add(c); - } + result.addAll(allPossible); } return result; } diff --git a/forge-gui/src/main/java/forge/quest/io/QuestDataIO.java b/forge-gui/src/main/java/forge/quest/io/QuestDataIO.java index c64544b11b8..2aebea27992 100644 --- a/forge-gui/src/main/java/forge/quest/io/QuestDataIO.java +++ b/forge-gui/src/main/java/forge/quest/io/QuestDataIO.java @@ -540,14 +540,14 @@ public class QuestDataIO { writer.endNode(); writer.startNode("packs"); - String output = ""; + StringBuilder output = new StringBuilder(); for (int i = 0; i < draft.getBoosterConfiguration().length; i++) { - output += draft.getBoosterConfiguration()[i]; + output.append(draft.getBoosterConfiguration()[i]); if (i != draft.getBoosterConfiguration().length - 1) { - output += "/"; + output.append("/"); } } - writer.setValue(output); + writer.setValue(output.toString()); writer.endNode(); writer.startNode("entryFee"); diff --git a/forge-gui/src/main/java/forge/sound/EventVisualizer.java b/forge-gui/src/main/java/forge/sound/EventVisualizer.java index 0f2cc2c71fd..69ce7a8fba1 100644 --- a/forge-gui/src/main/java/forge/sound/EventVisualizer.java +++ b/forge-gui/src/main/java/forge/sound/EventVisualizer.java @@ -199,40 +199,40 @@ public class EventVisualizer extends IGameEventVisitor.Base imp resultSound = SoundEffectType.ScriptedEffect; } else { // I want to get all real colors this land can produce - no interest in colorless or devoid - String fullManaColors = ""; + StringBuilder fullManaColors = new StringBuilder(); for (final SpellAbility sa : land.getManaAbilities()) { String currManaColor = sa.getManaPartRecursive().getOrigProduced(); if(!"C".equals(currManaColor)) { - fullManaColors = fullManaColors + currManaColor; + fullManaColors.append(currManaColor); } } // No interest if "colors together" or "alternative colors" - only interested in colors themselves - fullManaColors = fullManaColors.replaceAll("\\s", ""); + fullManaColors = new StringBuilder(fullManaColors.toString().replaceAll("\\s", "")); int fullManaColorsLength = fullManaColors.length(); if(fullManaColorsLength >= 3) { // three color land - fullManaColors = fullManaColors.substring(0,3); - if (fullManaColors.contains("W") && fullManaColors.contains("U") && fullManaColors.contains("B") && SoundSystem.instance.hasResource(SoundEffectType.WhiteBlueBlackLand)) { + fullManaColors = new StringBuilder(fullManaColors.substring(0, 3)); + if (fullManaColors.toString().contains("W") && fullManaColors.toString().contains("U") && fullManaColors.toString().contains("B") && SoundSystem.instance.hasResource(SoundEffectType.WhiteBlueBlackLand)) { resultSound = SoundEffectType.WhiteBlueBlackLand; - } else if (fullManaColors.contains("W") && fullManaColors.contains("G") && fullManaColors.contains("U") && SoundSystem.instance.hasResource(SoundEffectType.WhiteGreenBlueLand)) { + } else if (fullManaColors.toString().contains("W") && fullManaColors.toString().contains("G") && fullManaColors.toString().contains("U") && SoundSystem.instance.hasResource(SoundEffectType.WhiteGreenBlueLand)) { resultSound = SoundEffectType.WhiteGreenBlueLand; - } else if (fullManaColors.contains("W") && fullManaColors.contains("R") && fullManaColors.contains("B") && SoundSystem.instance.hasResource(SoundEffectType.WhiteRedBlackLand)) { + } else if (fullManaColors.toString().contains("W") && fullManaColors.toString().contains("R") && fullManaColors.toString().contains("B") && SoundSystem.instance.hasResource(SoundEffectType.WhiteRedBlackLand)) { resultSound = SoundEffectType.WhiteRedBlackLand; - } else if (fullManaColors.contains("B") && fullManaColors.contains("W") && fullManaColors.contains("G") && SoundSystem.instance.hasResource(SoundEffectType.BlackWhiteGreenLand)) { + } else if (fullManaColors.toString().contains("B") && fullManaColors.toString().contains("W") && fullManaColors.toString().contains("G") && SoundSystem.instance.hasResource(SoundEffectType.BlackWhiteGreenLand)) { resultSound = SoundEffectType.BlackWhiteGreenLand; - } else if (fullManaColors.contains("B") && fullManaColors.contains("R") && fullManaColors.contains("G") && SoundSystem.instance.hasResource(SoundEffectType.BlackRedGreenLand)) { + } else if (fullManaColors.toString().contains("B") && fullManaColors.toString().contains("R") && fullManaColors.toString().contains("G") && SoundSystem.instance.hasResource(SoundEffectType.BlackRedGreenLand)) { resultSound = SoundEffectType.BlackRedGreenLand; - } else if (fullManaColors.contains("U") && fullManaColors.contains("B") && fullManaColors.contains("R") && SoundSystem.instance.hasResource(SoundEffectType.BlueBlackRedLand)) { + } else if (fullManaColors.toString().contains("U") && fullManaColors.toString().contains("B") && fullManaColors.toString().contains("R") && SoundSystem.instance.hasResource(SoundEffectType.BlueBlackRedLand)) { resultSound = SoundEffectType.BlueBlackRedLand; - } else if (fullManaColors.contains("G") && fullManaColors.contains("U") && fullManaColors.contains("R") && SoundSystem.instance.hasResource(SoundEffectType.GreenBlueRedLand)) { + } else if (fullManaColors.toString().contains("G") && fullManaColors.toString().contains("U") && fullManaColors.toString().contains("R") && SoundSystem.instance.hasResource(SoundEffectType.GreenBlueRedLand)) { resultSound = SoundEffectType.GreenBlueRedLand; - } else if (fullManaColors.contains("G") && fullManaColors.contains("B") && fullManaColors.contains("U") && SoundSystem.instance.hasResource(SoundEffectType.GreenBlackBlueLand)) { + } else if (fullManaColors.toString().contains("G") && fullManaColors.toString().contains("B") && fullManaColors.toString().contains("U") && SoundSystem.instance.hasResource(SoundEffectType.GreenBlackBlueLand)) { resultSound = SoundEffectType.GreenBlackBlueLand; - } else if (fullManaColors.contains("G") && fullManaColors.contains("R") && fullManaColors.contains("W") && SoundSystem.instance.hasResource(SoundEffectType.GreenRedWhiteLand)) { + } else if (fullManaColors.toString().contains("G") && fullManaColors.toString().contains("R") && fullManaColors.toString().contains("W") && SoundSystem.instance.hasResource(SoundEffectType.GreenRedWhiteLand)) { resultSound = SoundEffectType.GreenRedWhiteLand; - } else if (fullManaColors.contains("R") && fullManaColors.contains("U") && fullManaColors.contains("W") && SoundSystem.instance.hasResource(SoundEffectType.RedBlueWhiteLand)) { + } else if (fullManaColors.toString().contains("R") && fullManaColors.toString().contains("U") && fullManaColors.toString().contains("W") && SoundSystem.instance.hasResource(SoundEffectType.RedBlueWhiteLand)) { resultSound = SoundEffectType.RedBlueWhiteLand; } } @@ -240,26 +240,26 @@ public class EventVisualizer extends IGameEventVisitor.Base imp if(resultSound == null && fullManaColorsLength >= 2) { // three color land without sounds installed, or two color land // lets try - fullManaColors = fullManaColors.substring(0,2); - if (fullManaColors.contains("W") && (fullManaColors.contains("U")) && SoundSystem.instance.hasResource(SoundEffectType.WhiteBlueLand)) { + fullManaColors = new StringBuilder(fullManaColors.substring(0, 2)); + if (fullManaColors.toString().contains("W") && (fullManaColors.toString().contains("U")) && SoundSystem.instance.hasResource(SoundEffectType.WhiteBlueLand)) { resultSound = SoundEffectType.WhiteBlueLand; - } else if (fullManaColors.contains("W") && (fullManaColors.contains("G")) && SoundSystem.instance.hasResource(SoundEffectType.WhiteGreenLand)) { + } else if (fullManaColors.toString().contains("W") && (fullManaColors.toString().contains("G")) && SoundSystem.instance.hasResource(SoundEffectType.WhiteGreenLand)) { resultSound = SoundEffectType.WhiteGreenLand; - } else if (fullManaColors.contains("W") && (fullManaColors.contains("R")) && SoundSystem.instance.hasResource(SoundEffectType.WhiteRedLand)) { + } else if (fullManaColors.toString().contains("W") && (fullManaColors.toString().contains("R")) && SoundSystem.instance.hasResource(SoundEffectType.WhiteRedLand)) { resultSound = SoundEffectType.WhiteRedLand; - } else if (fullManaColors.contains("B") && (fullManaColors.contains("W")) && SoundSystem.instance.hasResource(SoundEffectType.BlackWhiteLand)) { + } else if (fullManaColors.toString().contains("B") && (fullManaColors.toString().contains("W")) && SoundSystem.instance.hasResource(SoundEffectType.BlackWhiteLand)) { resultSound = SoundEffectType.BlackWhiteLand; - } else if (fullManaColors.contains("B") && (fullManaColors.contains("R")) && SoundSystem.instance.hasResource(SoundEffectType.BlackRedLand)) { + } else if (fullManaColors.toString().contains("B") && (fullManaColors.toString().contains("R")) && SoundSystem.instance.hasResource(SoundEffectType.BlackRedLand)) { resultSound = SoundEffectType.BlackRedLand; - } else if (fullManaColors.contains("U") && (fullManaColors.contains("B")) && SoundSystem.instance.hasResource(SoundEffectType.BlueBlackLand)) { + } else if (fullManaColors.toString().contains("U") && (fullManaColors.toString().contains("B")) && SoundSystem.instance.hasResource(SoundEffectType.BlueBlackLand)) { resultSound = SoundEffectType.BlueBlackLand; - } else if (fullManaColors.contains("G") && (fullManaColors.contains("U")) && SoundSystem.instance.hasResource(SoundEffectType.GreenBlueLand)) { + } else if (fullManaColors.toString().contains("G") && (fullManaColors.toString().contains("U")) && SoundSystem.instance.hasResource(SoundEffectType.GreenBlueLand)) { resultSound = SoundEffectType.GreenBlueLand; - } else if (fullManaColors.contains("G") && (fullManaColors.contains("B")) && SoundSystem.instance.hasResource(SoundEffectType.GreenBlackLand)) { + } else if (fullManaColors.toString().contains("G") && (fullManaColors.toString().contains("B")) && SoundSystem.instance.hasResource(SoundEffectType.GreenBlackLand)) { resultSound = SoundEffectType.GreenBlackLand; - } else if (fullManaColors.contains("G") && (fullManaColors.contains("R")) && SoundSystem.instance.hasResource(SoundEffectType.GreenRedLand)) { + } else if (fullManaColors.toString().contains("G") && (fullManaColors.toString().contains("R")) && SoundSystem.instance.hasResource(SoundEffectType.GreenRedLand)) { resultSound = SoundEffectType.GreenRedLand; - } else if (fullManaColors.contains("R") && (fullManaColors.contains("U")) && SoundSystem.instance.hasResource(SoundEffectType.RedBlueLand)) { + } else if (fullManaColors.toString().contains("R") && (fullManaColors.toString().contains("U")) && SoundSystem.instance.hasResource(SoundEffectType.RedBlueLand)) { resultSound = SoundEffectType.RedBlueLand; } } @@ -268,17 +268,17 @@ public class EventVisualizer extends IGameEventVisitor.Base imp // multicolor land without sounds installed, or single mana land, or colorless/devoid land // in case of multicolor, lets take only the 1st color of the list, it sure has sound if(fullManaColorsLength >= 2) { - fullManaColors = fullManaColors.substring(0,1); + fullManaColors = new StringBuilder(fullManaColors.substring(0, 1)); } - if (fullManaColors.contains("B")) { + if (fullManaColors.toString().contains("B")) { resultSound = SoundEffectType.BlackLand; - } else if (fullManaColors.contains("U")) { + } else if (fullManaColors.toString().contains("U")) { resultSound = SoundEffectType.BlueLand; - } else if (fullManaColors.contains("G")) { + } else if (fullManaColors.toString().contains("G")) { resultSound = SoundEffectType.GreenLand; - } else if (fullManaColors.contains("R")) { + } else if (fullManaColors.toString().contains("R")) { resultSound = SoundEffectType.RedLand; - } else if (fullManaColors.contains("W")) { + } else if (fullManaColors.toString().contains("W")) { resultSound = SoundEffectType.WhiteLand; } else { resultSound = SoundEffectType.OtherLand; diff --git a/forge-gui/src/main/java/forge/util/RestartUtil.java b/forge-gui/src/main/java/forge/util/RestartUtil.java index c74c05297f1..a4fcf54679a 100644 --- a/forge-gui/src/main/java/forge/util/RestartUtil.java +++ b/forge-gui/src/main/java/forge/util/RestartUtil.java @@ -45,10 +45,10 @@ public class RestartUtil { // program main is a jar if (mainCommand[0].endsWith(".jar")) { // if it's a jar, add -jar mainJar - cmd.append("-jar " + new File(mainCommand[0]).getPath()); + cmd.append("-jar ").append(new File(mainCommand[0]).getPath()); } else { // else it's a .class, add the classpath and mainClass - cmd.append("-cp \"" + System.getProperty("java.class.path") + "\" " + mainCommand[0]); + cmd.append("-cp \"").append(System.getProperty("java.class.path")).append("\" ").append(mainCommand[0]); } // finally add program arguments for (int i = 1; i < mainCommand.length; i++) {