From 076840df536c6573fb4341659dc25485f1929685 Mon Sep 17 00:00:00 2001 From: vraskulin Date: Mon, 9 Jan 2017 19:16:47 +0300 Subject: [PATCH 1/2] Big refactoring I used Intellij IDEA to automatically refactor code to achive 3 goals. 1) get rid of anonymouse classes, and replace the with lamba to get more readeable and clean code (like in TableWaitingDialog). 2) make effectively final variables actually final to avoid inadvertent changes on it in further releases and keep objects as immutable, as possible. 3) Get rid of unused imports (most of the changes) in whole project classes. --- .../src/main/java/mage/client/MageFrame.java | 217 +++---- .../src/main/java/mage/client/cards/Card.java | 11 +- .../main/java/mage/client/cards/CardArea.java | 4 +- .../client/cards/CardDraggerGlassPane.java | 4 +- .../mage/client/cards/CardEventSource.java | 1 - .../main/java/mage/client/cards/CardGrid.java | 17 +- .../main/java/mage/client/cards/Cards.java | 13 +- .../java/mage/client/cards/CardsList.java | 30 +- .../java/mage/client/cards/DraftGrid.java | 5 +- .../java/mage/client/cards/DragCardGrid.java | 82 ++- .../mage/client/cards/DragCardTarget.java | 1 - .../java/mage/client/cards/Permanent.java | 6 +- .../mage/client/components/ColorPane.java | 84 ++- .../client/components/MageDesktopManager.java | 37 +- .../mage/client/components/MageJDesktop.java | 2 +- .../mage/client/components/MageRoundPane.java | 16 +- .../components/MageSynthStyleFactory.java | 2 +- .../mage/client/components/MageTextArea.java | 27 +- .../java/mage/client/components/MageUI.java | 7 +- .../components/ability/AbilityPicker.java | 2 +- .../components/ability/BackgroundPainter.java | 4 +- .../components/ability/MageScrollButton.java | 8 +- .../components/ability/MageScrollbarUI.java | 2 +- .../client/components/ext/MageFloatPane.java | 8 +- .../components/ext/dlg/DialogManager.java | 2 +- .../components/ext/dlg/impl/ChoiceDialog.java | 43 +- .../components/ext/dlg/impl/StackDialog.java | 6 +- .../mage/client/components/tray/MageTray.java | 85 +-- .../client/deck/generator/DeckGenerator.java | 1 - .../deck/generator/DeckGeneratorCMC.java | 3 +- .../deck/generator/DeckGeneratorDialog.java | 44 +- .../deck/generator/DeckGeneratorPool.java | 16 +- .../generator/RatioAdjustingSliderPanel.java | 34 +- .../mage/client/deckeditor/CardSelector.java | 170 +----- .../java/mage/client/deckeditor/DeckArea.java | 6 +- .../client/deckeditor/DeckEditorPanel.java | 510 +++++++--------- .../DeckImportFromClipboardDialog.java | 39 +- .../mage/client/deckeditor/SortSetting.java | 8 +- .../viewer/CollectionViewerPanel.java | 62 +- .../collection/viewer/MageBook.java | 80 ++- .../collection/viewer/TestMageBook.java | 5 +- .../client/deckeditor/table/TableModel.java | 5 +- .../java/mage/client/dialog/AboutDialog.java | 6 +- .../mage/client/dialog/AddLandDialog.java | 29 +- .../client/dialog/CardInfoWindowDialog.java | 35 +- .../mage/client/dialog/ConnectDialog.java | 78 +-- .../java/mage/client/dialog/ErrorDialog.java | 6 +- .../mage/client/dialog/FeedbackDialog.java | 29 +- .../mage/client/dialog/GameEndDialog.java | 8 +- .../mage/client/dialog/JoinTableDialog.java | 12 +- .../java/mage/client/dialog/MageDialog.java | 7 +- .../mage/client/dialog/NewTableDialog.java | 43 +- .../client/dialog/NewTournamentDialog.java | 85 +-- .../mage/client/dialog/PickChoiceDialog.java | 20 +- .../mage/client/dialog/PickNumberDialog.java | 14 +- .../mage/client/dialog/PickPileDialog.java | 16 +- .../mage/client/dialog/PreferencesDialog.java | 321 +++------- .../mage/client/dialog/QuestionDialog.java | 12 +- .../dialog/RandomPacksSelectorDialog.java | 18 +- .../client/dialog/RegisterUserDialog.java | 20 +- .../client/dialog/ResetPasswordDialog.java | 20 +- .../mage/client/dialog/ShowCardsDialog.java | 23 +- .../client/dialog/TableWaitingDialog.java | 24 +- .../mage/client/dialog/UserRequestDialog.java | 21 +- .../java/mage/client/draft/DraftPanel.java | 91 ++- .../java/mage/client/game/AbilityPicker.java | 2 +- .../mage/client/game/BattlefieldPanel.java | 11 +- .../java/mage/client/game/FeedbackPanel.java | 48 +- .../main/java/mage/client/game/GamePane.java | 9 +- .../main/java/mage/client/game/GamePanel.java | 108 +--- .../java/mage/client/game/HelperPanel.java | 78 +-- .../java/mage/client/game/PlayAreaPanel.java | 243 +++----- .../java/mage/client/game/PlayerPanelExt.java | 118 +--- .../plugins/adapters/MageActionCallback.java | 182 +++--- .../client/remote/CallbackClientImpl.java | 567 +++++++++--------- .../mage/client/table/NewPlayerPanel.java | 12 +- .../mage/client/table/PlayersChatPanel.java | 2 +- .../mage/client/table/TablePlayerPanel.java | 13 +- .../java/mage/client/table/TablesPane.java | 2 +- .../java/mage/client/table/TablesPanel.java | 180 ++---- .../client/table/TournamentPlayerPanel.java | 8 +- .../client/tournament/TournamentPanel.java | 20 +- .../unusedFiles/DelayedViewerThread.java | 2 +- .../mage/client/unusedFiles/PlayerPanel.java | 15 +- .../client/util/DefaultActionCallback.java | 1 - .../java/mage/client/util/GameManager.java | 2 +- .../java/mage/client/util/ImageHelper.java | 4 +- .../client/util/NaturalOrderComparator.java | 2 +- .../mage/client/util/SettingsManager.java | 4 +- .../client/util/TransformedImageCache.java | 26 +- .../mage/client/util/audio/AudioGroup.java | 2 +- .../java/mage/client/util/audio/LinePool.java | 4 +- .../mage/client/util/audio/MusicPlayer.java | 8 +- .../mage/client/util/gui/ArrowBuilder.java | 16 +- .../client/util/gui/BufferedImageBuilder.java | 26 +- .../mage/client/util/gui/GuiDisplayUtil.java | 4 +- .../mage/client/util/gui/MageDialogState.java | 6 +- .../client/util/gui/TableSpinnerEditor.java | 33 +- .../gui/countryBox/CountryCellRenderer.java | 2 +- .../util/gui/countryBox/CountryComboBox.java | 2 +- .../client/util/sets/ConstructedFormats.java | 140 ++--- .../java/org/mage/card/arcane/Animation.java | 208 +++---- .../java/org/mage/card/arcane/CardPanel.java | 33 +- .../card/arcane/CardPanelComponentImpl.java | 55 +- .../mage/card/arcane/CardPanelRenderImpl.java | 64 +- .../org/mage/card/arcane/CardRenderer.java | 36 +- .../mage/card/arcane/CardRendererUtils.java | 6 +- .../java/org/mage/card/arcane/GlowText.java | 7 +- .../org/mage/card/arcane/ManaSymbols.java | 2 +- .../mage/card/arcane/ModernCardRenderer.java | 116 ++-- .../card/arcane/TextboxBasicManaRule.java | 2 +- .../mage/card/arcane/TextboxLevelRule.java | 6 +- .../mage/card/arcane/TextboxLoyaltyRule.java | 4 +- .../org/mage/card/arcane/TextboxRule.java | 8 +- .../org/mage/plugins/card/CardPluginImpl.java | 8 +- .../org/mage/plugins/card/dl/DownloadGui.java | 22 +- .../org/mage/plugins/card/dl/DownloadJob.java | 4 +- .../card/dl/beans/AbstractBoundBean.java | 2 +- .../card/dl/beans/EventListenerList.java | 19 +- .../card/dl/beans/PropertyChangeSupport.java | 2 +- .../collections/ListenableCollections.java | 34 +- .../beans/properties/CompoundProperties.java | 2 +- .../bound/PropertyChangeListListener.java | 4 +- .../bound/PropertyChangeMapListener.java | 17 +- .../bound/PropertyChangeSetListener.java | 12 +- .../card/dl/lm/AbstractLaternaBean.java | 2 +- .../sources/AltMtgOnlTokensImageSource.java | 2 - .../card/dl/sources/GrabbagImageSource.java | 1 - .../dl/sources/MtgOnlTokensImageSource.java | 2 - .../dl/sources/MythicspoilerComSource.java | 7 +- .../dl/sources/WizardCardsImageSource.java | 6 +- .../plugins/card/images/CardDownloadData.java | 10 +- .../plugins/card/images/DownloadPictures.java | 92 ++- .../plugins/card/info/CardInfoPaneImpl.java | 19 +- .../mage/plugins/card/utils/Transparency.java | 2 +- .../mage/plugins/theme/ThemePluginImpl.java | 4 +- Mage.Common/src/mage/utils/DeckBuilder.java | 2 +- .../src/mage/deck/AusHighlander.java | 4 +- .../src/mage/player/ai/ComputerPlayer6.java | 1 - .../mage/player/ai/SimulatedPlayerMCTS.java | 1 - .../mage/tournament/cubes/CubeFromDeck.java | 1 - .../src/mage/cards/a/ActOfAggression.java | 1 - .../cards/a/AdrianaCaptainOfTheGuard.java | 1 - Mage.Sets/src/mage/cards/a/AlphaStatus.java | 1 - .../src/mage/cards/a/AxebaneGuardian.java | 1 - Mage.Sets/src/mage/cards/b/BlindWorship.java | 1 - .../src/mage/cards/b/BorosFuryShield.java | 2 - Mage.Sets/src/mage/cards/b/BurdenOfGreed.java | 3 - .../src/mage/cards/c/CapriciousEfreet.java | 1 - .../src/mage/cards/c/CeruleanWyvern.java | 2 - .../src/mage/cards/c/ChargingCinderhorn.java | 1 - .../src/mage/cards/c/CharmbreakerDevils.java | 1 - .../src/mage/cards/c/ChiefOfTheEdge.java | 1 - .../src/mage/cards/c/ChiefOfTheScale.java | 1 - .../src/mage/cards/c/ChitteringHost.java | 1 - .../src/mage/cards/c/CloakOfInvisibility.java | 3 - Mage.Sets/src/mage/cards/c/CoalGolem.java | 1 - Mage.Sets/src/mage/cards/c/Curfew.java | 4 - .../src/mage/cards/d/DisruptingShoal.java | 1 - .../src/mage/cards/d/DistemperOfTheBlood.java | 1 - Mage.Sets/src/mage/cards/d/DreamLeash.java | 3 - Mage.Sets/src/mage/cards/d/DrillSkimmer.java | 5 - .../src/mage/cards/d/DwarvenLandslide.java | 1 - .../src/mage/cards/e/EerieInterlude.java | 1 - .../src/mage/cards/e/EmbodimentOfFury.java | 4 - .../src/mage/cards/e/EnlightenedAscetic.java | 3 - Mage.Sets/src/mage/cards/e/EssenceFlux.java | 1 - Mage.Sets/src/mage/cards/g/GearshiftAce.java | 6 - Mage.Sets/src/mage/cards/g/Ghoulraiser.java | 1 - Mage.Sets/src/mage/cards/g/GrimoireThief.java | 1 - Mage.Sets/src/mage/cards/g/GruulCharm.java | 1 - .../cards/h/HanweirTheWrithingTownship.java | 1 - Mage.Sets/src/mage/cards/h/HarshJudgment.java | 4 - .../src/mage/cards/h/HauntedFengraf.java | 1 - Mage.Sets/src/mage/cards/i/Invisibility.java | 3 - Mage.Sets/src/mage/cards/i/IvoryCup.java | 2 +- Mage.Sets/src/mage/cards/j/JabbaTheHutt.java | 1 - .../src/mage/cards/j/JestersScepter.java | 1 - Mage.Sets/src/mage/cards/k/KrarksThumb.java | 1 - .../src/mage/cards/k/KrosanWayfarer.java | 1 - Mage.Sets/src/mage/cards/l/Legerdemain.java | 1 - .../src/mage/cards/l/LifecraftCavalry.java | 2 - Mage.Sets/src/mage/cards/l/LiquidFire.java | 1 - Mage.Sets/src/mage/cards/l/LivingTerrain.java | 1 - Mage.Sets/src/mage/cards/l/LongRoadHome.java | 1 - .../src/mage/cards/l/LurkingInformant.java | 7 - .../src/mage/cards/m/MinamosMeddling.java | 1 - Mage.Sets/src/mage/cards/m/Mindreaver.java | 1 - .../src/mage/cards/m/MoldgrafMonstrosity.java | 1 - Mage.Sets/src/mage/cards/m/MoltenBirth.java | 1 - .../src/mage/cards/m/MurderousSpoils.java | 2 - .../src/mage/cards/n/NoxiousGearhulk.java | 1 - .../src/mage/cards/p/PanopticMirror.java | 1 - .../src/mage/cards/p/ParallelEvolution.java | 3 +- .../src/mage/cards/p/PriestOfYawgmoth.java | 1 - .../src/mage/cards/p/PsychicPossession.java | 1 - .../src/mage/cards/p/PulseOfTheTangle.java | 2 - Mage.Sets/src/mage/cards/r/RavingDead.java | 9 - .../mage/cards/r/RestorationSpecialist.java | 1 - Mage.Sets/src/mage/cards/r/RunnersBane.java | 3 - Mage.Sets/src/mage/cards/r/RushingRiver.java | 1 - Mage.Sets/src/mage/cards/s/SalvageTitan.java | 2 - .../src/mage/cards/s/SanctumPrelate.java | 5 - Mage.Sets/src/mage/cards/s/SatyrHedonist.java | 3 - Mage.Sets/src/mage/cards/s/Scrambleverse.java | 1 - .../src/mage/cards/s/SigardaHostOfHerons.java | 1 - Mage.Sets/src/mage/cards/s/SithMindseer.java | 1 - .../src/mage/cards/s/SkyshroudRanger.java | 3 - Mage.Sets/src/mage/cards/s/SoldeviAdnate.java | 1 - .../src/mage/cards/s/SoulChanneling.java | 2 - Mage.Sets/src/mage/cards/s/SoulExchange.java | 1 - Mage.Sets/src/mage/cards/s/StasisSnare.java | 6 - .../src/mage/cards/s/StrikeTeamCommando.java | 1 - Mage.Sets/src/mage/cards/s/SurrealMemoir.java | 1 - Mage.Sets/src/mage/cards/t/Tatterkite.java | 1 - .../src/mage/cards/t/TerrainGenerator.java | 11 - .../src/mage/cards/t/TimberpackWolf.java | 1 - .../src/mage/cards/u/UlvenwaldTracker.java | 1 - .../src/mage/cards/v/VesselOfVolatility.java | 2 - .../src/mage/cards/v/VeteranMotorist.java | 5 - Mage.Sets/src/mage/cards/v/Vex.java | 5 - Mage.Sets/src/mage/cards/w/WalkingAtlas.java | 3 - .../src/mage/cards/w/WharfInfiltrator.java | 1 - .../src/mage/cards/w/WhimsOfTheFates.java | 1 - Mage.Sets/src/mage/cards/w/WildSwing.java | 1 - .../src/mage/cards/w/WispweaverAngel.java | 1 - .../src/mage/cards/w/WoodlandSleuth.java | 1 - Mage.Sets/src/mage/cards/y/YWing.java | 4 - .../abilities/keywords/TransformTest.java | 1 - .../test/cards/control/DebtOfLoyaltyTest.java | 1 - .../test/cards/copy/PhantasmalImageTest.java | 23 +- .../cards/filters/IvoryGuardiansTest.java | 2 - .../org/mage/test/utils/DeckBuilderTest.java | 2 - .../costs/common/SacrificeAllCost.java | 1 - .../abilities/keyword/ProtectionAbility.java | 1 - Mage/src/main/java/mage/cards/CardImpl.java | 1 - Mage/src/main/java/mage/game/GameImpl.java | 1 - .../mage/game/permanent/token/DevilToken.java | 1 - .../mage/game/permanent/token/DroidToken.java | 1 - .../permanent/token/EldraziHorrorToken.java | 1 - .../mage/game/permanent/token/EwokToken.java | 1 - .../mage/game/permanent/token/PrismToken.java | 1 - .../mage/game/permanent/token/ServoToken.java | 1 - .../game/permanent/token/SquirrelToken.java | 1 - .../game/permanent/token/ThrullToken.java | 1 - .../game/permanent/token/TrooperToken.java | 1 - .../mage/target/common/TargetOpponent.java | 3 - 247 files changed, 1919 insertions(+), 3682 deletions(-) diff --git a/Mage.Client/src/main/java/mage/client/MageFrame.java b/Mage.Client/src/main/java/mage/client/MageFrame.java index ae3f7ab1d66..01274af98d1 100644 --- a/Mage.Client/src/main/java/mage/client/MageFrame.java +++ b/Mage.Client/src/main/java/mage/client/MageFrame.java @@ -39,13 +39,9 @@ import java.awt.Image; import java.awt.Rectangle; import java.awt.SplashScreen; import java.awt.Toolkit; -import java.awt.event.AWTEventListener; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; import java.awt.event.ComponentAdapter; import java.awt.event.ComponentEvent; import java.awt.event.ItemEvent; -import java.awt.event.ItemListener; import java.awt.event.KeyEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; @@ -163,7 +159,7 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { private static MageFrame instance; - private ConnectDialog connectDialog; + private final ConnectDialog connectDialog; private final ErrorDialog errorDialog; private static CallbackClient callbackClient; private static final Preferences PREFS = Preferences.userNodeForPackage(MageFrame.class); @@ -254,12 +250,7 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { } }); - Toolkit.getDefaultToolkit().addAWTEventListener(new AWTEventListener() { - @Override - public void eventDispatched(AWTEvent event) { - handleEvent(event); - } - }, AWTEvent.KEY_EVENT_MASK | AWTEvent.MOUSE_EVENT_MASK); + Toolkit.getDefaultToolkit().addAWTEventListener(event -> handleEvent(event), AWTEvent.KEY_EVENT_MASK | AWTEvent.MOUSE_EVENT_MASK); TConfig config = TConfig.current(); config.setArchiveDetector(new TArchiveDetector("zip")); @@ -307,12 +298,7 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { desktopPane.add(errorDialog, JLayeredPane.POPUP_LAYER); UI.addComponent(MageComponents.DESKTOP_PANE, desktopPane); - PING_TASK_EXECUTOR.scheduleAtFixedRate(new Runnable() { - @Override - public void run() { - SessionHandler.ping(); - } - }, 60, 60, TimeUnit.SECONDS); + PING_TASK_EXECUTOR.scheduleAtFixedRate(() -> SessionHandler.ping(), 60, 60, TimeUnit.SECONDS); updateMemUsageTask = new UpdateMemUsageTask(jMemUsageLabel); @@ -369,24 +355,21 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { setGUISize(); - SwingUtilities.invokeLater(new Runnable() { - @Override - public void run() { - disableButtons(); - if (PreferencesDialog.getCachedValue(PreferencesDialog.KEY_CARD_IMAGES_CHECK, "false").equals("true")) { - checkForNewImages(); - } - - updateMemUsageTask.execute(); - LOGGER.info("Client start up time: " + ((System.currentTimeMillis() - startTime) / 1000 + " seconds")); - if (autoConnect()) { - enableButtons(); - } else { - connectDialog.showDialog(); - } - setWindowTitle(); - + SwingUtilities.invokeLater(() -> { + disableButtons(); + if (PreferencesDialog.getCachedValue(PreferencesDialog.KEY_CARD_IMAGES_CHECK, "false").equals("true")) { + checkForNewImages(); } + + updateMemUsageTask.execute(); + LOGGER.info("Client start up time: " + ((System.currentTimeMillis() - startTime) / 1000 + " seconds")); + if (autoConnect()) { + enableButtons(); + } else { + connectDialog.showDialog(); + } + setWindowTitle(); + }); if (SystemUtil.isMacOSX()) { @@ -532,12 +515,9 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { private AbstractButton createSwitchPanelsButton() { final JToggleButton switchPanelsButton = new JToggleButton("Switch panels"); - switchPanelsButton.addItemListener(new ItemListener() { - @Override - public void itemStateChanged(ItemEvent e) { - if (e.getStateChange() == ItemEvent.SELECTED) { - createAndShowSwitchPanelsMenu((JComponent) e.getSource(), switchPanelsButton); - } + switchPanelsButton.addItemListener(e -> { + if (e.getStateChange() == ItemEvent.SELECTED) { + createAndShowSwitchPanelsMenu((JComponent) e.getSource(), switchPanelsButton); } }); switchPanelsButton.setFocusable(false); @@ -557,12 +537,9 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { menuItem = new MagePaneMenuItem(window); menuItem.setFont(GUISizeHelper.menuFont); menuItem.setState(i == 0); - menuItem.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent ae) { - MagePane frame = ((MagePaneMenuItem) ae.getSource()).getFrame(); - setActive(frame); - } + menuItem.addActionListener(ae -> { + MagePane frame = ((MagePaneMenuItem) ae.getSource()).getFrame(); + setActive(frame); }); menuItem.setIcon(window.getFrameIcon()); menu.add(menuItem); @@ -883,11 +860,7 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { btnPreferences.setFocusable(false); btnPreferences.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT); btnPreferences.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnPreferences.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnPreferencesActionPerformed(evt); - } - }); + btnPreferences.addActionListener(evt -> btnPreferencesActionPerformed(evt)); mageToolbar.add(btnPreferences); mageToolbar.add(jSeparator4); @@ -896,11 +869,7 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { btnConnect.setFocusable(false); btnConnect.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT); btnConnect.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnConnect.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnConnectActionPerformed(evt); - } - }); + btnConnect.addActionListener(evt -> btnConnectActionPerformed(evt)); mageToolbar.add(btnConnect); lblStatus.setHorizontalAlignment(javax.swing.SwingConstants.LEFT); @@ -916,11 +885,7 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { btnDeckEditor.setFocusable(false); btnDeckEditor.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT); btnDeckEditor.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnDeckEditor.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnDeckEditorActionPerformed(evt); - } - }); + btnDeckEditor.addActionListener(evt -> btnDeckEditorActionPerformed(evt)); mageToolbar.add(btnDeckEditor); mageToolbar.add(jSeparator2); @@ -930,11 +895,7 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { btnCollectionViewer.setFocusable(false); btnCollectionViewer.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT); btnCollectionViewer.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnCollectionViewer.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnCollectionViewerActionPerformed(evt); - } - }); + btnCollectionViewer.addActionListener(evt -> btnCollectionViewerActionPerformed(evt)); mageToolbar.add(btnCollectionViewer); mageToolbar.add(jSeparator5); @@ -944,11 +905,7 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { btnSendFeedback.setFocusable(false); btnSendFeedback.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT); btnSendFeedback.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnSendFeedback.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnSendFeedbackActionPerformed(evt); - } - }); + btnSendFeedback.addActionListener(evt -> btnSendFeedbackActionPerformed(evt)); mageToolbar.add(btnSendFeedback); mageToolbar.add(jSeparator6); @@ -958,11 +915,7 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { btnSymbols.setFocusable(false); btnSymbols.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT); btnSymbols.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnSymbols.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnSymbolsActionPerformed(evt); - } - }); + btnSymbols.addActionListener(evt -> btnSymbolsActionPerformed(evt)); mageToolbar.add(btnSymbols); mageToolbar.add(jSeparatorSymbols); @@ -972,11 +925,7 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { btnImages.setFocusable(false); btnImages.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT); btnImages.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnImages.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnImagesActionPerformed(evt); - } - }); + btnImages.addActionListener(evt -> btnImagesActionPerformed(evt)); mageToolbar.add(btnImages); mageToolbar.add(jSeparatorImages); @@ -986,11 +935,7 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { btnAbout.setFocusable(false); btnAbout.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT); btnAbout.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnAbout.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnAboutActionPerformed(evt); - } - }); + btnAbout.addActionListener(evt -> btnAboutActionPerformed(evt)); mageToolbar.add(btnAbout); mageToolbar.add(jSeparator7); @@ -1192,12 +1137,7 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { if (SwingUtilities.isEventDispatchThread()) { userRequestDialog.showDialog(userRequestMessage); } else { - SwingUtilities.invokeLater(new Runnable() { - @Override - public void run() { - userRequestDialog.showDialog(userRequestMessage); - } - }); + SwingUtilities.invokeLater(() -> userRequestDialog.showDialog(userRequestMessage)); } } @@ -1206,12 +1146,7 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { if (SwingUtilities.isEventDispatchThread()) { errorDialog.showDialog(title, message); } else { - SwingUtilities.invokeLater(new Runnable() { - @Override - public void run() { - errorDialog.showDialog(title, message); - } - }); + SwingUtilities.invokeLater(() -> errorDialog.showDialog(title, message)); } } @@ -1253,40 +1188,32 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { LOGGER.info("Logging level: " + LOGGER.getEffectiveLevel()); startTime = System.currentTimeMillis(); - Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() { - @Override - public void uncaughtException(Thread t, Throwable e) { - LOGGER.fatal(null, e); + Thread.setDefaultUncaughtExceptionHandler((t, e) -> LOGGER.fatal(null, e)); + SwingUtilities.invokeLater(() -> { + for (String arg : args) { + if (arg.startsWith(LITE_MODE_ARG)) { + liteMode = true; + } + if (arg.startsWith(GRAY_MODE_ARG)) { + grayMode = true; + } + if (arg.startsWith(FILL_SCREEN_ARG)) { + fullscreenMode = true; + } } - }); - SwingUtilities.invokeLater(new Runnable() { - @Override - public void run() { - for (String arg : args) { - if (arg.startsWith(LITE_MODE_ARG)) { - liteMode = true; - } - if (arg.startsWith(GRAY_MODE_ARG)) { - grayMode = true; - } - if (arg.startsWith(FILL_SCREEN_ARG)) { - fullscreenMode = true; + if (!liteMode) { + final SplashScreen splash = SplashScreen.getSplashScreen(); + if (splash != null) { + Graphics2D g = splash.createGraphics(); + if (g != null) { + renderSplashFrame(g); } + splash.update(); } - if (!liteMode) { - final SplashScreen splash = SplashScreen.getSplashScreen(); - if (splash != null) { - Graphics2D g = splash.createGraphics(); - if (g != null) { - renderSplashFrame(g); - } - splash.update(); - } - } - instance = new MageFrame(); - instance.setVisible(true); + } + instance = new MageFrame(); + instance.setVisible(true); - } }); } @@ -1383,12 +1310,9 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { setStatusText(message); enableButtons(); } else { - SwingUtilities.invokeLater(new Runnable() { - @Override - public void run() { - setStatusText(message); - enableButtons(); - } + SwingUtilities.invokeLater(() -> { + setStatusText(message); + enableButtons(); }); } } @@ -1403,20 +1327,17 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { hideTables(); } else { LOGGER.info("DISCONNECTED (NO Event Dispatch Thread)"); - SwingUtilities.invokeLater(new Runnable() { - @Override - public void run() { - setStatusText("Not connected"); - disableButtons(); - hideGames(); - hideTables(); - SessionHandler.disconnect(false); - if (errorCall) { - UserRequestMessage message = new UserRequestMessage("Connection lost", "The connection to server was lost. Reconnect to " + currentConnection.getHost() + "?"); - message.setButton1("No", null); - message.setButton2("Yes", PlayerAction.CLIENT_RECONNECT); - showUserRequestDialog(message); - } + SwingUtilities.invokeLater(() -> { + setStatusText("Not connected"); + disableButtons(); + hideGames(); + hideTables(); + SessionHandler.disconnect(false); + if (errorCall) { + UserRequestMessage message = new UserRequestMessage("Connection lost", "The connection to server was lost. Reconnect to " + currentConnection.getHost() + "?"); + message.setButton1("No", null); + message.setButton2("Yes", PlayerAction.CLIENT_RECONNECT); + showUserRequestDialog(message); } } ); diff --git a/Mage.Client/src/main/java/mage/client/cards/Card.java b/Mage.Client/src/main/java/mage/client/cards/Card.java index f87c03bbebf..f8d974caf69 100644 --- a/Mage.Client/src/main/java/mage/client/cards/Card.java +++ b/Mage.Client/src/main/java/mage/client/cards/Card.java @@ -86,7 +86,6 @@ import mage.client.util.ImageHelper; import mage.client.util.gui.ArrowBuilder; import mage.constants.CardType; import mage.constants.EnlargeMode; -import mage.remote.Session; import mage.view.AbilityView; import mage.view.CardView; import mage.view.CounterView; @@ -101,10 +100,10 @@ import org.apache.log4j.Logger; @SuppressWarnings("serial") public class Card extends MagePermanent implements MouseMotionListener, MouseListener, FocusListener, ComponentListener { - protected static DefaultActionCallback callback = DefaultActionCallback.getInstance(); + protected static final DefaultActionCallback callback = DefaultActionCallback.getInstance(); protected Point p; - protected CardDimensions dimension; + protected final CardDimensions dimension; protected final UUID gameId; protected final BigCard bigCard; @@ -112,10 +111,10 @@ public class Card extends MagePermanent implements MouseMotionListener, MouseLis protected Popup tooltipPopup; protected boolean tooltipShowing; - protected TextPopup tooltipText = new TextPopup(); + protected final TextPopup tooltipText = new TextPopup(); protected BufferedImage background; - protected BufferedImage image = new BufferedImage(FRAME_MAX_WIDTH, FRAME_MAX_HEIGHT, BufferedImage.TYPE_INT_RGB); - protected BufferedImage small; + protected final BufferedImage image = new BufferedImage(FRAME_MAX_WIDTH, FRAME_MAX_HEIGHT, BufferedImage.TYPE_INT_RGB); + protected final BufferedImage small; protected String backgroundName; // if this is set, it's opened if the user right clicks on the card panel diff --git a/Mage.Client/src/main/java/mage/client/cards/CardArea.java b/Mage.Client/src/main/java/mage/client/cards/CardArea.java index 8ebd826c3e8..531cf10eb2c 100644 --- a/Mage.Client/src/main/java/mage/client/cards/CardArea.java +++ b/Mage.Client/src/main/java/mage/client/cards/CardArea.java @@ -52,7 +52,7 @@ import org.mage.card.arcane.CardPanel; public class CardArea extends JPanel implements MouseListener { - protected CardEventSource cardEventSource = new CardEventSource(); + protected final CardEventSource cardEventSource = new CardEventSource(); private boolean reloaded = false; private final javax.swing.JLayeredPane cardArea; @@ -89,7 +89,7 @@ public class CardArea extends JPanel implements MouseListener { setGUISize(); for (Component component : cardArea.getComponents()) { if (component instanceof CardPanel) { - ((CardPanel) component).setBounds(0, 0, cardDimension.width, cardDimension.height); + component.setBounds(0, 0, cardDimension.width, cardDimension.height); } } } diff --git a/Mage.Client/src/main/java/mage/client/cards/CardDraggerGlassPane.java b/Mage.Client/src/main/java/mage/client/cards/CardDraggerGlassPane.java index 2ca05863488..b813b53bfef 100644 --- a/Mage.Client/src/main/java/mage/client/cards/CardDraggerGlassPane.java +++ b/Mage.Client/src/main/java/mage/client/cards/CardDraggerGlassPane.java @@ -3,7 +3,6 @@ package mage.client.cards; import mage.cards.MageCard; import mage.client.plugins.impl.Plugins; import mage.view.CardView; -import org.apache.log4j.Logger; import javax.swing.*; import java.awt.*; @@ -11,13 +10,12 @@ import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.MouseMotionListener; import java.util.ArrayList; -import java.util.Collection; /** * Created by StravantUser on 2016-09-22. */ public class CardDraggerGlassPane implements MouseListener, MouseMotionListener { - private DragCardSource source; + private final DragCardSource source; private Component dragComponent; private JRootPane currentRoot; private JComponent glassPane; diff --git a/Mage.Client/src/main/java/mage/client/cards/CardEventSource.java b/Mage.Client/src/main/java/mage/client/cards/CardEventSource.java index 0327dc887d9..81e29d83dba 100644 --- a/Mage.Client/src/main/java/mage/client/cards/CardEventSource.java +++ b/Mage.Client/src/main/java/mage/client/cards/CardEventSource.java @@ -33,7 +33,6 @@ import mage.client.util.Event; import mage.client.util.EventDispatcher; import mage.client.util.EventSource; import mage.client.util.Listener; -import mage.view.CardView; import mage.view.SimpleCardView; /** diff --git a/Mage.Client/src/main/java/mage/client/cards/CardGrid.java b/Mage.Client/src/main/java/mage/client/cards/CardGrid.java index 618f604a45e..1180ccab472 100644 --- a/Mage.Client/src/main/java/mage/client/cards/CardGrid.java +++ b/Mage.Client/src/main/java/mage/client/cards/CardGrid.java @@ -39,7 +39,6 @@ import java.awt.Rectangle; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.util.ArrayList; -import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.Iterator; @@ -64,7 +63,7 @@ import org.mage.card.arcane.CardPanel; */ public class CardGrid extends javax.swing.JLayeredPane implements MouseListener, ICardGrid { - protected CardEventSource cardEventSource = new CardEventSource(); + protected final CardEventSource cardEventSource = new CardEventSource(); protected BigCard bigCard; protected UUID gameId; private final Map cards = new HashMap<>(); @@ -154,22 +153,22 @@ public class CardGrid extends javax.swing.JLayeredPane implements MouseListener, List sortedCards = new ArrayList<>(cards.values()); switch (sortSetting.getSortBy()) { case NAME: - Collections.sort(sortedCards, new CardNameComparator()); + sortedCards.sort(new CardNameComparator()); break; case CARD_TYPE: - Collections.sort(sortedCards, new CardTypeComparator()); + sortedCards.sort(new CardTypeComparator()); break; case RARITY: - Collections.sort(sortedCards, new CardRarityComparator()); + sortedCards.sort(new CardRarityComparator()); break; case COLOR: - Collections.sort(sortedCards, new CardColorComparator()); + sortedCards.sort(new CardColorComparator()); break; case COLOR_IDENTITY: - Collections.sort(sortedCards, new CardColorDetailedIdentity()); + sortedCards.sort(new CardColorDetailedIdentity()); break; case CASTING_COST: - Collections.sort(sortedCards, new CardCostComparator()); + sortedCards.sort(new CardCostComparator()); break; } @@ -409,7 +408,7 @@ class CardCostComparator implements Comparator { @Override public int compare(MageCard o1, MageCard o2) { - int val = Integer.valueOf(o1.getOriginal().getConvertedManaCost()).compareTo(Integer.valueOf(o2.getOriginal().getConvertedManaCost())); + int val = Integer.valueOf(o1.getOriginal().getConvertedManaCost()).compareTo(o2.getOriginal().getConvertedManaCost()); if (val == 0) { return o1.getOriginal().getName().compareTo(o2.getOriginal().getName()); } else { diff --git a/Mage.Client/src/main/java/mage/client/cards/Cards.java b/Mage.Client/src/main/java/mage/client/cards/Cards.java index 8cd01f78ac7..d6a3363db77 100644 --- a/Mage.Client/src/main/java/mage/client/cards/Cards.java +++ b/Mage.Client/src/main/java/mage/client/cards/Cards.java @@ -37,8 +37,6 @@ import java.awt.Color; import java.awt.Component; import java.awt.Dimension; import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.Map; @@ -210,7 +208,7 @@ public class Cards extends javax.swing.JPanel { tmp.setIsAbility(true); tmp.overrideTargets(card.getTargets()); tmp.overrideId(card.getId()); - tmp.setAbilityType(((StackAbilityView) card).getAbilityType()); + tmp.setAbilityType(card.getAbilityType()); card = tmp; } else { card.setAbilityType(null); @@ -258,7 +256,7 @@ public class Cards extends javax.swing.JPanel { this.cardDimension = dimension; for (Component component : cardArea.getComponents()) { if (component instanceof CardPanel) { - ((CardPanel) component).setBounds(0, 0, dimension.width, dimension.height); + component.setBounds(0, 0, dimension.width, dimension.height); } } layoutCards(); @@ -358,12 +356,7 @@ public class Cards extends javax.swing.JPanel { } } // sort the cards - Collections.sort(cardsToLayout, new Comparator() { - @Override - public int compare(CardPanel cp1, CardPanel cp2) { - return Integer.valueOf(cp1.getLocation().x).compareTo(cp2.getLocation().x); - } - }); + cardsToLayout.sort((cp1, cp2) -> Integer.valueOf(cp1.getLocation().x).compareTo(cp2.getLocation().x)); // relocate the cards int dx = 0; for (Component component : cardsToLayout) { diff --git a/Mage.Client/src/main/java/mage/client/cards/CardsList.java b/Mage.Client/src/main/java/mage/client/cards/CardsList.java index bfc3658f308..bec809a416c 100644 --- a/Mage.Client/src/main/java/mage/client/cards/CardsList.java +++ b/Mage.Client/src/main/java/mage/client/cards/CardsList.java @@ -83,7 +83,7 @@ import org.mage.card.arcane.CardPanel; */ public class CardsList extends javax.swing.JPanel implements MouseListener, ICardGrid { - protected CardEventSource cardEventSource = new CardEventSource(); + protected final CardEventSource cardEventSource = new CardEventSource(); private Dimension cardDimension; private int rowHeight; private CardsView cards; @@ -346,8 +346,8 @@ public class CardsList extends javax.swing.JPanel implements MouseListener, ICar break; } if (comparator != null) { - Collections.sort(sortedCards, new CardViewNameComparator()); - Collections.sort(sortedCards, comparator); + sortedCards.sort(new CardViewNameComparator()); + sortedCards.sort(comparator); } CardView lastCard = null; for (CardView card : sortedCards) { @@ -536,11 +536,7 @@ public class CardsList extends javax.swing.JPanel implements MouseListener, ICar chkPiles.setText("Piles"); chkPiles.setHorizontalAlignment(javax.swing.SwingConstants.LEFT); chkPiles.setMargin(new java.awt.Insets(3, 2, 2, 2)); - chkPiles.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - chkPilesActionPerformed(evt); - } - }); + chkPiles.addActionListener(evt -> chkPilesActionPerformed(evt)); cbSortBy.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "SortBy" })); cbSortBy.setToolTipText("Sort the cards if card view is active."); @@ -549,11 +545,7 @@ public class CardsList extends javax.swing.JPanel implements MouseListener, ICar cbSortBy.setName("SortBy"); // NOI18N cbSortBy.setOpaque(false); cbSortBy.setPreferredSize(new java.awt.Dimension(120, 20)); - cbSortBy.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cbSortByActionPerformed(evt); - } - }); + cbSortBy.addActionListener(evt -> cbSortByActionPerformed(evt)); bgView.add(jToggleListView); jToggleListView.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/list_panel.png"))); // NOI18N @@ -564,11 +556,7 @@ public class CardsList extends javax.swing.JPanel implements MouseListener, ICar jToggleListView.setMaximumSize(new java.awt.Dimension(37, 25)); jToggleListView.setMinimumSize(new java.awt.Dimension(37, 25)); jToggleListView.setPreferredSize(new java.awt.Dimension(44, 22)); - jToggleListView.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - jToggleListViewActionPerformed(evt); - } - }); + jToggleListView.addActionListener(evt -> jToggleListViewActionPerformed(evt)); bgView.add(jToggleCardView); jToggleCardView.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/card_panel.png"))); // NOI18N @@ -576,11 +564,7 @@ public class CardsList extends javax.swing.JPanel implements MouseListener, ICar jToggleCardView.setHorizontalTextPosition(javax.swing.SwingConstants.LEADING); jToggleCardView.setMargin(new java.awt.Insets(2, 6, 2, 6)); jToggleCardView.setPreferredSize(new java.awt.Dimension(40, 22)); - jToggleCardView.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - jToggleCardViewActionPerformed(evt); - } - }); + jToggleCardView.addActionListener(evt -> jToggleCardViewActionPerformed(evt)); javax.swing.GroupLayout panelControlLayout = new javax.swing.GroupLayout(panelControl); panelControl.setLayout(panelControlLayout); diff --git a/Mage.Client/src/main/java/mage/client/cards/DraftGrid.java b/Mage.Client/src/main/java/mage/client/cards/DraftGrid.java index 4dc525154a7..89c8149d095 100644 --- a/Mage.Client/src/main/java/mage/client/cards/DraftGrid.java +++ b/Mage.Client/src/main/java/mage/client/cards/DraftGrid.java @@ -40,7 +40,6 @@ import java.awt.Rectangle; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import mage.cards.CardDimensions; import mage.cards.MageCard; @@ -62,7 +61,7 @@ public class DraftGrid extends javax.swing.JPanel implements MouseListener { private static final Logger logger = Logger.getLogger(DraftGrid.class); - protected CardEventSource cardEventSource = new CardEventSource(); + protected final CardEventSource cardEventSource = new CardEventSource(); protected BigCard bigCard; protected MageCard markedCard; protected boolean emptyGrid; @@ -126,7 +125,7 @@ public class DraftGrid extends javax.swing.JPanel implements MouseListener { Dimension dimension = new Dimension(cardDimension.frameWidth, cardDimension.frameHeight); List sortedCards = new ArrayList<>(booster.values()); - Collections.sort(sortedCards, new CardViewRarityComparator()); + sortedCards.sort(new CardViewRarityComparator()); for (CardView card: sortedCards) { MageCard cardImg = Plugins.getInstance().getMageCard(card, bigCard, dimension, null, true, true); cardImg.addMouseListener(this); diff --git a/Mage.Client/src/main/java/mage/client/cards/DragCardGrid.java b/Mage.Client/src/main/java/mage/client/cards/DragCardGrid.java index a362c619bb8..67b4fdfb318 100644 --- a/Mage.Client/src/main/java/mage/client/cards/DragCardGrid.java +++ b/Mage.Client/src/main/java/mage/client/cards/DragCardGrid.java @@ -7,15 +7,12 @@ import java.awt.Graphics; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.GridLayout; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.HashSet; @@ -455,12 +452,9 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg } public enum Sort { - NONE("No Sort", new Comparator() { - @Override - public int compare(CardView o1, CardView o2) { - // Always equal, sort into the first row - return 0; - } + NONE("No Sort", (o1, o2) -> { + // Always equal, sort into the first row + return 0; }), CARD_TYPE("Card Type", new CardViewCardTypeComparator()), CMC("Converted Mana Cost", new CardViewCostComparator()), @@ -508,44 +502,44 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg } // Counters we use - private CardTypeCounter creatureCounter = new CardTypeCounter() { + private final CardTypeCounter creatureCounter = new CardTypeCounter() { @Override protected boolean is(CardView card) { return card.getCardTypes().contains(CardType.CREATURE); } }; - private CardTypeCounter landCounter = new CardTypeCounter() { + private final CardTypeCounter landCounter = new CardTypeCounter() { @Override protected boolean is(CardView card) { return card.getCardTypes().contains(CardType.LAND); } }; - private CardTypeCounter artifactCounter = new CardTypeCounter() { + private final CardTypeCounter artifactCounter = new CardTypeCounter() { @Override protected boolean is(CardView card) { return card.getCardTypes().contains(CardType.ARTIFACT); } }; - private CardTypeCounter enchantmentCounter = new CardTypeCounter() { + private final CardTypeCounter enchantmentCounter = new CardTypeCounter() { @Override protected boolean is(CardView card) { return card.getCardTypes().contains(CardType.ENCHANTMENT); } }; - private CardTypeCounter instantCounter = new CardTypeCounter() { + private final CardTypeCounter instantCounter = new CardTypeCounter() { @Override protected boolean is(CardView card) { return card.getCardTypes().contains(CardType.INSTANT); } }; - private CardTypeCounter sorceryCounter = new CardTypeCounter() { + private final CardTypeCounter sorceryCounter = new CardTypeCounter() { @Override protected boolean is(CardView card) { return card.getCardTypes().contains(CardType.SORCERY); } }; - private CardTypeCounter planeswalkerCounter = new CardTypeCounter() { + private final CardTypeCounter planeswalkerCounter = new CardTypeCounter() { @Override protected boolean is(CardView card) { return card.getCardTypes().contains(CardType.PLANESWALKER); @@ -581,11 +575,11 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg void invertCardSelection(Collection cards); void showAll(); - }; + } // Constants - public static int COUNT_LABEL_HEIGHT = 20; - public static int GRID_PADDING = 10; + public static final int COUNT_LABEL_HEIGHT = 20; + public static final int GRID_PADDING = 10; private final static ImageIcon INSERT_ROW_ICON = new ImageIcon(DragCardGrid.class.getClassLoader().getResource("editor_insert_row.png")); private final static ImageIcon INSERT_COL_ICON = new ImageIcon(DragCardGrid.class.getClassLoader().getResource("editor_insert_col.png")); @@ -601,41 +595,41 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg BigCard lastBigCard = null; // Top bar with dropdowns for sort / filter / etc - JButton sortButton; - JButton filterButton; - JButton visibilityButton; - JButton selectByButton; - JButton analyseButton; + final JButton sortButton; + final JButton filterButton; + final JButton visibilityButton; + final JButton selectByButton; + final JButton analyseButton; // Popup for toolbar - JPopupMenu filterPopup; + final JPopupMenu filterPopup; JPopupMenu selectByTypePopup; - JPopupMenu sortPopup; - JPopupMenu selectByPopup; - JCheckBox separateCreaturesCb; - JTextField searchByTextField; + final JPopupMenu sortPopup; + final JPopupMenu selectByPopup; + final JCheckBox separateCreaturesCb; + final JTextField searchByTextField; JToggleButton multiplesButton; - JSlider cardSizeSlider; - JLabel cardSizeSliderLabel; + final JSlider cardSizeSlider; + final JLabel cardSizeSliderLabel; - Map sortButtons = new HashMap<>(); - HashMap selectByTypeButtons = new HashMap<>(); + final Map sortButtons = new HashMap<>(); + final HashMap selectByTypeButtons = new HashMap<>(); - JLabel deckNameAndCountLabel; - JLabel landCountLabel; - JLabel creatureCountLabel; + final JLabel deckNameAndCountLabel; + final JLabel landCountLabel; + final JLabel creatureCountLabel; // Main two controls holding the scrollable card grid - JScrollPane cardScroll; + final JScrollPane cardScroll; JLayeredPane cardContent; // Drag onto insert arrow - JLabel insertArrow; + final JLabel insertArrow; // Card area selection panel - SelectionBox selectionPanel; + final SelectionBox selectionPanel; Set selectionDragStartCards; int selectionDragStartX; int selectionDragStartY; @@ -672,7 +666,7 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg return name; } - private String name; + private final String name; } public static class Settings { @@ -1013,11 +1007,7 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg // Analyse Mana (aka #blue pips, #islands, #white pips, #plains etc.) analyseButton.setToolTipText("Counts coloured/colourless mana costs. Counts land types."); - analyseButton.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent evt) { - analyseDeck(); - } - }); + analyseButton.addActionListener(evt -> analyseDeck()); // Filter popup filterPopup = new JPopupMenu(); @@ -1229,7 +1219,7 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg trimGrid(); // First sort all cards by name - Collections.sort(allCards, new CardViewNameComparator()); + allCards.sort(new CardViewNameComparator()); // Now re-insert all of the cards using the current sort for (CardView card : allCards) { diff --git a/Mage.Client/src/main/java/mage/client/cards/DragCardTarget.java b/Mage.Client/src/main/java/mage/client/cards/DragCardTarget.java index 70138889c4c..a656a4bc937 100644 --- a/Mage.Client/src/main/java/mage/client/cards/DragCardTarget.java +++ b/Mage.Client/src/main/java/mage/client/cards/DragCardTarget.java @@ -2,7 +2,6 @@ package mage.client.cards; import mage.view.CardView; -import java.awt.*; import java.awt.event.MouseEvent; import java.util.Collection; diff --git a/Mage.Client/src/main/java/mage/client/cards/Permanent.java b/Mage.Client/src/main/java/mage/client/cards/Permanent.java index 0db10e58871..f5b3dd2494f 100644 --- a/Mage.Client/src/main/java/mage/client/cards/Permanent.java +++ b/Mage.Client/src/main/java/mage/client/cards/Permanent.java @@ -52,11 +52,9 @@ import mage.cards.Sets; import static mage.client.constants.Constants.DAMAGE_MAX_LEFT; import static mage.client.constants.Constants.POWBOX_TEXT_MAX_TOP; import mage.client.util.Config; -import mage.client.util.ImageHelper; import mage.constants.CardType; import mage.view.CounterView; import mage.view.PermanentView; -import org.mage.plugins.card.images.ImageCache; import mage.client.util.TransformedImageCache; /** @@ -67,9 +65,9 @@ public class Permanent extends Card { protected PermanentView permanent; - protected List links = new ArrayList<>(); + protected final List links = new ArrayList<>(); protected boolean linked; - protected BufferedImage tappedImage; + protected final BufferedImage tappedImage; protected BufferedImage flippedImage; /** Creates new form Permanent diff --git a/Mage.Client/src/main/java/mage/client/components/ColorPane.java b/Mage.Client/src/main/java/mage/client/components/ColorPane.java index 8fc39aa5be9..79851a659d3 100644 --- a/Mage.Client/src/main/java/mage/client/components/ColorPane.java +++ b/Mage.Client/src/main/java/mage/client/components/ColorPane.java @@ -13,9 +13,7 @@ import javax.swing.JEditorPane; import javax.swing.JPanel; import javax.swing.JTextPane; import javax.swing.SwingUtilities; -import javax.swing.event.HyperlinkEvent; import javax.swing.event.HyperlinkEvent.EventType; -import javax.swing.event.HyperlinkListener; import javax.swing.text.html.HTMLDocument; import javax.swing.text.html.HTMLEditorKit; @@ -35,8 +33,8 @@ import mage.view.CardView; */ public class ColorPane extends JEditorPane { - HTMLEditorKit kit = new HTMLEditorKit(); - HTMLDocument doc = new HTMLDocument(); + final HTMLEditorKit kit = new HTMLEditorKit(); + final HTMLDocument doc = new HTMLDocument(); private int tooltipDelay; private int tooltipCounter; private boolean hyperlinkEnabled = false; @@ -47,39 +45,28 @@ public class ColorPane extends JEditorPane { } private void addHyperlinkHandlers() { - addHyperlinkListener(new HyperlinkListener() { - - @Override - public void hyperlinkUpdate(final HyperlinkEvent e) { - ThreadUtils.threadPool2.submit(new Runnable() { - - @Override - public void run() { - tooltipDelay = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_SHOW_TOOLTIPS_DELAY, 300); - if (tooltipDelay == 0) { - return; - } - String name = e.getDescription().substring(1); - CardInfo card = CardRepository.instance.findCard(name); - try { - final Component container = MageFrame.getUI().getComponent(MageComponents.POPUP_CONTAINER); - if (e.getEventType() == EventType.EXITED) { - setPopupVisibility(container, false); - } - if (e.getEventType() == EventType.ENTERED && card != null) { - CardInfoPane cardInfoPane = (CardInfoPane) MageFrame.getUI().getComponent(MageComponents.CARD_INFO_PANE); - cardInfoPane.setCard(new CardView(card.getMockCard()), container); - setPopupVisibility(container, true); - } - } catch (InterruptedException e1) { - e1.printStackTrace(); - } - - } - }); + addHyperlinkListener(e -> ThreadUtils.threadPool2.submit(() -> { + tooltipDelay = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_SHOW_TOOLTIPS_DELAY, 300); + if (tooltipDelay == 0) { + return; + } + String name = e.getDescription().substring(1); + CardInfo card = CardRepository.instance.findCard(name); + try { + final Component container = MageFrame.getUI().getComponent(MageComponents.POPUP_CONTAINER); + if (e.getEventType() == EventType.EXITED) { + setPopupVisibility(container, false); + } + if (e.getEventType() == EventType.ENTERED && card != null) { + CardInfoPane cardInfoPane = (CardInfoPane) MageFrame.getUI().getComponent(MageComponents.CARD_INFO_PANE); + cardInfoPane.setCard(new CardView(card.getMockCard()), container); + setPopupVisibility(container, true); + } + } catch (InterruptedException e1) { + e1.printStackTrace(); } - }); + })); addMouseListener(new MouseAdapter() { @Override @@ -96,22 +83,19 @@ public class ColorPane extends JEditorPane { private void setPopupVisibility(final Component container, final boolean show) throws InterruptedException { final Component c = MageFrame.getUI().getComponent(MageComponents.DESKTOP_PANE); - SwingUtilities.invokeLater(new Runnable() { - @Override - public void run() { - tooltipCounter += show ? 1 : -1; - if (tooltipCounter < 0) { - tooltipCounter = 0; - } - if (tooltipCounter > 0) { - Point location = new Point(getLocationOnScreen().x - container.getWidth(), MouseInfo.getPointerInfo().getLocation().y); - Component parentComponent = MageFrame.getInstance(); - location = GuiDisplayUtil.keepComponentInsideParent(location, parentComponent.getLocationOnScreen(), container, parentComponent); - container.setLocation(location); - } - container.setVisible(tooltipCounter > 0); - c.repaint(); + SwingUtilities.invokeLater(() -> { + tooltipCounter += show ? 1 : -1; + if (tooltipCounter < 0) { + tooltipCounter = 0; } + if (tooltipCounter > 0) { + Point location = new Point(getLocationOnScreen().x - container.getWidth(), MouseInfo.getPointerInfo().getLocation().y); + Component parentComponent = MageFrame.getInstance(); + location = GuiDisplayUtil.keepComponentInsideParent(location, parentComponent.getLocationOnScreen(), container, parentComponent); + container.setLocation(location); + } + container.setVisible(tooltipCounter > 0); + c.repaint(); }); } diff --git a/Mage.Client/src/main/java/mage/client/components/MageDesktopManager.java b/Mage.Client/src/main/java/mage/client/components/MageDesktopManager.java index e2c704f2d5e..146af3294b2 100644 --- a/Mage.Client/src/main/java/mage/client/components/MageDesktopManager.java +++ b/Mage.Client/src/main/java/mage/client/components/MageDesktopManager.java @@ -6,12 +6,8 @@ package mage.client.components; import java.awt.BorderLayout; -import javax.swing.DefaultDesktopManager; -import javax.swing.DesktopManager; -import javax.swing.JDesktopPane; -import javax.swing.JFrame; -import javax.swing.JInternalFrame; -import javax.swing.SwingUtilities; +import javax.swing.*; + import mage.client.dialog.CardInfoWindowDialog; /** @@ -41,24 +37,21 @@ public class MageDesktopManager extends DefaultDesktopManager { } public static void main(String args[]) { - SwingUtilities.invokeLater(new Runnable() { - @Override - public void run() { - JFrame frame = new JFrame(); - frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + SwingUtilities.invokeLater(() -> { + JFrame frame = new JFrame(); + frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); - JDesktopPane desktopPane = new JDesktopPane(); - DesktopManager dm = new MageDesktopManager(); - desktopPane.setDesktopManager(dm); - JInternalFrame internalFrame = new JInternalFrame("Test Internal Frame", true, false, true, true); - internalFrame.setSize(200, 150); - internalFrame.setVisible(true); - desktopPane.add(internalFrame); + JDesktopPane desktopPane = new JDesktopPane(); + DesktopManager dm = new MageDesktopManager(); + desktopPane.setDesktopManager(dm); + JInternalFrame internalFrame = new JInternalFrame("Test Internal Frame", true, false, true, true); + internalFrame.setSize(200, 150); + internalFrame.setVisible(true); + desktopPane.add(internalFrame); - frame.add(desktopPane, BorderLayout.CENTER); - frame.setSize(800, 600); - frame.setVisible(true); - } + frame.add(desktopPane, BorderLayout.CENTER); + frame.setSize(800, 600); + frame.setVisible(true); }); } } diff --git a/Mage.Client/src/main/java/mage/client/components/MageJDesktop.java b/Mage.Client/src/main/java/mage/client/components/MageJDesktop.java index f090861b2c0..8c5052ce6de 100644 --- a/Mage.Client/src/main/java/mage/client/components/MageJDesktop.java +++ b/Mage.Client/src/main/java/mage/client/components/MageJDesktop.java @@ -24,7 +24,7 @@ public class MageJDesktop extends JDesktopPane { UIDefaults map = new UIDefaults(); Painter painter = new Painter() { - Color color = null; + final Color color = null; @Override public void paint(Graphics2D g, Object c, int w, int h) { diff --git a/Mage.Client/src/main/java/mage/client/components/MageRoundPane.java b/Mage.Client/src/main/java/mage/client/components/MageRoundPane.java index 53a2d1878e2..4d318a7beda 100644 --- a/Mage.Client/src/main/java/mage/client/components/MageRoundPane.java +++ b/Mage.Client/src/main/java/mage/client/components/MageRoundPane.java @@ -27,23 +27,13 @@ public class MageRoundPane extends JPanel { private final Color defaultBackgroundColor = new Color(141, 130, 112, 200); private Color backgroundColor = defaultBackgroundColor; private final int alpha = 0; - private static Map SHADOW_IMAGE_CACHE; + private static final Map SHADOW_IMAGE_CACHE; private static final Map IMAGE_CACHE; static { - SHADOW_IMAGE_CACHE = ImageCaches.register(new MapMaker().softValues().makeComputingMap(new Function() { - @Override - public BufferedImage apply(ShadowKey key) { - return createShadowImage(key); - } - })); + SHADOW_IMAGE_CACHE = ImageCaches.register(new MapMaker().softValues().makeComputingMap((Function) key -> createShadowImage(key))); - IMAGE_CACHE = ImageCaches.register(new MapMaker().softValues().makeComputingMap(new Function() { - @Override - public BufferedImage apply(Key key) { - return createImage(key); - } - })); + IMAGE_CACHE = ImageCaches.register(new MapMaker().softValues().makeComputingMap((Function) key -> createImage(key))); } private final static class ShadowKey { diff --git a/Mage.Client/src/main/java/mage/client/components/MageSynthStyleFactory.java b/Mage.Client/src/main/java/mage/client/components/MageSynthStyleFactory.java index 73eb67b69ca..375f7c60d5e 100644 --- a/Mage.Client/src/main/java/mage/client/components/MageSynthStyleFactory.java +++ b/Mage.Client/src/main/java/mage/client/components/MageSynthStyleFactory.java @@ -14,7 +14,7 @@ import javax.swing.plaf.synth.SynthStyleFactory; * @author nantuko */ public class MageSynthStyleFactory extends SynthStyleFactory { - private SynthStyleFactory wrappedFactory; + private final SynthStyleFactory wrappedFactory; public MageSynthStyleFactory(SynthStyleFactory factory) { this.wrappedFactory = factory; diff --git a/Mage.Client/src/main/java/mage/client/components/MageTextArea.java b/Mage.Client/src/main/java/mage/client/components/MageTextArea.java index 219e0f72d7c..9f2f6975df0 100644 --- a/Mage.Client/src/main/java/mage/client/components/MageTextArea.java +++ b/Mage.Client/src/main/java/mage/client/components/MageTextArea.java @@ -57,22 +57,19 @@ public class MageTextArea extends JEditorPane { buffer.append(""); - SwingUtilities.invokeLater(new Runnable() { - @Override - public void run() { - String promptText = buffer.toString(); - MageTextArea.super.setText(promptText); - // in case the text don't fit in the panel a tooltip with the text is added - if (panelWidth > 0 && MageTextArea.this.getPreferredSize().getWidth() > panelWidth) { - String tooltip = "

" + basicText + "

"; - MageTextArea.super.setToolTipText(tooltip); - } else { - MageTextArea.super.setToolTipText(null); - } - setCaretPosition(0); + SwingUtilities.invokeLater(() -> { + String promptText = buffer.toString(); + MageTextArea.super.setText(promptText); + // in case the text don't fit in the panel a tooltip with the text is added + if (panelWidth > 0 && MageTextArea.this.getPreferredSize().getWidth() > panelWidth) { + String tooltip = "

" + basicText + "

"; + MageTextArea.super.setToolTipText(tooltip); + } else { + MageTextArea.super.setToolTipText(null); } + setCaretPosition(0); }); } } diff --git a/Mage.Client/src/main/java/mage/client/components/MageUI.java b/Mage.Client/src/main/java/mage/client/components/MageUI.java index 9eaa377525f..48c14687f4a 100644 --- a/Mage.Client/src/main/java/mage/client/components/MageUI.java +++ b/Mage.Client/src/main/java/mage/client/components/MageUI.java @@ -96,12 +96,7 @@ public class MageUI { while (!j.isEnabled()) { Thread.sleep(10); } - Thread t = new Thread(new Runnable() { - @Override - public void run() { - j.doClick(); - } - }); + Thread t = new Thread(() -> j.doClick()); t.start(); } } diff --git a/Mage.Client/src/main/java/mage/client/components/ability/AbilityPicker.java b/Mage.Client/src/main/java/mage/client/components/ability/AbilityPicker.java index 9c06eb63d2d..574b6036c93 100644 --- a/Mage.Client/src/main/java/mage/client/components/ability/AbilityPicker.java +++ b/Mage.Client/src/main/java/mage/client/components/ability/AbilityPicker.java @@ -49,7 +49,7 @@ public class AbilityPicker extends JXPanel implements MouseWheelListener { private static final String IMAGE_RIGHT_PATH = "/game/right.png"; private static final String IMAGE_RIGHT_HOVERED_PATH = "/game/right_hovered.png"; - private static Color SELECTED_COLOR = new Color(64, 147, 208); + private static final Color SELECTED_COLOR = new Color(64, 147, 208); private static Color BORDER_COLOR = new Color(0, 0, 0, 50); private boolean selected = false; diff --git a/Mage.Client/src/main/java/mage/client/components/ability/BackgroundPainter.java b/Mage.Client/src/main/java/mage/client/components/ability/BackgroundPainter.java index 81784aac1a4..f374b2efcf6 100644 --- a/Mage.Client/src/main/java/mage/client/components/ability/BackgroundPainter.java +++ b/Mage.Client/src/main/java/mage/client/components/ability/BackgroundPainter.java @@ -14,9 +14,9 @@ import java.awt.geom.RoundRectangle2D; */ public class BackgroundPainter extends AbstractPainter { - private Color bgColor = Color.black; + private final Color bgColor = Color.black; - float bgalpha = 0.6f; + final float bgalpha = 0.6f; public BackgroundPainter() { super(); diff --git a/Mage.Client/src/main/java/mage/client/components/ability/MageScrollButton.java b/Mage.Client/src/main/java/mage/client/components/ability/MageScrollButton.java index d5465fadead..0b51ad1d101 100644 --- a/Mage.Client/src/main/java/mage/client/components/ability/MageScrollButton.java +++ b/Mage.Client/src/main/java/mage/client/components/ability/MageScrollButton.java @@ -16,10 +16,10 @@ import javax.swing.plaf.metal.MetalScrollButton; */ public class MageScrollButton extends MetalScrollButton { - private static ImageIcon buttonLeft; - private static ImageIcon buttonRight; - private static ImageIcon buttonUp; - private static ImageIcon buttonDown; + private static final ImageIcon buttonLeft; + private static final ImageIcon buttonRight; + private static final ImageIcon buttonUp; + private static final ImageIcon buttonDown; private int width; diff --git a/Mage.Client/src/main/java/mage/client/components/ability/MageScrollbarUI.java b/Mage.Client/src/main/java/mage/client/components/ability/MageScrollbarUI.java index 50a1a9faa52..0aaf5d176e8 100644 --- a/Mage.Client/src/main/java/mage/client/components/ability/MageScrollbarUI.java +++ b/Mage.Client/src/main/java/mage/client/components/ability/MageScrollbarUI.java @@ -27,7 +27,7 @@ import javax.swing.plaf.metal.MetalScrollBarUI; */ public class MageScrollbarUI extends MetalScrollBarUI { - private static int ANTI_WIDTH = -3; + private static final int ANTI_WIDTH = -3; @Override public void installUI(JComponent c) { diff --git a/Mage.Client/src/main/java/mage/client/components/ext/MageFloatPane.java b/Mage.Client/src/main/java/mage/client/components/ext/MageFloatPane.java index b076702f251..57af47dc7e9 100644 --- a/Mage.Client/src/main/java/mage/client/components/ext/MageFloatPane.java +++ b/Mage.Client/src/main/java/mage/client/components/ext/MageFloatPane.java @@ -21,11 +21,9 @@ public class MageFloatPane extends JEditorPane { } public void setCard(final String text) { - SwingUtilities.invokeLater(new Runnable() { - public void run() { - setText(text); - setCaretPosition(0); - } + SwingUtilities.invokeLater(() -> { + setText(text); + setCaretPosition(0); }); } } \ No newline at end of file diff --git a/Mage.Client/src/main/java/mage/client/components/ext/dlg/DialogManager.java b/Mage.Client/src/main/java/mage/client/components/ext/dlg/DialogManager.java index 2c9dc93239f..2eeafeddb48 100644 --- a/Mage.Client/src/main/java/mage/client/components/ext/dlg/DialogManager.java +++ b/Mage.Client/src/main/java/mage/client/components/ext/dlg/DialogManager.java @@ -279,7 +279,7 @@ public class DialogManager extends JComponent implements MouseListener, @Override public void mouseDragged(MouseEvent e) { - if (bDragged == true) { + if (bDragged) { dx = e.getX() - mx; dy = e.getY() - my; diff --git a/Mage.Client/src/main/java/mage/client/components/ext/dlg/impl/ChoiceDialog.java b/Mage.Client/src/main/java/mage/client/components/ext/dlg/impl/ChoiceDialog.java index b9dccca8050..9294a12a070 100644 --- a/Mage.Client/src/main/java/mage/client/components/ext/dlg/impl/ChoiceDialog.java +++ b/Mage.Client/src/main/java/mage/client/components/ext/dlg/impl/ChoiceDialog.java @@ -184,11 +184,7 @@ public class ChoiceDialog extends IDialogPanel { jButtonOK.setBounds(new Rectangle(w / 2 - 40, h - 50, 60, 60)); jButtonOK.setToolTipText("Ok"); - jButtonOK.setObserver(new Command() { - public void execute() { - DialogManager.getManager(gameId).fadeOut((DialogContainer) getParent()); - } - }); + jButtonOK.setObserver(() -> DialogManager.getManager(gameId).fadeOut((DialogContainer) getParent())); } return jButtonOK; } @@ -204,27 +200,24 @@ public class ChoiceDialog extends IDialogPanel { jButtonPrevPage.setBounds(new Rectangle(w / 2 - 125, h - 50, 60, 60)); jButtonPrevPage.setVisible(false); - jButtonPrevPage.setObserver(new Command() { - - public void execute() { - if (page == 1) { - return; - } - - AudioManager.playPrevPage(); - - page--; - getJButtonPrevPage().setVisible(false); - getJButtonOK().setVisible(false); - getJButtonNextPage().setVisible(false); - revalidate(); - displayCards(params.getCards(), params.gameId, params.bigCard); - if (page != 1) { - getJButtonPrevPage().setVisible(true); - } - getJButtonOK().setVisible(true); - getJButtonNextPage().setVisible(true); + jButtonPrevPage.setObserver(() -> { + if (page == 1) { + return; } + + AudioManager.playPrevPage(); + + page--; + getJButtonPrevPage().setVisible(false); + getJButtonOK().setVisible(false); + getJButtonNextPage().setVisible(false); + revalidate(); + displayCards(params.getCards(), params.gameId, params.bigCard); + if (page != 1) { + getJButtonPrevPage().setVisible(true); + } + getJButtonOK().setVisible(true); + getJButtonNextPage().setVisible(true); }); } return jButtonPrevPage; diff --git a/Mage.Client/src/main/java/mage/client/components/ext/dlg/impl/StackDialog.java b/Mage.Client/src/main/java/mage/client/components/ext/dlg/impl/StackDialog.java index 3748528ca45..a8720e4deae 100644 --- a/Mage.Client/src/main/java/mage/client/components/ext/dlg/impl/StackDialog.java +++ b/Mage.Client/src/main/java/mage/client/components/ext/dlg/impl/StackDialog.java @@ -32,9 +32,9 @@ public class StackDialog extends IDialogPanel { private HoverButton jButtonResponse = null; private JLayeredPane jLayeredPane; - private FeedbackPanel feedbackPanel; + private final FeedbackPanel feedbackPanel; - private UUID gameId; + private final UUID gameId; private class CustomLabel extends JLabel { @@ -51,7 +51,7 @@ public class StackDialog extends IDialogPanel { } private static final long serialVersionUID = 1L; - }; + } /** * This is the default constructor diff --git a/Mage.Client/src/main/java/mage/client/components/tray/MageTray.java b/Mage.Client/src/main/java/mage/client/components/tray/MageTray.java index f016f0edd24..c18789322c2 100644 --- a/Mage.Client/src/main/java/mage/client/components/tray/MageTray.java +++ b/Mage.Client/src/main/java/mage/client/components/tray/MageTray.java @@ -1,8 +1,7 @@ package mage.client.components.tray; import java.awt.*; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; + import mage.client.MageFrame; import org.apache.log4j.Logger; import org.mage.plugins.card.utils.impl.ImageManagerImpl; @@ -38,14 +37,11 @@ public class MageTray { trayIcon = new TrayIcon(mainImage); trayIcon.setImageAutoSize(true); - trayIcon.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - stopBlink(); - MageFrame frame = MageFrame.getInstance(); - frame.setVisible(true); - frame.setState(Frame.NORMAL); - } + trayIcon.addActionListener(e -> { + stopBlink(); + MageFrame frame = MageFrame.getInstance(); + frame.setVisible(true); + frame.setState(Frame.NORMAL); }); final SystemTray tray = SystemTray.getSystemTray(); @@ -59,47 +55,17 @@ public class MageTray { MenuItem aboutItem = new MenuItem("About Mage"); MenuItem exitItem = new MenuItem("Exit"); - imagesItem.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - MageFrame.getInstance().downloadImages(); - } - }); + imagesItem.addActionListener(e -> MageFrame.getInstance().downloadImages()); - iconsItem.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - MageFrame.getInstance().downloadAdditionalResources(); - } - }); + iconsItem.addActionListener(e -> MageFrame.getInstance().downloadAdditionalResources()); - stopBlinkItem.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - stopBlink(); - } - }); + stopBlinkItem.addActionListener(e -> stopBlink()); - preferencesItem.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - MageFrame.getInstance().btnPreferencesActionPerformed(null); - } - }); + preferencesItem.addActionListener(e -> MageFrame.getInstance().btnPreferencesActionPerformed(null)); - aboutItem.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - MageFrame.getInstance().btnAboutActionPerformed(null); - } - }); + aboutItem.addActionListener(e -> MageFrame.getInstance().btnAboutActionPerformed(null)); - exitItem.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - MageFrame.getInstance().exitApp(); - } - }); + exitItem.addActionListener(e -> MageFrame.getInstance().exitApp()); popup.add(imagesItem); popup.add(iconsItem); @@ -129,23 +95,20 @@ public class MageTray { synchronized (MageTray.class) { if (state == 0) { state = 1; - new Thread(new Runnable() { - @Override - public void run() { - try { - int i = 0; - while (state != 3) { - trayIcon.setImage(i == 0 ? mainImage : flashedImage); - Thread.sleep(600); - i = i == 0 ? 1 : 0; - } - trayIcon.setImage(mainImage); - state = 0; - } catch (InterruptedException e) { - e.printStackTrace(); + new Thread(() -> { + try { + int i = 0; + while (state != 3) { + trayIcon.setImage(i == 0 ? mainImage : flashedImage); + Thread.sleep(600); + i = i == 0 ? 1 : 0; } - + trayIcon.setImage(mainImage); + state = 0; + } catch (InterruptedException e) { + e.printStackTrace(); } + }).start(); } } diff --git a/Mage.Client/src/main/java/mage/client/deck/generator/DeckGenerator.java b/Mage.Client/src/main/java/mage/client/deck/generator/DeckGenerator.java index 97471ed50b7..1da57aa8470 100644 --- a/Mage.Client/src/main/java/mage/client/deck/generator/DeckGenerator.java +++ b/Mage.Client/src/main/java/mage/client/deck/generator/DeckGenerator.java @@ -31,7 +31,6 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Random; import java.util.Set; import mage.cards.Card; import mage.cards.decks.Deck; diff --git a/Mage.Client/src/main/java/mage/client/deck/generator/DeckGeneratorCMC.java b/Mage.Client/src/main/java/mage/client/deck/generator/DeckGeneratorCMC.java index e56f2d8a61f..351e95a29d1 100644 --- a/Mage.Client/src/main/java/mage/client/deck/generator/DeckGeneratorCMC.java +++ b/Mage.Client/src/main/java/mage/client/deck/generator/DeckGeneratorCMC.java @@ -69,7 +69,8 @@ public enum DeckGeneratorCMC { add(new CMC(7, 100, 0.15f)); }}); - private ArrayList poolCMCs60, poolCMCs40; + private final ArrayList poolCMCs60; + private final ArrayList poolCMCs40; DeckGeneratorCMC(ArrayList CMCs60, ArrayList CMCs40) { this.poolCMCs60 = CMCs60; diff --git a/Mage.Client/src/main/java/mage/client/deck/generator/DeckGeneratorDialog.java b/Mage.Client/src/main/java/mage/client/deck/generator/DeckGeneratorDialog.java index eee152d4969..287579efcb6 100644 --- a/Mage.Client/src/main/java/mage/client/deck/generator/DeckGeneratorDialog.java +++ b/Mage.Client/src/main/java/mage/client/deck/generator/DeckGeneratorDialog.java @@ -28,9 +28,7 @@ package mage.client.deck.generator; import java.awt.*; -import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.io.File; import java.text.SimpleDateFormat; @@ -193,12 +191,9 @@ public class DeckGeneratorDialog { // Advanced checkbox (enable/disable advanced configuration) cAdvanced = new JCheckBox("Advanced"); cAdvanced.setToolTipText("Enable advanced configuration options"); - cAdvanced.addItemListener(new ItemListener() { - @Override - public void itemStateChanged(ItemEvent itemEvent) { - boolean enable = cAdvanced.isSelected(); - enableAdvancedPanel(enable); - } + cAdvanced.addItemListener(itemEvent -> { + boolean enable = cAdvanced.isSelected(); + enableAdvancedPanel(enable); }); // Advanced Checkbox @@ -216,23 +211,17 @@ public class DeckGeneratorDialog { mainPanel.add(advancedPanel, c); btnGenerate = new JButton("Ok"); - btnGenerate.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - btnGenerate.setEnabled(false); - colorsChooser.setEnabled(false); - selectedColors = (String) colorsChooser.getSelectedItem(); - dlg.setVisible(false); - MageFrame.getPreferences().put("genDeckColor", selectedColors); - } + btnGenerate.addActionListener(e -> { + btnGenerate.setEnabled(false); + colorsChooser.setEnabled(false); + selectedColors = (String) colorsChooser.getSelectedItem(); + dlg.setVisible(false); + MageFrame.getPreferences().put("genDeckColor", selectedColors); }); btnCancel = new JButton("Cancel"); - btnCancel.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - dlg.setVisible(false); - selectedColors = null; - } + btnCancel.addActionListener(e -> { + dlg.setVisible(false); + selectedColors = null; }); JButton[] options = {btnGenerate, btnCancel}; JOptionPane optionPane = new JOptionPane(mainPanel, JOptionPane.PLAIN_MESSAGE, JOptionPane.DEFAULT_OPTION, null, options, options[1]); @@ -308,12 +297,9 @@ public class DeckGeneratorDialog { c.gridy = 2; btnReset = new JButton("Reset"); btnReset.setToolTipText("Reset advanced dialog to default values"); - btnReset.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent actionEvent) { - cbCMC.setSelectedItem(DeckGeneratorCMC.Default); - adjustingSliderPanel.resetValues(); - } + btnReset.addActionListener(actionEvent -> { + cbCMC.setSelectedItem(DeckGeneratorCMC.Default); + adjustingSliderPanel.resetValues(); }); advancedPanel.add(btnReset, c); diff --git a/Mage.Client/src/main/java/mage/client/deck/generator/DeckGeneratorPool.java b/Mage.Client/src/main/java/mage/client/deck/generator/DeckGeneratorPool.java index b5dcd45edf7..a9fae68040a 100644 --- a/Mage.Client/src/main/java/mage/client/deck/generator/DeckGeneratorPool.java +++ b/Mage.Client/src/main/java/mage/client/deck/generator/DeckGeneratorPool.java @@ -44,12 +44,12 @@ public class DeckGeneratorPool { - public static int DEFAULT_CREATURE_PERCENTAGE = 38; - public static int DEFAULT_NON_CREATURE_PERCENTAGE = 21; - public static int DEFAULT_LAND_PERCENTAGE = 41; + public static final int DEFAULT_CREATURE_PERCENTAGE = 38; + public static final int DEFAULT_NON_CREATURE_PERCENTAGE = 21; + public static final int DEFAULT_LAND_PERCENTAGE = 41; private final List allowedColors; - private boolean colorlessAllowed; + private final boolean colorlessAllowed; private final List poolCMCs; private final int creatureCount; private final int nonCreatureCount; @@ -58,14 +58,14 @@ public class DeckGeneratorPool private final int deckSize; // Count how many copies of the card exists in the deck to check we don't go over 4 copies (or 1 for singleton) - private Map cardCounts = new HashMap<>(); + private final Map cardCounts = new HashMap<>(); // If there is only a single color selected to generate a deck private boolean monoColored = false; // List of cards so far in the deck - private List deckCards = new ArrayList<>(); + private final List deckCards = new ArrayList<>(); // List of reserve cards found to fix up undersized decks - private List reserveSpells = new ArrayList<>(); - private Deck deck; + private final List reserveSpells = new ArrayList<>(); + private final Deck deck; /** * Creates a card pool with specified criterea used when generating a deck. diff --git a/Mage.Client/src/main/java/mage/client/deck/generator/RatioAdjustingSliderPanel.java b/Mage.Client/src/main/java/mage/client/deck/generator/RatioAdjustingSliderPanel.java index 2355c088ab7..219bd7ad277 100644 --- a/Mage.Client/src/main/java/mage/client/deck/generator/RatioAdjustingSliderPanel.java +++ b/Mage.Client/src/main/java/mage/client/deck/generator/RatioAdjustingSliderPanel.java @@ -29,8 +29,6 @@ package mage.client.deck.generator; import javax.swing.*; -import javax.swing.event.ChangeEvent; -import javax.swing.event.ChangeListener; import java.awt.*; import java.util.*; import java.util.List; @@ -41,13 +39,13 @@ import java.util.List; public class RatioAdjustingSliderPanel extends JPanel { private JStorageSlider creatureSlider, nonCreatureSlider, landSlider; - private List textLabels = new ArrayList<>(); + private final List textLabels = new ArrayList<>(); private AdjustingSliderGroup sg; private class JStorageSlider extends JSlider { // Slider stores its initial value to revert to when reset - private int defaultValue; + private final int defaultValue; private int previousValue; public JStorageSlider(int min, int max, int value) { @@ -86,12 +84,7 @@ public class RatioAdjustingSliderPanel extends JPanel { storageSliders = new ArrayList<>(); for(JStorageSlider slider: sliders) { storageSliders.add(slider); - slider.addChangeListener(new ChangeListener() { - @Override - public void stateChanged(ChangeEvent e) { - fireSliderChangedEvent((JStorageSlider) e.getSource()); - } - }); + slider.addChangeListener(e -> fireSliderChangedEvent((JStorageSlider) e.getSource())); } } public void fireSliderChangedEvent(JStorageSlider source) { @@ -177,19 +170,16 @@ public class RatioAdjustingSliderPanel extends JPanel { final JLabel label = new JLabel(" " + String.valueOf(slider.getValue()) + "%"); - slider.addChangeListener(new ChangeListener() { - @Override - public void stateChanged(ChangeEvent e) { - String value = String.valueOf(slider.getValue()); - StringBuilder labelBuilder = new StringBuilder(); - // Pad with spaces so all percentage labels are of equal size - for(int i = 0; i < (5-value.length()); i++) { - labelBuilder.append(" "); - } - labelBuilder.append(value); - labelBuilder.append("%"); - label.setText(labelBuilder.toString()); + slider.addChangeListener(e -> { + String value = String.valueOf(slider.getValue()); + StringBuilder labelBuilder = new StringBuilder(); + // Pad with spaces so all percentage labels are of equal size + for(int i = 0; i < (5-value.length()); i++) { + labelBuilder.append(" "); } + labelBuilder.append(value); + labelBuilder.append("%"); + label.setText(labelBuilder.toString()); }); return label; } diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/CardSelector.java b/Mage.Client/src/main/java/mage/client/deckeditor/CardSelector.java index fe676343a9c..2c1d985d301 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/CardSelector.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/CardSelector.java @@ -83,12 +83,7 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene private boolean limited = false; private final SortSetting sortSetting; - private final ActionListener searchAction = new ActionListener() { - @Override - public void actionPerformed(ActionEvent evt) { - jButtonSearchActionPerformed(evt); - } - }; + private final ActionListener searchAction = evt -> jButtonSearchActionPerformed(evt); /** * Creates new form CardSelector @@ -494,11 +489,7 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene tbRed.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); tbRed.setSelectedIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/color_red.png"))); // NOI18N tbRed.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - tbRed.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - tbRedActionPerformed(evt); - } - }); + tbRed.addActionListener(evt -> tbRedActionPerformed(evt)); tbColor.add(tbRed); tbGreen.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/color_green_off.png"))); // NOI18N @@ -510,11 +501,7 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene tbGreen.setSelectedIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/color_green.png"))); // NOI18N tbGreen.setVerifyInputWhenFocusTarget(false); tbGreen.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - tbGreen.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - tbGreenActionPerformed(evt); - } - }); + tbGreen.addActionListener(evt -> tbGreenActionPerformed(evt)); tbColor.add(tbGreen); tbBlue.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/color_blueOff.png"))); // NOI18N @@ -525,11 +512,7 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene tbBlue.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); tbBlue.setSelectedIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/color_blue.png"))); // NOI18N tbBlue.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - tbBlue.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - tbBlueActionPerformed(evt); - } - }); + tbBlue.addActionListener(evt -> tbBlueActionPerformed(evt)); tbColor.add(tbBlue); tbBlack.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/color_black_off.png"))); // NOI18N @@ -540,11 +523,7 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene tbBlack.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); tbBlack.setSelectedIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/color_black.png"))); // NOI18N tbBlack.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - tbBlack.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - tbBlackActionPerformed(evt); - } - }); + tbBlack.addActionListener(evt -> tbBlackActionPerformed(evt)); tbColor.add(tbBlack); tbWhite.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/color_white_off.png"))); // NOI18N @@ -555,11 +534,7 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene tbWhite.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); tbWhite.setSelectedIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/color_white.png"))); // NOI18N tbWhite.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - tbWhite.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - tbWhiteActionPerformed(evt); - } - }); + tbWhite.addActionListener(evt -> tbWhiteActionPerformed(evt)); tbColor.add(tbWhite); tbColorless.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/colorless_off.png"))); // NOI18N @@ -570,11 +545,7 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene tbColorless.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); tbColorless.setSelectedIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/colorless.png"))); // NOI18N tbColorless.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - tbColorless.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - tbColorlessActionPerformed(evt); - } - }); + tbColorless.addActionListener(evt -> tbColorlessActionPerformed(evt)); tbColor.add(tbColorless); tbColor.add(jSeparator1); @@ -583,11 +554,7 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene cbExpansionSet.setMinimumSize(new java.awt.Dimension(250, 25)); cbExpansionSet.setName("cbExpansionSet"); // NOI18N cbExpansionSet.setPreferredSize(new java.awt.Dimension(250, 25)); - cbExpansionSet.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cbExpansionSetActionPerformed(evt); - } - }); + cbExpansionSet.addActionListener(evt -> cbExpansionSetActionPerformed(evt)); tbColor.add(cbExpansionSet); tbColor.add(jSeparator2); @@ -596,22 +563,14 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene btnBooster.setFocusable(false); btnBooster.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); btnBooster.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnBooster.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnBoosterActionPerformed(evt); - } - }); + btnBooster.addActionListener(evt -> btnBoosterActionPerformed(evt)); tbColor.add(btnBooster); btnClear.setText("Clear"); btnClear.setFocusable(false); btnClear.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); btnClear.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnClear.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnClearActionPerformed(evt); - } - }); + btnClear.addActionListener(evt -> btnClearActionPerformed(evt)); tbColor.add(btnClear); tbTypes.setFloatable(false); @@ -627,11 +586,7 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene tbLand.setFocusable(false); tbLand.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); tbLand.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - tbLand.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - tbLandActionPerformed(evt); - } - }); + tbLand.addActionListener(evt -> tbLandActionPerformed(evt)); tbTypes.add(tbLand); tbCreatures.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/type_creatures.png"))); // NOI18N @@ -642,11 +597,7 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene tbCreatures.setFocusable(false); tbCreatures.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); tbCreatures.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - tbCreatures.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - tbCreaturesActionPerformed(evt); - } - }); + tbCreatures.addActionListener(evt -> tbCreaturesActionPerformed(evt)); tbTypes.add(tbCreatures); tbArifiacts.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/type_artifact.png"))); // NOI18N @@ -657,11 +608,7 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene tbArifiacts.setFocusable(false); tbArifiacts.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); tbArifiacts.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - tbArifiacts.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - tbArifiactsActionPerformed(evt); - } - }); + tbArifiacts.addActionListener(evt -> tbArifiactsActionPerformed(evt)); tbTypes.add(tbArifiacts); tbSorceries.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/type_sorcery.png"))); // NOI18N @@ -672,11 +619,7 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene tbSorceries.setFocusable(false); tbSorceries.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); tbSorceries.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - tbSorceries.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - tbSorceriesActionPerformed(evt); - } - }); + tbSorceries.addActionListener(evt -> tbSorceriesActionPerformed(evt)); tbTypes.add(tbSorceries); tbInstants.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/type_instant.png"))); // NOI18N @@ -687,11 +630,7 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene tbInstants.setFocusable(false); tbInstants.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); tbInstants.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - tbInstants.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - tbInstantsActionPerformed(evt); - } - }); + tbInstants.addActionListener(evt -> tbInstantsActionPerformed(evt)); tbTypes.add(tbInstants); tbEnchantments.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/type_enchantment.png"))); // NOI18N @@ -702,11 +641,7 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene tbEnchantments.setFocusable(false); tbEnchantments.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); tbEnchantments.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - tbEnchantments.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - tbEnchantmentsActionPerformed(evt); - } - }); + tbEnchantments.addActionListener(evt -> tbEnchantmentsActionPerformed(evt)); tbTypes.add(tbEnchantments); tbPlaneswalkers.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/type_planeswalker.png"))); // NOI18N @@ -717,11 +652,7 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene tbPlaneswalkers.setFocusable(false); tbPlaneswalkers.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); tbPlaneswalkers.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - tbPlaneswalkers.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - tbPlaneswalkersActionPerformed(evt); - } - }); + tbPlaneswalkers.addActionListener(evt -> tbPlaneswalkersActionPerformed(evt)); tbTypes.add(tbPlaneswalkers); tbTypes.add(jSeparator6); @@ -730,11 +661,7 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene chkPiles.setFocusable(false); chkPiles.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT); chkPiles.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - chkPiles.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - chkPilesActionPerformed(evt); - } - }); + chkPiles.addActionListener(evt -> chkPilesActionPerformed(evt)); tbTypes.add(chkPiles); tbTypes.add(jSeparator3); @@ -742,11 +669,7 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene cbSortBy.setMaximumSize(new java.awt.Dimension(120, 20)); cbSortBy.setMinimumSize(new java.awt.Dimension(120, 20)); cbSortBy.setPreferredSize(new java.awt.Dimension(120, 20)); - cbSortBy.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cbSortByActionPerformed(evt); - } - }); + cbSortBy.addActionListener(evt -> cbSortByActionPerformed(evt)); tbTypes.add(cbSortBy); tbTypes.add(jSeparator4); @@ -761,11 +684,7 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene jToggleListView.setMaximumSize(new java.awt.Dimension(37, 22)); jToggleListView.setMinimumSize(new java.awt.Dimension(37, 22)); jToggleListView.setPreferredSize(new java.awt.Dimension(37, 22)); - jToggleListView.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - jToggleListViewActionPerformed(evt); - } - }); + jToggleListView.addActionListener(evt -> jToggleListViewActionPerformed(evt)); tbTypes.add(jToggleListView); bgView.add(jToggleCardView); @@ -780,11 +699,7 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene jToggleCardView.setName(""); // NOI18N jToggleCardView.setPreferredSize(new java.awt.Dimension(37, 22)); jToggleCardView.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - jToggleCardView.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - jToggleCardViewActionPerformed(evt); - } - }); + jToggleCardView.addActionListener(evt -> jToggleCardViewActionPerformed(evt)); tbTypes.add(jToggleCardView); cardSelectorScrollPane.setToolTipText("Double click to add the card to the main deck.
\nALT + Double click to add the card to the sideboard."); @@ -798,11 +713,7 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene jButtonAddToMain.setMaximumSize(new java.awt.Dimension(42, 23)); jButtonAddToMain.setMinimumSize(new java.awt.Dimension(42, 23)); jButtonAddToMain.setPreferredSize(new java.awt.Dimension(40, 28)); - jButtonAddToMain.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - jButtonAddToMainActionPerformed(evt); - } - }); + jButtonAddToMain.addActionListener(evt -> jButtonAddToMainActionPerformed(evt)); jButtonAddToSideboard.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/sideboard_in.png"))); // NOI18N jButtonAddToSideboard.setToolTipText("Add selected cards to sideboard.
\nAlternative: ALT key + Double click the card in card selector to move a card to the sideboard."); @@ -810,11 +721,7 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene jButtonAddToSideboard.setMaximumSize(new java.awt.Dimension(100, 30)); jButtonAddToSideboard.setMinimumSize(new java.awt.Dimension(10, 30)); jButtonAddToSideboard.setPreferredSize(new java.awt.Dimension(40, 28)); - jButtonAddToSideboard.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - jButtonAddToSideboardActionPerformed(evt); - } - }); + jButtonAddToSideboard.addActionListener(evt -> jButtonAddToSideboardActionPerformed(evt)); jLabelSearch.setText("Search:"); jLabelSearch.setToolTipText("Searches for card names and in the rule text of the card."); @@ -823,19 +730,11 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene jButtonSearch.setText("Search"); jButtonSearch.setToolTipText("Performs the search."); - jButtonSearch.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - jButtonSearchActionPerformed(evt); - } - }); + jButtonSearch.addActionListener(evt -> jButtonSearchActionPerformed(evt)); jButtonClean.setText("Clear"); jButtonClean.setToolTipText("Clears the search field."); - jButtonClean.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - jButtonCleanActionPerformed(evt); - } - }); + jButtonClean.addActionListener(evt -> jButtonCleanActionPerformed(evt)); cardCountLabel.setText("Card count:"); cardCountLabel.setToolTipText("Number of cards currently shown."); @@ -848,11 +747,7 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene jButtonRemoveFromMain.setMaximumSize(new java.awt.Dimension(42, 23)); jButtonRemoveFromMain.setMinimumSize(new java.awt.Dimension(42, 23)); jButtonRemoveFromMain.setPreferredSize(new java.awt.Dimension(40, 28)); - jButtonRemoveFromMain.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - jButtonRemoveFromMainActionPerformed(evt); - } - }); + jButtonRemoveFromMain.addActionListener(evt -> jButtonRemoveFromMainActionPerformed(evt)); jButtonRemoveFromSideboard.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/sideboard_out.png"))); // NOI18N jButtonRemoveFromSideboard.setToolTipText("Remove selected cards from sideboard."); @@ -860,11 +755,7 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene jButtonRemoveFromSideboard.setMaximumSize(new java.awt.Dimension(10, 30)); jButtonRemoveFromSideboard.setMinimumSize(new java.awt.Dimension(100, 30)); jButtonRemoveFromSideboard.setPreferredSize(new java.awt.Dimension(40, 28)); - jButtonRemoveFromSideboard.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - jButtonRemoveFromSideboardActionPerformed(evt); - } - }); + jButtonRemoveFromSideboard.addActionListener(evt -> jButtonRemoveFromSideboardActionPerformed(evt)); javax.swing.GroupLayout cardSelectorBottomPanelLayout = new javax.swing.GroupLayout(cardSelectorBottomPanel); cardSelectorBottomPanel.setLayout(cardSelectorBottomPanelLayout); @@ -1132,12 +1023,7 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene } public void refresh() { - SwingUtilities.invokeLater(new Runnable() { - @Override - public void run() { - currentView.refresh(); - } - }); + SwingUtilities.invokeLater(() -> currentView.refresh()); } private TableModel mainModel; diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/DeckArea.java b/Mage.Client/src/main/java/mage/client/deckeditor/DeckArea.java index 9326c8d9d9a..8437a0b310c 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/DeckArea.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/DeckArea.java @@ -55,9 +55,9 @@ import mage.view.CardsView; */ public class DeckArea extends javax.swing.JPanel { - private CardEventSource maindeckVirtualEvent = new CardEventSource(); - private CardEventSource sideboardVirtualEvent = new CardEventSource(); - private Set hiddenCards = new HashSet<>(); + private final CardEventSource maindeckVirtualEvent = new CardEventSource(); + private final CardEventSource sideboardVirtualEvent = new CardEventSource(); + private final Set hiddenCards = new HashSet<>(); private Deck lastDeck = new Deck(); private BigCard lastBigCard = null; private int dividerLocationNormal = 0; diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.java b/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.java index 63f4f7c48f6..94319481fe5 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.java @@ -82,7 +82,7 @@ public class DeckEditorPanel extends javax.swing.JPanel { private final JFileChooser fcSelectDeck; private final JFileChooser fcImportDeck; private Deck deck = new Deck(); - private Map temporaryCards = new HashMap<>(); // Cards dragged out of one part of the view into another + private final Map temporaryCards = new HashMap<>(); // Cards dragged out of one part of the view into another private boolean isShowCardInfo = false; private UUID tableId; private DeckEditorMode mode; @@ -108,21 +108,18 @@ public class DeckEditorPanel extends javax.swing.JPanel { jSplitPane1.setOpaque(false); restoreDividerLocationsAndDeckAreaSettings(); countdown = new Timer(1000, - new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - if (--timeout > 0) { - setTimeout(timeout); - } else { - if (updateDeckTask != null) { - updateDeckTask.cancel(true); + e -> { + if (--timeout > 0) { + setTimeout(timeout); + } else { + if (updateDeckTask != null) { + updateDeckTask.cancel(true); + } + setTimeout(0); + countdown.stop(); + removeDeckEditor(); } - setTimeout(0); - countdown.stop(); - removeDeckEditor(); - } - } - }); + }); // Set up tracking to save the deck editor settings when the deck editor is hidden. addHierarchyListener((HierarchyEvent e) -> { @@ -265,213 +262,204 @@ public class DeckEditorPanel extends javax.swing.JPanel { for (ICardGrid component : this.cardSelector.getCardGridComponents()) { component.clearCardEventListeners(); component.addCardEventListener( - new Listener() { - @Override - public void event(Event event) { - switch (event.getEventName()) { - case "double-click": - moveSelectorCardToDeck(event); - break; - case "alt-double-click": - if (mode == DeckEditorMode.FREE_BUILDING) { - moveSelectorCardToSideboard(event); - } else { - // because in match mode selector is used as sideboard the card goes to deck also for shift click + (Listener) event -> { + switch (event.getEventName()) { + case "double-click": moveSelectorCardToDeck(event); - } - break; - case "remove-main": - DeckEditorPanel.this.deckArea.getDeckList().removeSelection(); - break; - case "remove-sideboard": - DeckEditorPanel.this.deckArea.getSideboardList().removeSelection(); - break; - } - refreshDeck(); - } - }); + break; + case "alt-double-click": + if (mode == DeckEditorMode.FREE_BUILDING) { + moveSelectorCardToSideboard(event); + } else { + // because in match mode selector is used as sideboard the card goes to deck also for shift click + moveSelectorCardToDeck(event); + } + break; + case "remove-main": + DeckEditorPanel.this.deckArea.getDeckList().removeSelection(); + break; + case "remove-sideboard": + DeckEditorPanel.this.deckArea.getSideboardList().removeSelection(); + break; + } + refreshDeck(); + }); } this.deckArea.clearDeckEventListeners(); this.deckArea.addDeckEventListener( - new Listener() { - @Override - public void event(Event event) { - if (mode.equals(DeckEditorMode.FREE_BUILDING)) { - switch (event.getEventName()) { - case "double-click": { - SimpleCardView cardView = (SimpleCardView) event.getSource(); - for (Card card : deck.getCards()) { - if (card.getId().equals(cardView.getId())) { - deck.getCards().remove(card); - break; + (Listener) event -> { + if (mode.equals(DeckEditorMode.FREE_BUILDING)) { + switch (event.getEventName()) { + case "double-click": { + SimpleCardView cardView = (SimpleCardView) event.getSource(); + for (Card card : deck.getCards()) { + if (card.getId().equals(cardView.getId())) { + deck.getCards().remove(card); + break; + } } + hidePopup(); + refreshDeck(); + break; } - hidePopup(); - refreshDeck(); - break; - } - case "alt-double-click": { - SimpleCardView cardView = (SimpleCardView) event.getSource(); - for (Card card : deck.getCards()) { - if (card.getId().equals(cardView.getId())) { - deck.getCards().remove(card); - deck.getSideboard().add(card); - break; + case "alt-double-click": { + SimpleCardView cardView = (SimpleCardView) event.getSource(); + for (Card card : deck.getCards()) { + if (card.getId().equals(cardView.getId())) { + deck.getCards().remove(card); + deck.getSideboard().add(card); + break; + } } + hidePopup(); + refreshDeck(); + break; } - hidePopup(); - refreshDeck(); - break; - } - case "set-number": { - setCardNumberToCardsList(event, deck.getCards()); - break; - } - case "remove-specific-card": { - SimpleCardView cardView = (SimpleCardView) event.getSource(); - for (Card card : deck.getCards()) { - if (card.getId().equals(cardView.getId())) { - deck.getCards().remove(card); - storeTemporaryCard(card); - break; + case "set-number": { + setCardNumberToCardsList(event, deck.getCards()); + break; + } + case "remove-specific-card": { + SimpleCardView cardView = (SimpleCardView) event.getSource(); + for (Card card : deck.getCards()) { + if (card.getId().equals(cardView.getId())) { + deck.getCards().remove(card); + storeTemporaryCard(card); + break; + } } + break; + } + case "add-specific-card": { + SimpleCardView cardView = (CardView) event.getSource(); + deck.getCards().add(retrieveTemporaryCard(cardView)); + break; } - break; } - case "add-specific-card": { - SimpleCardView cardView = (CardView) event.getSource(); - deck.getCards().add(retrieveTemporaryCard(cardView)); - break; + } else { + // constructing phase or sideboarding during match -> card goes always to sideboard + switch (event.getEventName()) { + case "double-click": + case "alt-double-click": { + SimpleCardView cardView = (SimpleCardView) event.getSource(); + for (Card card : deck.getCards()) { + if (card.getId().equals(cardView.getId())) { + deck.getCards().remove(card); + deck.getSideboard().add(card); + cardSelector.loadSideboard(new ArrayList<>(deck.getSideboard()), getBigCard()); + break; + } + } + hidePopup(); + refreshDeck(); + break; + } + case "remove-specific-card": { + SimpleCardView cardView = (SimpleCardView) event.getSource(); + for (Card card : deck.getCards()) { + if (card.getId().equals(cardView.getId())) { + deck.getCards().remove(card); + storeTemporaryCard(card); + break; + } + } + break; + } + case "add-specific-card": { + SimpleCardView cardView = (CardView) event.getSource(); + deck.getCards().add(retrieveTemporaryCard(cardView)); + break; + } } } - } else { - // constructing phase or sideboarding during match -> card goes always to sideboard - switch (event.getEventName()) { - case "double-click": - case "alt-double-click": { - SimpleCardView cardView = (SimpleCardView) event.getSource(); - for (Card card : deck.getCards()) { - if (card.getId().equals(cardView.getId())) { - deck.getCards().remove(card); - deck.getSideboard().add(card); - cardSelector.loadSideboard(new ArrayList<>(deck.getSideboard()), getBigCard()); - break; - } - } - hidePopup(); - refreshDeck(); - break; - } - case "remove-specific-card": { - SimpleCardView cardView = (SimpleCardView) event.getSource(); - for (Card card : deck.getCards()) { - if (card.getId().equals(cardView.getId())) { - deck.getCards().remove(card); - storeTemporaryCard(card); - break; - } - } - break; - } - case "add-specific-card": { - SimpleCardView cardView = (CardView) event.getSource(); - deck.getCards().add(retrieveTemporaryCard(cardView)); - break; - } - } - } - } - }); + }); this.deckArea.clearSideboardEventListeners(); this.deckArea.addSideboardEventListener( - new Listener() { - @Override - public void event(Event event) { - if (mode.equals(DeckEditorMode.FREE_BUILDING)) { - // normal edit mode - switch (event.getEventName()) { - case "double-click": - // remove card from sideboard (don't add it to deck) - SimpleCardView cardView = (SimpleCardView) event.getSource(); - for (Card card : deck.getSideboard()) { - if (card.getId().equals(cardView.getId())) { - deck.getSideboard().remove(card); - break; + (Listener) event -> { + if (mode.equals(DeckEditorMode.FREE_BUILDING)) { + // normal edit mode + switch (event.getEventName()) { + case "double-click": + // remove card from sideboard (don't add it to deck) + SimpleCardView cardView = (SimpleCardView) event.getSource(); + for (Card card : deck.getSideboard()) { + if (card.getId().equals(cardView.getId())) { + deck.getSideboard().remove(card); + break; + } } - } - hidePopup(); - refreshDeck(); - break; - case "alt-double-click": - // remove card from sideboard - cardView = (SimpleCardView) event.getSource(); - for (Card card : deck.getSideboard()) { - if (card.getId().equals(cardView.getId())) { - deck.getSideboard().remove(card); - deck.getCards().add(card); - break; + hidePopup(); + refreshDeck(); + break; + case "alt-double-click": + // remove card from sideboard + cardView = (SimpleCardView) event.getSource(); + for (Card card : deck.getSideboard()) { + if (card.getId().equals(cardView.getId())) { + deck.getSideboard().remove(card); + deck.getCards().add(card); + break; + } } + hidePopup(); + refreshDeck(); + break; + case "set-number": { + setCardNumberToCardsList(event, deck.getSideboard()); + break; + } + case "remove-specific-card": { + cardView = (SimpleCardView) event.getSource(); + for (Card card : deck.getSideboard()) { + if (card.getId().equals(cardView.getId())) { + deck.getSideboard().remove(card); + storeTemporaryCard(card); + break; + } + } + break; + } + case "add-specific-card": { + cardView = (CardView) event.getSource(); + deck.getSideboard().add(retrieveTemporaryCard(cardView)); + break; } - hidePopup(); - refreshDeck(); - break; - case "set-number": { - setCardNumberToCardsList(event, deck.getSideboard()); - break; } - case "remove-specific-card": { - cardView = (SimpleCardView) event.getSource(); - for (Card card : deck.getSideboard()) { - if (card.getId().equals(cardView.getId())) { - deck.getSideboard().remove(card); - storeTemporaryCard(card); - break; + } else { + // construct phase or sideboarding during match + switch (event.getEventName()) { + case "remove-specific-card": { + SimpleCardView cardView = (SimpleCardView) event.getSource(); + for (Card card : deck.getSideboard()) { + if (card.getId().equals(cardView.getId())) { + deck.getSideboard().remove(card); + storeTemporaryCard(card); + break; + } } + break; } - break; - } - case "add-specific-card": { - cardView = (CardView) event.getSource(); - deck.getSideboard().add(retrieveTemporaryCard(cardView)); - break; + case "add-specific-card": { + SimpleCardView cardView = (CardView) event.getSource(); + deck.getSideboard().add(retrieveTemporaryCard(cardView)); + break; + } + case "double-click": + case "alt-double-click": + SimpleCardView cardView = (SimpleCardView) event.getSource(); + for (Card card : deck.getSideboard()) { + if (card.getId().equals(cardView.getId())) { + deck.getSideboard().remove(card); + deck.getCards().add(card); + break; + } + } + hidePopup(); + refreshDeck(); + break; } } - } else { - // construct phase or sideboarding during match - switch (event.getEventName()) { - case "remove-specific-card": { - SimpleCardView cardView = (SimpleCardView) event.getSource(); - for (Card card : deck.getSideboard()) { - if (card.getId().equals(cardView.getId())) { - deck.getSideboard().remove(card); - storeTemporaryCard(card); - break; - } - } - break; - } - case "add-specific-card": { - SimpleCardView cardView = (CardView) event.getSource(); - deck.getSideboard().add(retrieveTemporaryCard(cardView)); - break; - } - case "double-click": - case "alt-double-click": - SimpleCardView cardView = (SimpleCardView) event.getSource(); - for (Card card : deck.getSideboard()) { - if (card.getId().equals(cardView.getId())) { - deck.getSideboard().remove(card); - deck.getCards().add(card); - break; - } - } - hidePopup(); - refreshDeck(); - break; - } - } - } - }); + }); refreshDeck(); this.setVisible(true); @@ -485,7 +473,7 @@ public class DeckEditorPanel extends javax.swing.JPanel { List toDelete = new ArrayList<>(); for (Card card : cards) { if (card.getName().equals(cardView.getName()) - && card.getCardNumber() == cardView.getCardNumber() + && Objects.equals(card.getCardNumber(), cardView.getCardNumber()) && card.getExpansionSetCode().equals(cardView.getExpansionSetCode())) { cardsFound++; if (cardsFound > numberToSet) { @@ -515,9 +503,8 @@ public class DeckEditorPanel extends javax.swing.JPanel { CardInfo cardInfo = CardRepository.instance.findCard(cardView.getExpansionSetCode(), cardView.getCardNumber()); Card card = null; if (mode == DeckEditorMode.SIDEBOARDING || mode == DeckEditorMode.LIMITED_BUILDING) { - Iterator sideboard = deck.getSideboard().iterator(); - while (sideboard.hasNext()) { - card = (Card) sideboard.next(); + for (Object o : deck.getSideboard()) { + card = (Card) o; if (card.getId().equals(cardView.getId())) { break; } @@ -658,105 +645,62 @@ public class DeckEditorPanel extends javax.swing.JPanel { lblDeckName.setText("Deck Name:"); btnSave.setText("Save"); - btnSave.addActionListener(new java.awt.event.ActionListener() { - @Override - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnSaveActionPerformed(evt); - } - }); + btnSave.addActionListener(evt -> btnSaveActionPerformed(evt)); btnLoad.setText("Load"); - btnLoad.addActionListener(new java.awt.event.ActionListener() { - @Override - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnLoadActionPerformed(evt); - } - }); + btnLoad.addActionListener(evt -> btnLoadActionPerformed(evt)); btnNew.setText("New"); - btnNew.addActionListener(new java.awt.event.ActionListener() { - @Override - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnNewActionPerformed(evt); - } - }); + btnNew.addActionListener(evt -> btnNewActionPerformed(evt)); btnExit.setText("Exit"); - btnExit.addActionListener(new java.awt.event.ActionListener() { - @Override - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnExitActionPerformed(evt); - } - }); + btnExit.addActionListener(evt -> btnExitActionPerformed(evt)); btnImport.setText("Import"); btnImport.setName("btnImport"); // NOI18N - btnImport.addActionListener(new java.awt.event.ActionListener() { - @Override - public void actionPerformed(java.awt.event.ActionEvent evt) { - Object[] options = {"File", "Clipboard", "Append from Clipboard"}; + btnImport.addActionListener(evt -> { + Object[] options = {"File", "Clipboard", "Append from Clipboard"}; - int n = JOptionPane.showOptionDialog(MageFrame.getDesktop(), - "Where would you like to import from?", - "Deck import", - JOptionPane.YES_NO_CANCEL_OPTION, - JOptionPane.QUESTION_MESSAGE, - null, - options, - options[0] - ); + int n = JOptionPane.showOptionDialog(MageFrame.getDesktop(), + "Where would you like to import from?", + "Deck import", + JOptionPane.YES_NO_CANCEL_OPTION, + JOptionPane.QUESTION_MESSAGE, + null, + options, + options[0] + ); - logger.info(n); + logger.info(n); - switch (n) { - case 0: - btnImportActionPerformed(evt); - break; - case 1: - btnImportFromClipboardActionPerformed(evt); - case 2: - btnImportFromClipboardActionWAppendPerformed(evt); - } + switch (n) { + case 0: + btnImportActionPerformed(evt); + break; + case 1: + btnImportFromClipboardActionPerformed(evt); + case 2: + btnImportFromClipboardActionWAppendPerformed(evt); } }); btnSubmit.setText("Submit"); btnSubmitTimer.setToolTipText("Submit your deck now!"); btnSubmit.setName("btnSubmit"); // NOI18N - btnSubmit.addActionListener(new java.awt.event.ActionListener() { - @Override - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnSubmitActionPerformed(evt); - } - }); + btnSubmit.addActionListener(evt -> btnSubmitActionPerformed(evt)); btnSubmitTimer.setText("Submit (60s)"); btnSubmitTimer.setToolTipText("Submit your deck in one minute!"); btnSubmitTimer.setName("btnSubmitTimer"); - btnSubmitTimer.addActionListener(new java.awt.event.ActionListener() { - @Override - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnSubmitTimerActionPerformed(evt); - } - }); + btnSubmitTimer.addActionListener(evt -> btnSubmitTimerActionPerformed(evt)); btnAddLand.setText("Add Land"); btnAddLand.setName("btnAddLand"); // NOI18N - btnAddLand.addActionListener(new java.awt.event.ActionListener() { - @Override - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnAddLandActionPerformed(evt); - } - }); + btnAddLand.addActionListener(evt -> btnAddLandActionPerformed(evt)); btnGenDeck.setText("Generate"); btnGenDeck.setName("btnGenDeck"); - btnGenDeck.addActionListener(new java.awt.event.ActionListener() { - @Override - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnGenDeckActionPerformed(evt); - } - }); + btnGenDeck.addActionListener(evt -> btnGenDeckActionPerformed(evt)); txtTimeRemaining.setEditable(false); txtTimeRemaining.setForeground(java.awt.Color.red); @@ -1054,17 +998,15 @@ public class DeckEditorPanel extends javax.swing.JPanel { timeToSubmit = 60; this.btnSubmitTimer.setEnabled(false); - ScheduledFuture scheduledFuture = scheduledExecutorService.schedule(new Callable() { - public Object call() throws Exception { - if (updateDeckTask != null) { - updateDeckTask.cancel(true); - } - - if (SessionHandler.submitDeck(tableId, deck.getDeckCardLists())) { - removeDeckEditor(); - } - return null; + ScheduledFuture scheduledFuture = scheduledExecutorService.schedule((Callable) () -> { + if (updateDeckTask != null) { + updateDeckTask.cancel(true); } + + if (SessionHandler.submitDeck(tableId, deck.getDeckCardLists())) { + removeDeckEditor(); + } + return null; }, 60, TimeUnit.SECONDS); }//GEN-LAST:event_btnSubmitTimerActionPerformed diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/DeckImportFromClipboardDialog.java b/Mage.Client/src/main/java/mage/client/deckeditor/DeckImportFromClipboardDialog.java index c082e75bd2f..e0704958d29 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/DeckImportFromClipboardDialog.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/DeckImportFromClipboardDialog.java @@ -23,18 +23,8 @@ public class DeckImportFromClipboardDialog extends JDialog { setModal(true); getRootPane().setDefaultButton(buttonOK); - buttonOK.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - onOK(); - } - }); - buttonCancel.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - onCancel(); - } - }); + buttonOK.addActionListener(e -> onOK()); + buttonCancel.addActionListener(e -> onCancel()); setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); addWindowListener(new WindowAdapter() { @@ -45,12 +35,7 @@ public class DeckImportFromClipboardDialog extends JDialog { }); // Close on "ESC" - contentPane.registerKeyboardAction(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - onCancel(); - } - }, KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); + contentPane.registerKeyboardAction(e -> onCancel(), KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); } private void onOK() { @@ -94,21 +79,15 @@ public class DeckImportFromClipboardDialog extends JDialog { javax.swing.border.TitledBorder.TOP, new java.awt.Font("Dialog", java.awt.Font.PLAIN, 12), java.awt.Color.BLACK), contentPane.getBorder())); - contentPane.addPropertyChangeListener(new java.beans.PropertyChangeListener() { - @Override - public void propertyChange(java.beans.PropertyChangeEvent e) { - if ("border".equals(e.getPropertyName())) { - throw new RuntimeException(); - } + contentPane.addPropertyChangeListener(e -> { + if ("border".equals(e.getPropertyName())) { + throw new RuntimeException(); } }); - contentPane.addPropertyChangeListener(new java.beans.PropertyChangeListener() { - @Override - public void propertyChange(java.beans.PropertyChangeEvent e) { - if ("border".equals(e.getPropertyName())) { - throw new RuntimeException(); - } + contentPane.addPropertyChangeListener(e -> { + if ("border".equals(e.getPropertyName())) { + throw new RuntimeException(); } }); diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/SortSetting.java b/Mage.Client/src/main/java/mage/client/deckeditor/SortSetting.java index c2f3b21503c..3301cc90397 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/SortSetting.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/SortSetting.java @@ -41,10 +41,10 @@ public abstract class SortSetting { boolean ascending; boolean pilesToggle; - String prefSortBy; - String prefSortIndex; - String prefSortAscending; - String prefPilesToggle; + final String prefSortBy; + final String prefSortIndex; + final String prefSortAscending; + final String prefPilesToggle; public SortSetting(String prefSortBy, String prefSortIndex, String prefSortAscending, String prefPilesToggle) { this.prefSortBy = prefSortBy; diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/CollectionViewerPanel.java b/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/CollectionViewerPanel.java index 86d3848a4bb..3e09760bb3d 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/CollectionViewerPanel.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/CollectionViewerPanel.java @@ -31,8 +31,6 @@ import java.awt.Color; import java.awt.Component; import java.awt.Dimension; import java.awt.GridBagLayout; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; import javax.swing.Box; import javax.swing.BoxLayout; import javax.swing.JButton; @@ -58,8 +56,8 @@ public final class CollectionViewerPanel extends JPanel { private static final Logger logger = Logger.getLogger(CollectionViewerPanel.class); - protected static String LAYOYT_CONFIG_KEY = "collectionViewerLayoutConfig"; - protected static String FORMAT_CONFIG_KEY = "collectionViewerFormat"; + protected static final String LAYOYT_CONFIG_KEY = "collectionViewerLayoutConfig"; + protected static final String FORMAT_CONFIG_KEY = "collectionViewerFormat"; public CollectionViewerPanel() { initComponents(); @@ -107,26 +105,20 @@ public final class CollectionViewerPanel extends JPanel { small3x3.setForeground(Color.white); boolean selected3x3 = MageFrame.getPreferences().get(LAYOYT_CONFIG_KEY, MageBook.LAYOUT_3x3).equals(MageBook.LAYOUT_3x3); small3x3.setSelected(selected3x3); - small3x3.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - big4x4.setSelected(false); - mageBook.updateSize(MageBook.LAYOUT_3x3); - MageFrame.getPreferences().put(LAYOYT_CONFIG_KEY, MageBook.LAYOUT_3x3); - } + small3x3.addActionListener(e -> { + big4x4.setSelected(false); + mageBook.updateSize(MageBook.LAYOUT_3x3); + MageFrame.getPreferences().put(LAYOYT_CONFIG_KEY, MageBook.LAYOUT_3x3); }); jPanel1.add(small3x3); big4x4 = new JRadioButton("4x4"); big4x4.setForeground(Color.white); big4x4.setSelected(!selected3x3); - big4x4.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - small3x3.setSelected(false); - mageBook.updateSize(MageBook.LAYOUT_4x4); - MageFrame.getPreferences().put(LAYOYT_CONFIG_KEY, MageBook.LAYOUT_4x4); - } + big4x4.addActionListener(e -> { + small3x3.setSelected(false); + mageBook.updateSize(MageBook.LAYOUT_4x4); + MageFrame.getPreferences().put(LAYOYT_CONFIG_KEY, MageBook.LAYOUT_4x4); }); jPanel1.add(big4x4); @@ -143,31 +135,18 @@ public final class CollectionViewerPanel extends JPanel { jPanel1.add(buttonPanel); JButton prev = new JButton("Prev"); - prev.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - mageBook.prev(); - } - }); + prev.addActionListener(e -> mageBook.prev()); buttonPanel.add(prev); JButton next = new JButton("Next"); - next.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - mageBook.next(); - } - }); + next.addActionListener(e -> mageBook.next()); buttonPanel.add(next); - formats.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - if (mageBook != null) { - String format = (String)formats.getSelectedItem(); - MageFrame.getPreferences().put(CollectionViewerPanel.FORMAT_CONFIG_KEY, format); - mageBook.updateDispayedSets(format); - } + formats.addActionListener(e -> { + if (mageBook != null) { + String format = (String)formats.getSelectedItem(); + MageFrame.getPreferences().put(CollectionViewerPanel.FORMAT_CONFIG_KEY, format); + mageBook.updateDispayedSets(format); } }); @@ -197,12 +176,7 @@ public final class CollectionViewerPanel extends JPanel { ); btnExit.setText("Exit"); - btnExit.addActionListener(new java.awt.event.ActionListener() { - @Override - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnExitActionPerformed(evt); - } - }); + btnExit.addActionListener(evt -> btnExitActionPerformed(evt)); } diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/MageBook.java b/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/MageBook.java index 4a0f99bbb9a..89554efe22b 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/MageBook.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/MageBook.java @@ -36,7 +36,6 @@ import java.awt.image.BufferedImage; import java.io.FileNotFoundException; import java.io.InputStream; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.UUID; import javax.imageio.ImageIO; @@ -52,7 +51,6 @@ import mage.client.MageFrame; import mage.client.cards.BigCard; import mage.client.components.HoverButton; import mage.client.plugins.impl.Plugins; -import mage.client.util.Command; import mage.client.util.Config; import mage.client.util.ImageHelper; import mage.client.util.NaturalOrderCardNumberComparator; @@ -110,32 +108,26 @@ public class MageBook extends JComponent { pageLeft = new HoverButton(null, image, image, image, new Rectangle(64, 64)); pageLeft.setBounds(0, 0, 64, 64); pageLeft.setVisible(false); - pageLeft.setObserver(new Command() { - @Override - public void execute() { - currentPage--; - if (currentPage == 0) { - pageLeft.setVisible(false); - } - pageRight.setVisible(true); - AudioManager.playPrevPage(); - showCards(); + pageLeft.setObserver(() -> { + currentPage--; + if (currentPage == 0) { + pageLeft.setVisible(false); } + pageRight.setVisible(true); + AudioManager.playPrevPage(); + showCards(); }); image = ImageHelper.loadImage(RIGHT_PAGE_BUTTON_IMAGE_PATH); pageRight = new HoverButton(null, image, image, image, new Rectangle(64, 64)); pageRight.setBounds(conf.WIDTH - 2 * LEFT_RIGHT_PAGES_WIDTH - 64, 0, 64, 64); pageRight.setVisible(false); - pageRight.setObserver(new Command() { - @Override - public void execute() { - currentPage++; - pageLeft.setVisible(true); - pageRight.setVisible(false); - AudioManager.playNextPage(); - showCards(); - } + pageRight.setObserver(() -> { + currentPage++; + pageLeft.setVisible(true); + pageRight.setVisible(false); + AudioManager.playNextPage(); + showCards(); }); addSetTabs(); @@ -179,21 +171,18 @@ public class MageBook extends JComponent { tab.setBounds(0, y, 39, 120); final String _set = set; final int _index = count; - tab.setObserver(new Command() { - @Override - public void execute() { - if (!currentSet.equals(_set) || currentPage != 0) { - AudioManager.playAnotherTab(); - synchronized (MageBook.this) { - selectedTab = _index; - } - currentPage = 0; - currentSet = _set; - pageLeft.setVisible(false); - pageRight.setVisible(false); - addSetTabs(); - showCards(); + tab.setObserver(() -> { + if (!currentSet.equals(_set) || currentPage != 0) { + AudioManager.playAnotherTab(); + synchronized (MageBook.this) { + selectedTab = _index; } + currentPage = 0; + currentSet = _set; + pageLeft.setVisible(false); + pageRight.setVisible(false); + addSetTabs(); + showCards(); } }); tabs.add(tab); @@ -269,7 +258,7 @@ public class MageBook extends JComponent { CardCriteria criteria = new CardCriteria(); criteria.setCodes(set); List cards = CardRepository.instance.findCards(criteria); - Collections.sort(cards, new NaturalOrderCardNumberComparator()); + cards.sort(new NaturalOrderCardNumberComparator()); int start = page * conf.CARDS_PER_PAGE; int end = page * conf.CARDS_PER_PAGE + conf.CARDS_PER_PAGE; if (end > cards.size()) { @@ -334,12 +323,15 @@ public class MageBook extends JComponent { } public void updateSize(String size) { - if (size.equals(LAYOUT_3x3)) { - this.conf = new _3x3Configuration(); - } else if (size.equals(LAYOUT_4x4)) { - this.conf = new _4x4Configuration(); - } else { - return; + switch (size) { + case LAYOUT_3x3: + this.conf = new _3x3Configuration(); + break; + case LAYOUT_4x4: + this.conf = new _4x4Configuration(); + break; + default: + return; } currentPage = 0; pageLeft.setVisible(false); @@ -412,7 +404,7 @@ public class MageBook extends JComponent { private ImagePanel jPanelCenter; private JPanel jPanelRight; private JLayeredPane jLayeredPane; - private BigCard bigCard; + private final BigCard bigCard; private HoverButton pageLeft; private HoverButton pageRight; @@ -423,7 +415,7 @@ public class MageBook extends JComponent { private static final Logger log = Logger.getLogger(MageBook.class); private Dimension cardDimension; private java.util.List setsToDisplay = new ArrayList<>(); - private java.util.List tabs = new ArrayList<>(); + private final java.util.List tabs = new ArrayList<>(); private int selectedTab; private static final String CENTER_PANEL_IMAGE_PATH = "/book_bg.jpg"; diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/TestMageBook.java b/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/TestMageBook.java index ca384c13074..341fa3b4cd2 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/TestMageBook.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/TestMageBook.java @@ -1,6 +1,7 @@ package mage.client.deckeditor.collection.viewer; -import javax.swing.JFrame; +import javax.swing.*; + import mage.cards.repository.CardScanner; import mage.client.plugins.impl.Plugins; import org.mage.card.arcane.ManaSymbols; @@ -14,7 +15,7 @@ public class TestMageBook extends JFrame { ManaSymbols.loadImages(); CardScanner.scan(); JFrame frame = new TestMageBook(); - frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); frame.add(new MageBook(null)); frame.pack(); frame.setVisible(true); diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/table/TableModel.java b/Mage.Client/src/main/java/mage/client/deckeditor/table/TableModel.java index 3eded527004..987ccff8c9d 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/table/TableModel.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/table/TableModel.java @@ -36,7 +36,6 @@ import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.image.BufferedImage; import java.util.ArrayList; -import java.util.Collections; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; @@ -76,7 +75,7 @@ public class TableModel extends AbstractTableModel implements ICardGrid { private static final Logger log = Logger.getLogger(TableModel.class); - protected CardEventSource cardEventSource = new CardEventSource(); + protected final CardEventSource cardEventSource = new CardEventSource(); protected BigCard bigCard; protected UUID gameId; private final Map cards = new LinkedHashMap<>(); @@ -437,7 +436,7 @@ public class TableModel extends AbstractTableModel implements ICardGrid { recentAscending = ascending; MageCardComparator sorter = new MageCardComparator(column, ascending); - Collections.sort(view, sorter); + view.sort(sorter); fireTableDataChanged(); diff --git a/Mage.Client/src/main/java/mage/client/dialog/AboutDialog.java b/Mage.Client/src/main/java/mage/client/dialog/AboutDialog.java index 8f6572b5a44..2722fe681a1 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/AboutDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/AboutDialog.java @@ -77,11 +77,7 @@ public class AboutDialog extends MageDialog { setTitle("About XMage"); btnOk.setText("OK"); - btnOk.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnOkActionPerformed(evt); - } - }); + btnOk.addActionListener(this::btnOkActionPerformed); jLabel1.setText("XMage client"); diff --git a/Mage.Client/src/main/java/mage/client/dialog/AddLandDialog.java b/Mage.Client/src/main/java/mage/client/dialog/AddLandDialog.java index 5748b13cd47..97e7ddc7712 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/AddLandDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/AddLandDialog.java @@ -29,7 +29,6 @@ package mage.client.dialog; import java.util.HashSet; import java.util.List; -import java.util.Random; import java.util.Set; import java.util.SortedSet; import java.util.TreeSet; @@ -183,44 +182,32 @@ public class AddLandDialog extends MageDialog { lblForest.setText("Forest"); - spnForest.setModel(new javax.swing.SpinnerNumberModel(Integer.valueOf(0), Integer.valueOf(0), null, Integer.valueOf(1))); + spnForest.setModel(new javax.swing.SpinnerNumberModel(0, 0, null, 1)); lblIsland.setText("Island"); - spnIsland.setModel(new javax.swing.SpinnerNumberModel(Integer.valueOf(0), Integer.valueOf(0), null, Integer.valueOf(1))); + spnIsland.setModel(new javax.swing.SpinnerNumberModel(0, 0, null, 1)); lblMountain.setText("Mountain"); - spnMountain.setModel(new javax.swing.SpinnerNumberModel(Integer.valueOf(0), Integer.valueOf(0), null, Integer.valueOf(1))); + spnMountain.setModel(new javax.swing.SpinnerNumberModel(0, 0, null, 1)); lblPains.setText("Plains"); - spnPlains.setModel(new javax.swing.SpinnerNumberModel(Integer.valueOf(0), Integer.valueOf(0), null, Integer.valueOf(1))); + spnPlains.setModel(new javax.swing.SpinnerNumberModel(0, 0, null, 1)); lblSwamp.setText("Swamp"); - spnSwamp.setModel(new javax.swing.SpinnerNumberModel(Integer.valueOf(0), Integer.valueOf(0), null, Integer.valueOf(1))); + spnSwamp.setModel(new javax.swing.SpinnerNumberModel(0, 0, null, 1)); btnAdd.setText("Add"); - btnAdd.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnAddActionPerformed(evt); - } - }); + btnAdd.addActionListener(evt -> btnAddActionPerformed(evt)); btnCancel.setText("Cancel"); - btnCancel.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnCancelActionPerformed(evt); - } - }); + btnCancel.addActionListener(evt -> btnCancelActionPerformed(evt)); btnAutoAdd.setText("Suggest"); - btnAutoAdd.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnAutoAddActionPerformed(evt); - } - }); + btnAutoAdd.addActionListener(evt -> btnAutoAddActionPerformed(evt)); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); diff --git a/Mage.Client/src/main/java/mage/client/dialog/CardInfoWindowDialog.java b/Mage.Client/src/main/java/mage/client/dialog/CardInfoWindowDialog.java index 92884966252..e4a697854a5 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/CardInfoWindowDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/CardInfoWindowDialog.java @@ -65,13 +65,13 @@ public class CardInfoWindowDialog extends MageDialog { private static final Logger LOGGER = Logger.getLogger(CardInfoWindowDialog.class); - public static enum ShowType { + public enum ShowType { REVEAL, REVEAL_TOP_LIBRARY, LOOKED_AT, EXILE, GRAVEYARD, OTHER - }; + } - private ShowType showType; + private final ShowType showType; private boolean positioned; - private String name; + private final String name; public CardInfoWindowDialog(ShowType showType, String name) { this.name = name; @@ -185,22 +185,19 @@ public class CardInfoWindowDialog extends MageDialog { } private void showAndPositionWindow() { - SwingUtilities.invokeLater(new Runnable() { - @Override - public void run() { - int width = CardInfoWindowDialog.this.getWidth(); - int height = CardInfoWindowDialog.this.getHeight(); - if (width > 0 && height > 0) { - Point centered = SettingsManager.getInstance().getComponentPosition(width, height); - if (!positioned) { - int xPos = centered.x / 2; - int yPos = centered.y / 2; - CardInfoWindowDialog.this.setLocation(xPos, yPos); - show(); - positioned = true; - } - GuiDisplayUtil.keepComponentInsideFrame(centered.x, centered.y, CardInfoWindowDialog.this); + SwingUtilities.invokeLater(() -> { + int width = CardInfoWindowDialog.this.getWidth(); + int height = CardInfoWindowDialog.this.getHeight(); + if (width > 0 && height > 0) { + Point centered = SettingsManager.getInstance().getComponentPosition(width, height); + if (!positioned) { + int xPos = centered.x / 2; + int yPos = centered.y / 2; + CardInfoWindowDialog.this.setLocation(xPos, yPos); + show(); + positioned = true; } + GuiDisplayUtil.keepComponentInsideFrame(centered.x, centered.y, CardInfoWindowDialog.this); } }); } diff --git a/Mage.Client/src/main/java/mage/client/dialog/ConnectDialog.java b/Mage.Client/src/main/java/mage/client/dialog/ConnectDialog.java index 0c4b5dd9eca..a738721cfe2 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/ConnectDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/ConnectDialog.java @@ -34,7 +34,6 @@ package mage.client.dialog; import java.awt.Cursor; -import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader; import java.io.BufferedWriter; @@ -78,15 +77,10 @@ public class ConnectDialog extends MageDialog { private static final Logger logger = Logger.getLogger(ConnectDialog.class); private Connection connection; private ConnectTask task; - private RegisterUserDialog registerUserDialog; - private ResetPasswordDialog resetPasswordDialog; + private final RegisterUserDialog registerUserDialog; + private final ResetPasswordDialog resetPasswordDialog; - private final ActionListener connectAction = new ActionListener() { - @Override - public void actionPerformed(ActionEvent evt) { - btnConnectActionPerformed(evt); - } - }; + private final ActionListener connectAction = evt -> btnConnectActionPerformed(evt); /** * Creates new form ConnectDialog @@ -179,11 +173,7 @@ public class ConnectDialog extends MageDialog { btnFind.setText("Find..."); btnFind.setToolTipText("Shows the list of public servers"); btnFind.setName("findServerBtn"); // NOI18N - btnFind.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - findPublicServerActionPerformed(evt); - } - }); + btnFind.addActionListener(evt -> findPublicServerActionPerformed(evt)); lblPort.setLabelFor(txtPort); lblPort.setText("Port:"); @@ -207,56 +197,28 @@ public class ConnectDialog extends MageDialog { chkAutoConnect.setText("Automatically connect to this server next time"); chkAutoConnect.setToolTipText("If active this connect dialog will not be shown if you choose to connect.
\nInstead XMage tries to connect to the last server you were connected to."); - chkAutoConnect.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - chkAutoConnectActionPerformed(evt); - } - }); + chkAutoConnect.addActionListener(evt -> chkAutoConnectActionPerformed(evt)); chkForceUpdateDB.setText("Force update of card database"); chkForceUpdateDB.setToolTipText("If active the comparison of the server cards database to the client database will be enforced.
If not, the comparison will only done if the database version of the client is lower than the version of the server."); - chkForceUpdateDB.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - chkForceUpdateDBActionPerformed(evt); - } - }); + chkForceUpdateDB.addActionListener(evt -> chkForceUpdateDBActionPerformed(evt)); jProxySettingsButton.setText("Proxy Settings..."); - jProxySettingsButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - jProxySettingsButtonActionPerformed(evt); - } - }); + jProxySettingsButton.addActionListener(evt -> jProxySettingsButtonActionPerformed(evt)); btnConnect.setText("Connect"); - btnConnect.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnConnectActionPerformed(evt); - } - }); + btnConnect.addActionListener(evt -> btnConnectActionPerformed(evt)); btnCancel.setText("Cancel"); - btnCancel.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnCancelActionPerformed(evt); - } - }); + btnCancel.addActionListener(evt -> btnCancelActionPerformed(evt)); btnRegister.setText("Register new user"); btnRegister.setToolTipText("XMage now supports user authentication.
Register your account before you log in."); - btnRegister.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnRegisterActionPerformed(evt); - } - }); + btnRegister.addActionListener(evt -> btnRegisterActionPerformed(evt)); btnForgotPassword.setText("Forgot password"); btnForgotPassword.setToolTipText("You can reset your password if you have registered
your account with an email address."); - btnForgotPassword.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnForgotPasswordActionPerformed(evt); - } - }); + btnForgotPassword.addActionListener(evt -> btnForgotPasswordActionPerformed(evt)); btnFind1.setText("X"); btnFind1.setToolTipText("Connect to xmage.de"); @@ -268,11 +230,7 @@ public class ConnectDialog extends MageDialog { btnFind1.setMinimumSize(new java.awt.Dimension(42, 23)); btnFind1.setName("connectXmageDeBtn"); // NOI18N btnFind1.setPreferredSize(new java.awt.Dimension(23, 23)); - btnFind1.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - connectXmageDe(evt); - } - }); + btnFind1.addActionListener(evt -> connectXmageDe(evt)); btnFind2.setText("L"); btnFind2.setToolTipText("Connect to localhost"); @@ -282,11 +240,7 @@ public class ConnectDialog extends MageDialog { btnFind2.setHorizontalTextPosition(javax.swing.SwingConstants.LEFT); btnFind2.setName("connectLocalhostBtn"); // NOI18N btnFind2.setPreferredSize(new java.awt.Dimension(23, 23)); - btnFind2.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - connectLocalhost(evt); - } - }); + btnFind2.addActionListener(evt -> connectLocalhost(evt)); btnFind3.setText("W"); btnFind3.setToolTipText("Connect to woogerworks"); @@ -296,11 +250,7 @@ public class ConnectDialog extends MageDialog { btnFind3.setHorizontalTextPosition(javax.swing.SwingConstants.LEFT); btnFind3.setName("connectWoogerworksBtn"); // NOI18N btnFind3.setPreferredSize(new java.awt.Dimension(23, 23)); - btnFind3.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - connectWoogerworks(evt); - } - }); + btnFind3.addActionListener(evt -> connectWoogerworks(evt)); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); diff --git a/Mage.Client/src/main/java/mage/client/dialog/ErrorDialog.java b/Mage.Client/src/main/java/mage/client/dialog/ErrorDialog.java index 4412d60732d..c11a8c1a54b 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/ErrorDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/ErrorDialog.java @@ -76,11 +76,7 @@ public class ErrorDialog extends MageDialog { setTitle("Error"); btnOK.setText("OK"); - btnOK.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnOKActionPerformed(evt); - } - }); + btnOK.addActionListener(this::btnOKActionPerformed); lblMessage.setColumns(20); lblMessage.setEditable(false); diff --git a/Mage.Client/src/main/java/mage/client/dialog/FeedbackDialog.java b/Mage.Client/src/main/java/mage/client/dialog/FeedbackDialog.java index 864a4103f58..e42f74b3cb3 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/FeedbackDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/FeedbackDialog.java @@ -28,7 +28,6 @@ package mage.client.dialog; -import mage.client.MageFrame; import mage.client.SessionHandler; import org.apache.log4j.Logger; @@ -43,7 +42,7 @@ public class FeedbackDialog extends javax.swing.JDialog { private static final Logger log = Logger.getLogger(PreferencesDialog.class); - private String[] feedbackTypes = {"", "Bug or \"something doesn't work\"", + private final String[] feedbackTypes = {"", "Bug or \"something doesn't work\"", "Feature or \"I need that function\"", "Thank you or \"Devs, you are so cool!\"", "Question or \"I'm so curious about\""}; @@ -186,18 +185,10 @@ public class FeedbackDialog extends javax.swing.JDialog { jTabbedPane1.addTab("Give feedback", jPanel6); sendButton.setText("Send"); - sendButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - sendButtonActionPerformed(evt); - } - }); + sendButton.addActionListener(evt -> sendButtonActionPerformed(evt)); cancelButton.setText("Cancel"); - cancelButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cancelButtonActionPerformed(evt); - } - }); + cancelButton.addActionListener(evt -> cancelButtonActionPerformed(evt)); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); @@ -294,14 +285,12 @@ public class FeedbackDialog extends javax.swing.JDialog { * @param args the command line arguments */ public static void main(String args[]) { - java.awt.EventQueue.invokeLater(new Runnable() { - public void run() { - if (!dialog.isVisible()) { - dialog.setLocation(300, 200); - dialog.setVisible(true); - } else { - dialog.requestFocus(); - } + java.awt.EventQueue.invokeLater(() -> { + if (!dialog.isVisible()) { + dialog.setLocation(300, 200); + dialog.setVisible(true); + } else { + dialog.requestFocus(); } }); } diff --git a/Mage.Client/src/main/java/mage/client/dialog/GameEndDialog.java b/Mage.Client/src/main/java/mage/client/dialog/GameEndDialog.java index b471904258a..17a6122fc90 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/GameEndDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/GameEndDialog.java @@ -61,7 +61,7 @@ import mage.view.PlayerView; */ public class GameEndDialog extends MageDialog { - private final DateFormat df = DateFormat.getDateTimeInstance();; + private final DateFormat df = DateFormat.getDateTimeInstance(); /** Creates new form GameEndDialog @@ -290,11 +290,7 @@ public class GameEndDialog extends MageDialog { tabPane.addTab("Statistics", tabStatistics); btnOk.setText("OK"); - btnOk.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnOkActionPerformed(evt); - } - }); + btnOk.addActionListener(evt -> btnOkActionPerformed(evt)); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); diff --git a/Mage.Client/src/main/java/mage/client/dialog/JoinTableDialog.java b/Mage.Client/src/main/java/mage/client/dialog/JoinTableDialog.java index 44ca907a1e3..50d74717f36 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/JoinTableDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/JoinTableDialog.java @@ -85,18 +85,10 @@ public class JoinTableDialog extends MageDialog { setTitle("Join Table"); btnCancel.setText("Cancel"); - btnCancel.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnCancelActionPerformed(evt); - } - }); + btnCancel.addActionListener(evt -> btnCancelActionPerformed(evt)); btnOK.setText("OK"); - btnOK.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnOKActionPerformed(evt); - } - }); + btnOK.addActionListener(evt -> btnOKActionPerformed(evt)); lblPassword.setText("Password:"); diff --git a/Mage.Client/src/main/java/mage/client/dialog/MageDialog.java b/Mage.Client/src/main/java/mage/client/dialog/MageDialog.java index 284119777d2..ef6e29b4268 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/MageDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/MageDialog.java @@ -97,12 +97,7 @@ public class MageDialog extends javax.swing.JInternalFrame { stopModal(); } else { try { - SwingUtilities.invokeAndWait(new Runnable() { - @Override - public void run() { - stopModal(); - } - }); + SwingUtilities.invokeAndWait(() -> stopModal()); } catch (InterruptedException ex) { LOGGER.fatal("MageDialog error", ex); } catch (InvocationTargetException ex) { diff --git a/Mage.Client/src/main/java/mage/client/dialog/NewTableDialog.java b/Mage.Client/src/main/java/mage/client/dialog/NewTableDialog.java index 95158581c34..37ef502484a 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/NewTableDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/NewTableDialog.java @@ -32,7 +32,6 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import java.util.ListIterator; import java.util.UUID; import javax.swing.*; @@ -145,11 +144,7 @@ public class NewTableDialog extends MageDialog { lblGameType.setText("Game Type:"); - cbGameType.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cbGameTypeActionPerformed(evt); - } - }); + cbGameType.addActionListener(evt -> cbGameTypeActionPerformed(evt)); chkRollbackTurnsAllowed.setText("Allow rollbacks"); chkRollbackTurnsAllowed.setToolTipText("Allow to rollback to the start of previous turns
\nif all players agree.\n"); @@ -163,11 +158,7 @@ public class NewTableDialog extends MageDialog { lblNumPlayers.setLabelFor(spnNumPlayers); lblNumPlayers.setText("Players"); - spnNumPlayers.addChangeListener(new javax.swing.event.ChangeListener() { - public void stateChanged(javax.swing.event.ChangeEvent evt) { - numPlayersChanged(evt); - } - }); + spnNumPlayers.addChangeListener(evt -> numPlayersChanged(evt)); lblRange.setLabelFor(cbRange); lblRange.setText("Range of Influence"); @@ -188,11 +179,7 @@ public class NewTableDialog extends MageDialog { lblNumWins.setText("Wins"); lblNumWins.setToolTipText("How many games has a player to win to win the match."); - spnNumWins.addChangeListener(new javax.swing.event.ChangeListener() { - public void stateChanged(javax.swing.event.ChangeEvent evt) { - spnNumWinsnumPlayersChanged(evt); - } - }); + spnNumWins.addChangeListener(evt -> spnNumWinsnumPlayersChanged(evt)); jLabel1.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N jLabel1.setText("Player 1 (You)"); @@ -203,18 +190,10 @@ public class NewTableDialog extends MageDialog { pnlOtherPlayers.setLayout(new java.awt.GridLayout(0, 1)); btnOK.setText("OK"); - btnOK.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnOKActionPerformed(evt); - } - }); + btnOK.addActionListener(evt -> btnOKActionPerformed(evt)); btnCancel.setText("Cancel"); - btnCancel.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnCancelActionPerformed(evt); - } - }); + btnCancel.addActionListener(evt -> btnCancelActionPerformed(evt)); lblQuitRatio.setText("Allowed quit %"); lblEdhPowerLevel.setText("EDH power level"); @@ -534,12 +513,7 @@ public class NewTableDialog extends MageDialog { playerPanel.init(players.size() + 2, playerType); players.add(playerPanel); playerPanel.addPlayerTypeEventListener( - new Listener() { - @Override - public void event(Event event) { - drawPlayers(); - } - } + (Listener) event -> drawPlayers() ); } @@ -697,12 +671,11 @@ public class NewTableDialog extends MageDialog { PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_SKILL_LEVEL, options.getSkillLevel().toString()); PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_QUIT_RATIO, Integer.toString(options.getQuitRatio())); StringBuilder playerTypesString = new StringBuilder(); - ListIterator iterator = players.listIterator(); - while (iterator.hasNext()) { + for (Object player : players) { if (playerTypesString.length() > 0) { playerTypesString.append(","); } - TablePlayerPanel tpp = (TablePlayerPanel) iterator.next(); + TablePlayerPanel tpp = (TablePlayerPanel) player; playerTypesString.append(tpp.getPlayerType()); } PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_PLAYER_TYPES, playerTypesString.toString()); diff --git a/Mage.Client/src/main/java/mage/client/dialog/NewTournamentDialog.java b/Mage.Client/src/main/java/mage/client/dialog/NewTournamentDialog.java index c07368669ba..709d7369e15 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/NewTournamentDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/NewTournamentDialog.java @@ -65,7 +65,6 @@ import mage.game.draft.DraftOptions; import mage.game.draft.DraftOptions.TimingOption; import mage.game.tournament.LimitedOptions; import mage.game.tournament.TournamentOptions; -import mage.remote.Session; import mage.view.GameTypeView; import mage.view.TableView; import mage.view.TournamentTypeView; @@ -215,11 +214,7 @@ public class NewTournamentDialog extends MageDialog { lblTournamentType.setText("Tournament Type:"); cbTournamentType.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" })); - cbTournamentType.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cbTournamentTypeActionPerformed(evt); - } - }); + cbTournamentType.addActionListener(evt -> cbTournamentTypeActionPerformed(evt)); lbDeckType.setText("Deck Type:"); lbDeckType.setFocusable(false); @@ -227,11 +222,7 @@ public class NewTournamentDialog extends MageDialog { lblGameType.setText("Game Type:"); lblGameType.setFocusable(false); - cbGameType.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cbGameTypeActionPerformed(evt); - } - }); + cbGameType.addActionListener(evt -> cbGameTypeActionPerformed(evt)); lblFreeMulligans.setText("Free Mulligans:"); @@ -240,30 +231,18 @@ public class NewTournamentDialog extends MageDialog { lblNumWins.setText("Wins:"); spnNumWins.setToolTipText("To win a match a player has to win this number of games."); - spnNumWins.addChangeListener(new javax.swing.event.ChangeListener() { - public void stateChanged(javax.swing.event.ChangeEvent evt) { - spnNumWinsnumPlayersChanged(evt); - } - }); + spnNumWins.addChangeListener(evt -> spnNumWinsnumPlayersChanged(evt)); lblDraftCube.setText("Draft Cube:"); cbDraftCube.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" })); - cbDraftCube.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cbDraftCubeActionPerformed(evt); - } - }); + cbDraftCube.addActionListener(evt -> cbDraftCubeActionPerformed(evt)); lblNumRounds.setText("Number of Swiss Rounds:"); lblNumRounds.setToolTipText("The number of rounds the swiss tournament has in total.
\nThe tournaments ends after that number of rounds or
\nif there are less than two players left in the tournament."); spnNumRounds.setToolTipText("The number of rounds the swiss tournament has in total.
\nThe tournaments ends after that number of rounds or
\nif there are less than two players left in the tournament."); - spnNumRounds.addChangeListener(new javax.swing.event.ChangeListener() { - public void stateChanged(javax.swing.event.ChangeEvent evt) { - spnNumRoundsnumPlayersChanged(evt); - } - }); + spnNumRounds.addChangeListener(evt -> spnNumRoundsnumPlayersChanged(evt)); lblPacks.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N lblPacks.setText("Packs"); @@ -273,28 +252,16 @@ public class NewTournamentDialog extends MageDialog { lblNbrPlayers.setText("Players:"); - spnNumPlayers.addChangeListener(new javax.swing.event.ChangeListener() { - public void stateChanged(javax.swing.event.ChangeEvent evt) { - spnNumPlayersStateChanged(evt); - } - }); + spnNumPlayers.addChangeListener(evt -> spnNumPlayersStateChanged(evt)); lblNbrSeats.setText("Seats:"); - spnNumSeats.addChangeListener(new javax.swing.event.ChangeListener() { - public void stateChanged(javax.swing.event.ChangeEvent evt) { - spnNumSeatsStateChanged(evt); - } - }); + spnNumSeats.addChangeListener(evt -> spnNumSeatsStateChanged(evt)); jLabel6.setText("Timing:"); cbDraftTiming.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" })); - cbDraftTiming.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cbDraftTimingActionPerformed(evt); - } - }); + cbDraftTiming.addActionListener(evt -> cbDraftTimingActionPerformed(evt)); javax.swing.GroupLayout pnlDraftOptionsLayout = new javax.swing.GroupLayout(pnlDraftOptions); pnlDraftOptions.setLayout(pnlDraftOptionsLayout); @@ -348,18 +315,10 @@ public class NewTournamentDialog extends MageDialog { ); btnOk.setText("OK"); - btnOk.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnOkActionPerformed(evt); - } - }); + btnOk.addActionListener(evt -> btnOkActionPerformed(evt)); btnCancel.setText("Cancel"); - btnCancel.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnCancelActionPerformed(evt); - } - }); + btnCancel.addActionListener(evt -> btnCancelActionPerformed(evt)); pnlRandomPacks.setBorder(javax.swing.BorderFactory.createEtchedBorder()); pnlRandomPacks.setToolTipText(""); @@ -887,13 +846,7 @@ public class NewTournamentDialog extends MageDialog { btnSelectRandomPacks.setAlignmentX(Component.LEFT_ALIGNMENT); btnSelectRandomPacks.setText("Select packs to be included in the pool"); btnSelectRandomPacks.setToolTipText(RandomPacksSelectorDialog.randomDraftDescription); - btnSelectRandomPacks.addActionListener(new java.awt.event.ActionListener() { - @Override - public void actionPerformed(java.awt.event.ActionEvent evt) { - showRandomPackSelectorDialog(); - - } - }); + btnSelectRandomPacks.addActionListener(evt -> showRandomPackSelectorDialog()); pnlRandomPacks.add(btnSelectRandomPacks); } this.pack(); @@ -925,12 +878,7 @@ public class NewTournamentDialog extends MageDialog { pack.setModel(new DefaultComboBoxModel(ExpansionRepository.instance.getWithBoostersSortedByReleaseDate())); pnlPacks.add(pack); packs.add(pack); - pack.addActionListener(new java.awt.event.ActionListener() { - @Override - public void actionPerformed(java.awt.event.ActionEvent evt) { - packActionPerformed(evt); - } - }); + pack.addActionListener(evt -> packActionPerformed(evt)); } this.pack(); this.revalidate(); @@ -980,12 +928,9 @@ public class NewTournamentDialog extends MageDialog { this.pnlOtherPlayers.removeAll(); for (TournamentPlayerPanel panel: players) { this.pnlOtherPlayers.add(panel); - panel.getPlayerType().addActionListener(new java.awt.event.ActionListener() { - @Override - public void actionPerformed(java.awt.event.ActionEvent evt) { - if (!automaticChange) { - playerActionPerformed(evt); - } + panel.getPlayerType().addActionListener(evt -> { + if (!automaticChange) { + playerActionPerformed(evt); } }); } diff --git a/Mage.Client/src/main/java/mage/client/dialog/PickChoiceDialog.java b/Mage.Client/src/main/java/mage/client/dialog/PickChoiceDialog.java index dbf884f23de..6b63e6cfecb 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/PickChoiceDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/PickChoiceDialog.java @@ -134,28 +134,16 @@ public class PickChoiceDialog extends MageDialog { btnAutoSelect.setText("Auto select"); btnAutoSelect.setToolTipText("If you select an effect with \"Auto select\", this effect will be selected the next time automatically first."); - btnAutoSelect.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnAutoSelectActionPerformed(evt); - } - }); + btnAutoSelect.addActionListener(evt -> btnAutoSelectActionPerformed(evt)); btnCancel.setText("Cancel"); - btnCancel.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnCancelActionPerformed(evt); - } - }); + btnCancel.addActionListener(evt -> btnCancelActionPerformed(evt)); btnOk.setText("OK"); - btnOk.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnOkActionPerformed(evt); - } - }); + btnOk.addActionListener(evt -> btnOkActionPerformed(evt)); lstChoices.setModel(new javax.swing.AbstractListModel() { - String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" }; + final String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" }; public int getSize() { return strings.length; } public Object getElementAt(int i) { return strings[i]; } }); diff --git a/Mage.Client/src/main/java/mage/client/dialog/PickNumberDialog.java b/Mage.Client/src/main/java/mage/client/dialog/PickNumberDialog.java index a3f3c85f217..81eeb13f298 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/PickNumberDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/PickNumberDialog.java @@ -90,21 +90,13 @@ public class PickNumberDialog extends MageDialog { jScrollPane1 = new javax.swing.JScrollPane(); lblMessage = new javax.swing.JTextPane(); - spnAmount.setModel(new javax.swing.SpinnerNumberModel(Integer.valueOf(1), null, null, Integer.valueOf(1))); + spnAmount.setModel(new javax.swing.SpinnerNumberModel(1, null, null, 1)); btnCancel.setText("Cancel"); - btnCancel.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnCancelActionPerformed(evt); - } - }); + btnCancel.addActionListener(evt -> btnCancelActionPerformed(evt)); btnOk.setText("OK"); - btnOk.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnOkActionPerformed(evt); - } - }); + btnOk.addActionListener(evt -> btnOkActionPerformed(evt)); jScrollPane1.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); diff --git a/Mage.Client/src/main/java/mage/client/dialog/PickPileDialog.java b/Mage.Client/src/main/java/mage/client/dialog/PickPileDialog.java index 1e9222061fe..cba441aa7dd 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/PickPileDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/PickPileDialog.java @@ -30,8 +30,6 @@ package mage.client.dialog; import java.awt.BorderLayout; import java.awt.Component; import java.awt.Point; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; import java.util.UUID; import javax.swing.JButton; import javax.swing.JLayeredPane; @@ -69,12 +67,7 @@ public class PickPileDialog extends MageDialog { panel.add(pile1, BorderLayout.CENTER); JButton btnChoosePile1 = new JButton("Pile 1"); - btnChoosePile1.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - btnPile1ActionPerformed(e); - } - }); + btnChoosePile1.addActionListener(e -> btnPile1ActionPerformed(e)); panel.add(btnChoosePile1, BorderLayout.NORTH); JPanel panel_1 = new JPanel(); @@ -85,12 +78,7 @@ public class PickPileDialog extends MageDialog { panel_1.add(pile2, BorderLayout.CENTER); JButton btnChoosePile2 = new JButton("Pile 2"); - btnChoosePile2.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - btnPile2ActionPerformed(e); - } - }); + btnChoosePile2.addActionListener(e -> btnPile2ActionPerformed(e)); panel_1.add(btnChoosePile2, BorderLayout.NORTH); } diff --git a/Mage.Client/src/main/java/mage/client/dialog/PreferencesDialog.java b/Mage.Client/src/main/java/mage/client/dialog/PreferencesDialog.java index fc2fb9b7698..da61f41dfb0 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/PreferencesDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/PreferencesDialog.java @@ -320,8 +320,8 @@ public class PreferencesDialog extends javax.swing.JDialog { public static final String OPEN_CONNECTION_TAB = "Open-Connection-Tab"; public static final String OPEN_PHASES_TAB = "Open-Phases-Tab"; - public static String PHASE_ON = "on"; - public static String PHASE_OFF = "off"; + public static final String PHASE_ON = "on"; + public static final String PHASE_OFF = "off"; private static final Map PANELS = new HashMap<>(); @@ -590,11 +590,7 @@ public class PreferencesDialog extends javax.swing.JDialog { showCardName.setToolTipText("Write the card's name on the card to make the card name more recognizable."); showCardName.setActionCommand(""); showCardName.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); - showCardName.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - showCardNameActionPerformed(evt); - } - }); + showCardName.addActionListener(evt -> showCardNameActionPerformed(evt)); tooltipDelayLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); tooltipDelayLabel.setText("Delay in milliseconds for showing the card tooltip text"); @@ -636,71 +632,43 @@ public class PreferencesDialog extends javax.swing.JDialog { nonLandPermanentsInOnePile.setSelected(true); nonLandPermanentsInOnePile.setText("Put non-land permanents in same row as creatures"); nonLandPermanentsInOnePile.setToolTipText("If activated, all non land permanents are shown in one row.
\nFirst creatures than other permanents. If not activated, creatures are
\nshown in a separate row."); - nonLandPermanentsInOnePile.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - nonLandPermanentsInOnePileActionPerformed(evt); - } - }); + nonLandPermanentsInOnePile.addActionListener(evt -> nonLandPermanentsInOnePileActionPerformed(evt)); showPlayerNamesPermanently.setSelected(true); showPlayerNamesPermanently.setText("Show player names on avatar permanently"); showPlayerNamesPermanently.setToolTipText("Instead showing the names only if you hover over the avatar with the mouse, the name is shown all the time."); showPlayerNamesPermanently.setHorizontalAlignment(javax.swing.SwingConstants.LEFT); - showPlayerNamesPermanently.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - showPlayerNamesPermanentlyActionPerformed(evt); - } - }); + showPlayerNamesPermanently.addActionListener(evt -> showPlayerNamesPermanentlyActionPerformed(evt)); showAbilityPickerForced.setSelected(true); showAbilityPickerForced.setText("Show ability picker for abilities or spells without costs"); showAbilityPickerForced.setToolTipText("This prevents you from accidently activating abilities without other costs than tapping or casting spells with 0 mana costs."); showAbilityPickerForced.setHorizontalAlignment(javax.swing.SwingConstants.LEFT); - showAbilityPickerForced.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - showAbilityPickerForcedActionPerformed(evt); - } - }); + showAbilityPickerForced.addActionListener(evt -> showAbilityPickerForcedActionPerformed(evt)); cbAllowRequestToShowHandCards.setSelected(true); cbAllowRequestToShowHandCards.setText("Allow requests from players and spectators to show your hand cards"); cbAllowRequestToShowHandCards.setToolTipText("This is the default setting used for your matches. If activated other players or spectators
\nof your match can send a request so you can allow them to see your hand cards."); cbAllowRequestToShowHandCards.setHorizontalAlignment(javax.swing.SwingConstants.LEFT); - cbAllowRequestToShowHandCards.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cbAllowRequestToShowHandCardsActionPerformed(evt); - } - }); + cbAllowRequestToShowHandCards.addActionListener(evt -> cbAllowRequestToShowHandCardsActionPerformed(evt)); cbShowStormCounter.setSelected(true); cbShowStormCounter.setText("Show the number of spell casts during the current turn"); cbShowStormCounter.setToolTipText("Adds a little box left to the short keys line with the number
\nof spells already cast during the current turn (storm counter)."); cbShowStormCounter.setHorizontalAlignment(javax.swing.SwingConstants.LEFT); - cbShowStormCounter.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cbShowStormCounterActionPerformed(evt); - } - }); + cbShowStormCounter.addActionListener(evt -> cbShowStormCounterActionPerformed(evt)); cbConfirmEmptyManaPool.setSelected(true); cbConfirmEmptyManaPool.setText("Confirm if you want to pass a phase/step but there is still mana in your mana pool"); cbConfirmEmptyManaPool.setToolTipText("If activated you get a confirm message if you pass priority while stack is empty
\n and you still have mana in your mana pool."); cbConfirmEmptyManaPool.setHorizontalAlignment(javax.swing.SwingConstants.LEFT); - cbConfirmEmptyManaPool.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cbConfirmEmptyManaPoolActionPerformed(evt); - } - }); + cbConfirmEmptyManaPool.addActionListener(evt -> cbConfirmEmptyManaPoolActionPerformed(evt)); cbAskMoveToGraveOrder.setSelected(true); cbAskMoveToGraveOrder.setText("Ask player for setting order cards go to graveyard"); cbAskMoveToGraveOrder.setToolTipText("If activated and multiple cards go to the graveyard at the same time
\nthe player is asked to set the order of the cards."); cbAskMoveToGraveOrder.setHorizontalAlignment(javax.swing.SwingConstants.LEFT); - cbAskMoveToGraveOrder.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cbAskMoveToGraveOrderActionPerformed(evt); - } - }); + cbAskMoveToGraveOrder.addActionListener(evt -> cbAskMoveToGraveOrderActionPerformed(evt)); org.jdesktop.layout.GroupLayout main_gameLayout = new org.jdesktop.layout.GroupLayout(main_game); main_game.setLayout(main_gameLayout); @@ -744,20 +712,12 @@ public class PreferencesDialog extends javax.swing.JDialog { cbGameLogAutoSave.setSelected(true); cbGameLogAutoSave.setText("Auto save game logs (to \"../Mage.Client/gamelogs/\" directory)"); cbGameLogAutoSave.setToolTipText("The logs of all your games will be saved to the mentioned folder if this option is switched on."); - cbGameLogAutoSave.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cbGameLogAutoSaveActionPerformed(evt); - } - }); + cbGameLogAutoSave.addActionListener(evt -> cbGameLogAutoSaveActionPerformed(evt)); cbDraftLogAutoSave.setSelected(true); cbDraftLogAutoSave.setText("Auto save draft logs (to \"../Mage.Client/gamelogs/\" directory)"); cbDraftLogAutoSave.setToolTipText("The logs of all your games will be saved to the mentioned folder if this option is switched on."); - cbDraftLogAutoSave.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cbDraftLogAutoSaveActionPerformed(evt); - } - }); + cbDraftLogAutoSave.addActionListener(evt -> cbDraftLogAutoSaveActionPerformed(evt)); org.jdesktop.layout.GroupLayout main_gamelogLayout = new org.jdesktop.layout.GroupLayout(main_gamelog); main_gamelog.setLayout(main_gamelogLayout); @@ -1258,75 +1218,47 @@ public class PreferencesDialog extends javax.swing.JDialog { cbStopAttack.setText("Stop on declare attackers step if you skip steps (F4/F5/F7) and attackers are available"); cbStopAttack.setToolTipText("If you use F4, F5 or F7 to skip steps, you stop on declare attackers step if attackers are available. If this option is not activated, you also skip the declare attackers step with this actions. F9 does always skip the declare attackers step."); cbStopAttack.setActionCommand(""); - cbStopAttack.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cbStopAttackActionPerformed(evt); - } - }); + cbStopAttack.addActionListener(evt -> cbStopAttackActionPerformed(evt)); phases_stopSettings.add(cbStopAttack); cbStopBlock.setText("Stop on your declare blockers step also if no blockers available"); cbStopBlock.setToolTipText("Also if you have no blockers to declare, the game stops at the declare blockers step."); cbStopBlock.setActionCommand(""); - cbStopBlock.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cbStopBlockActionPerformed(evt); - } - }); + cbStopBlock.addActionListener(evt -> cbStopBlockActionPerformed(evt)); phases_stopSettings.add(cbStopBlock); cbStopOnAllMain.setText("Skip with F7 to next main phase (if not activated skip always to your next main phase)"); cbStopOnAllMain.setToolTipText("If activated F7 skips to next main phases (regardless of the active players)."); cbStopOnAllMain.setActionCommand(""); - cbStopOnAllMain.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cbStopOnAllMainActionPerformed(evt); - } - }); + cbStopOnAllMain.addActionListener(evt -> cbStopOnAllMainActionPerformed(evt)); phases_stopSettings.add(cbStopOnAllMain); cbStopOnAllEnd.setText("Skip with F5 to next end step (if not activated only to end steps of opponents)"); cbStopOnAllEnd.setToolTipText("If activated - F5 skips to the next end step (regardless of the current player)"); cbStopOnAllEnd.setActionCommand(""); cbStopOnAllEnd.setPreferredSize(new java.awt.Dimension(300, 25)); - cbStopOnAllEnd.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cbStopOnAllEndActionPerformed(evt); - } - }); + cbStopOnAllEnd.addActionListener(evt -> cbStopOnAllEndActionPerformed(evt)); phases_stopSettings.add(cbStopOnAllEnd); cbPassPriorityCast.setText("Pass priority automatically after you have put a spell on the stack"); cbPassPriorityCast.setToolTipText("If activated the system passes priority automatically for you if you have put a spell on the stack."); cbPassPriorityCast.setActionCommand(""); cbPassPriorityCast.setPreferredSize(new java.awt.Dimension(300, 25)); - cbPassPriorityCast.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cbPassPriorityCastActionPerformed(evt); - } - }); + cbPassPriorityCast.addActionListener(evt -> cbPassPriorityCastActionPerformed(evt)); phases_stopSettings.add(cbPassPriorityCast); cbPassPriorityActivation.setText("Pass priority automatically after you have put an activated ability on the stack"); cbPassPriorityActivation.setToolTipText("If activated the system passes priority for you automatically after you have put an activated ability on the stack."); cbPassPriorityActivation.setActionCommand(""); cbPassPriorityActivation.setPreferredSize(new java.awt.Dimension(300, 25)); - cbPassPriorityActivation.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cbPassPriorityActivationActionPerformed(evt); - } - }); + cbPassPriorityActivation.addActionListener(evt -> cbPassPriorityActivationActionPerformed(evt)); phases_stopSettings.add(cbPassPriorityActivation); cbAutoOrderTrigger.setText("Set order for your triggers automatically if all have the same text"); cbAutoOrderTrigger.setToolTipText("If activated the order to put on the stack your triggers that trigger at the same time
\nis set automatically if all have the same text."); cbAutoOrderTrigger.setActionCommand(""); cbAutoOrderTrigger.setPreferredSize(new java.awt.Dimension(300, 25)); - cbAutoOrderTrigger.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cbAutoOrderTriggerActionPerformed(evt); - } - }); + cbAutoOrderTrigger.addActionListener(evt -> cbAutoOrderTriggerActionPerformed(evt)); phases_stopSettings.add(cbAutoOrderTrigger); org.jdesktop.layout.GroupLayout tabPhasesLayout = new org.jdesktop.layout.GroupLayout(tabPhases); @@ -1448,34 +1380,18 @@ public class PreferencesDialog extends javax.swing.JDialog { panelCardImages.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Card images:")); cbUseDefaultImageFolder.setText("Use default location to save images"); - cbUseDefaultImageFolder.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cbUseDefaultImageFolderActionPerformed(evt); - } - }); + cbUseDefaultImageFolder.addActionListener(evt -> cbUseDefaultImageFolderActionPerformed(evt)); txtImageFolderPath.setToolTipText("The selected image will be used as background picture. You have to restart MAGE to view a changed background image."); btnBrowseImageLocation.setText("Browse..."); - btnBrowseImageLocation.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnBrowseImageLocationActionPerformed(evt); - } - }); + btnBrowseImageLocation.addActionListener(evt -> btnBrowseImageLocationActionPerformed(evt)); cbCheckForNewImages.setText("Check for new images on startup"); - cbCheckForNewImages.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cbCheckForNewImagesActionPerformed(evt); - } - }); + cbCheckForNewImages.addActionListener(evt -> cbCheckForNewImagesActionPerformed(evt)); cbSaveToZipFiles.setText("Store images in zip files"); - cbSaveToZipFiles.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cbSaveToZipFilesActionPerformed(evt); - } - }); + cbSaveToZipFiles.addActionListener(evt -> cbSaveToZipFilesActionPerformed(evt)); cbPreferedImageLanguage.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" })); @@ -1546,51 +1462,23 @@ public class PreferencesDialog extends javax.swing.JDialog { panelBackgroundImages.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Background images setting:")); cbUseDefaultBackground.setText("Use default image"); - cbUseDefaultBackground.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cbUseDefaultBackgroundActionPerformed(evt); - } - }); + cbUseDefaultBackground.addActionListener(evt -> cbUseDefaultBackgroundActionPerformed(evt)); - txtBackgroundImagePath.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - txtBackgroundImagePathActionPerformed(evt); - } - }); + txtBackgroundImagePath.addActionListener(evt -> txtBackgroundImagePathActionPerformed(evt)); btnBrowseBackgroundImage.setText("Browse..."); - btnBrowseBackgroundImage.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnBrowseBackgroundImageActionPerformed(evt); - } - }); + btnBrowseBackgroundImage.addActionListener(evt -> btnBrowseBackgroundImageActionPerformed(evt)); - txtBattlefieldImagePath.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - txtBattlefieldImagePathActionPerformed(evt); - } - }); + txtBattlefieldImagePath.addActionListener(evt -> txtBattlefieldImagePathActionPerformed(evt)); btnBrowseBattlefieldImage.setText("Browse..."); - btnBrowseBattlefieldImage.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnBrowseBattlefieldImageActionPerformed(evt); - } - }); + btnBrowseBattlefieldImage.addActionListener(evt -> btnBrowseBattlefieldImageActionPerformed(evt)); cbUseDefaultBattleImage.setText("Use default battlefield image"); - cbUseDefaultBattleImage.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cbUseDefaultBattleImageActionPerformed(evt); - } - }); + cbUseDefaultBattleImage.addActionListener(evt -> cbUseDefaultBattleImageActionPerformed(evt)); cbUseRandomBattleImage.setText("Select random battlefield image"); - cbUseRandomBattleImage.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cbUseRandomBattleImageActionPerformed(evt); - } - }); + cbUseRandomBattleImage.addActionListener(evt -> cbUseRandomBattleImageActionPerformed(evt)); jLabel14.setText("Background:"); @@ -1650,25 +1538,13 @@ public class PreferencesDialog extends javax.swing.JDialog { jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Card rendering:")); cbCardRenderImageFallback.setText("Fall back to plain image based rendering"); - cbCardRenderImageFallback.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cbCardRenderImageFallbackActionPerformed(evt); - } - }); + cbCardRenderImageFallback.addActionListener(evt -> cbCardRenderImageFallbackActionPerformed(evt)); cbCardRenderShowReminderText.setText("Show reminder text in rendered card textboxes"); - cbCardRenderShowReminderText.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cbCardRenderShowReminderTextActionPerformed(evt); - } - }); + cbCardRenderShowReminderText.addActionListener(evt -> cbCardRenderShowReminderTextActionPerformed(evt)); cbCardRenderHideSetSymbol.setText("Hide set symbols on cards (more space on the type line for card types)"); - cbCardRenderHideSetSymbol.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cbCardRenderHideSetSymbolActionPerformed(evt); - } - }); + cbCardRenderHideSetSymbol.addActionListener(evt -> cbCardRenderHideSetSymbolActionPerformed(evt)); org.jdesktop.layout.GroupLayout jPanel1Layout = new org.jdesktop.layout.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout); @@ -1723,38 +1599,22 @@ public class PreferencesDialog extends javax.swing.JDialog { cbEnableGameSounds.setText("Enable game sounds"); cbEnableGameSounds.setToolTipText("Sounds that will be played for certain actions (e.g. play land, attack, etc.) during the game."); - cbEnableGameSounds.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cbEnableGameSoundsActionPerformed(evt); - } - }); + cbEnableGameSounds.addActionListener(evt -> cbEnableGameSoundsActionPerformed(evt)); sounds_clips.add(cbEnableGameSounds); cbEnableDraftSounds.setText("Enable draft sounds"); cbEnableDraftSounds.setToolTipText("Sounds that will be played during drafting for card picking or warining if time runs out."); - cbEnableDraftSounds.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cbEnableDraftSoundsActionPerformed(evt); - } - }); + cbEnableDraftSounds.addActionListener(evt -> cbEnableDraftSoundsActionPerformed(evt)); sounds_clips.add(cbEnableDraftSounds); cbEnableSkipButtonsSounds.setText("Enable skip button sounds"); cbEnableSkipButtonsSounds.setToolTipText("Sounds that will be played if a priority skip action (F4/F5/F7/F9) or cancel skip action (F3) is used."); - cbEnableSkipButtonsSounds.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cbEnableSkipButtonsSoundsActionPerformed(evt); - } - }); + cbEnableSkipButtonsSounds.addActionListener(evt -> cbEnableSkipButtonsSoundsActionPerformed(evt)); sounds_clips.add(cbEnableSkipButtonsSounds); cbEnableOtherSounds.setText("Enable other sounds"); cbEnableOtherSounds.setToolTipText("Sounds that will be played for actions outside of games (e.g. whisper, player joins your game, player submits a deck ...)."); - cbEnableOtherSounds.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cbEnableOtherSoundsActionPerformed(evt); - } - }); + cbEnableOtherSounds.addActionListener(evt -> cbEnableOtherSoundsActionPerformed(evt)); sounds_clips.add(cbEnableOtherSounds); sounds_backgroundMusic.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Music")); @@ -1762,27 +1622,15 @@ public class PreferencesDialog extends javax.swing.JDialog { cbEnableBattlefieldBGM.setText("Play music during match"); cbEnableBattlefieldBGM.setToolTipText("During your matches music will be played from the seleced folder."); cbEnableBattlefieldBGM.setActionCommand("Play automatically during matches"); - cbEnableBattlefieldBGM.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cbEnableBattlefieldBGMActionPerformed(evt); - } - }); + cbEnableBattlefieldBGM.addActionListener(evt -> cbEnableBattlefieldBGMActionPerformed(evt)); jLabel16.setText("Playing from folder:"); jLabel16.setToolTipText(""); - txtBattlefieldIBGMPath.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - txtBattlefieldIBGMPathActionPerformed(evt); - } - }); + txtBattlefieldIBGMPath.addActionListener(evt -> txtBattlefieldIBGMPathActionPerformed(evt)); btnBattlefieldBGMBrowse.setText("Browse..."); - btnBattlefieldBGMBrowse.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnBattlefieldBGMBrowseActionPerformed(evt); - } - }); + btnBattlefieldBGMBrowse.addActionListener(evt -> btnBattlefieldBGMBrowseActionPerformed(evt)); org.jdesktop.layout.GroupLayout sounds_backgroundMusicLayout = new org.jdesktop.layout.GroupLayout(sounds_backgroundMusic); sounds_backgroundMusic.setLayout(sounds_backgroundMusicLayout); @@ -2337,11 +2185,7 @@ public class PreferencesDialog extends javax.swing.JDialog { lblProxyType.setText("Proxy:"); - cbProxyType.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cbProxyTypeActionPerformed(evt); - } - }); + cbProxyType.addActionListener(evt -> cbProxyTypeActionPerformed(evt)); pnlProxySettings.setBorder(javax.swing.BorderFactory.createEtchedBorder()); @@ -2359,18 +2203,10 @@ public class PreferencesDialog extends javax.swing.JDialog { lblProxyPassword.setText("Password:"); - txtPasswordField.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - txtPasswordFieldActionPerformed(evt); - } - }); + txtPasswordField.addActionListener(evt -> txtPasswordFieldActionPerformed(evt)); rememberPswd.setText("Remember Password"); - rememberPswd.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - rememberPswdActionPerformed(evt); - } - }); + rememberPswd.addActionListener(evt -> rememberPswdActionPerformed(evt)); jLabel11.setFont(new java.awt.Font("Tahoma", 2, 10)); // NOI18N jLabel11.setText("Note: password won't be encrypted!"); @@ -2517,11 +2353,7 @@ public class PreferencesDialog extends javax.swing.JDialog { controlsDescriptionLabel.setVerticalAlignment(javax.swing.SwingConstants.TOP); bttnResetControls.setText("Reset to default"); - bttnResetControls.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - bttnResetControlsActionPerformed(evt); - } - }); + bttnResetControls.addActionListener(evt -> bttnResetControlsActionPerformed(evt)); org.jdesktop.layout.GroupLayout tabControlsLayout = new org.jdesktop.layout.GroupLayout(tabControls); tabControls.setLayout(tabControlsLayout); @@ -2613,22 +2445,14 @@ public class PreferencesDialog extends javax.swing.JDialog { saveButton.setMinimumSize(new java.awt.Dimension(100, 30)); saveButton.setPreferredSize(new java.awt.Dimension(100, 30)); saveButton.setVerticalAlignment(javax.swing.SwingConstants.BOTTOM); - saveButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - saveButtonActionPerformed(evt); - } - }); + saveButton.addActionListener(evt -> saveButtonActionPerformed(evt)); exitButton.setText("Exit"); exitButton.setMaximumSize(new java.awt.Dimension(100, 30)); exitButton.setMinimumSize(new java.awt.Dimension(100, 30)); exitButton.setPreferredSize(new java.awt.Dimension(100, 30)); exitButton.setVerticalAlignment(javax.swing.SwingConstants.BOTTOM); - exitButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - exitButtonActionPerformed(evt); - } - }); + exitButton.addActionListener(evt -> exitButtonActionPerformed(evt)); org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane()); getContentPane().setLayout(layout); @@ -3097,7 +2921,7 @@ public class PreferencesDialog extends javax.swing.JDialog { }//GEN-LAST:event_cbCardRenderHideSetSymbolActionPerformed private void bttnResetControlsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bttnResetControlsActionPerformed - getKeybindButtons().stream().forEach((bttn) -> { + getKeybindButtons().forEach((bttn) -> { String id = bttn.getKey(); int keyCode = getDefaultControlKey(id); bttn.setKeyCode(keyCode); @@ -3166,43 +2990,40 @@ public class PreferencesDialog extends javax.swing.JDialog { } } final int openedTab = param; - java.awt.EventQueue.invokeLater(new Runnable() { - @Override - public void run() { - if (!dialog.isVisible()) { - Preferences prefs = MageFrame.getPreferences(); + java.awt.EventQueue.invokeLater(() -> { + if (!dialog.isVisible()) { + Preferences prefs = MageFrame.getPreferences(); - // Main & Phases - loadPhases(prefs); + // Main & Phases + loadPhases(prefs); - // Gui Size - loadGuiSize(prefs); + // Gui Size + loadGuiSize(prefs); - // Images - loadImagesSettings(prefs); + // Images + loadImagesSettings(prefs); - // Sounds - loadSoundSettings(prefs); + // Sounds + loadSoundSettings(prefs); - // Connection - loadProxySettings(prefs); + // Connection + loadProxySettings(prefs); - // Controls - loadControlSettings(prefs); + // Controls + loadControlSettings(prefs); - // Selected avatar - loadSelectedAvatar(prefs); + // Selected avatar + loadSelectedAvatar(prefs); - dialog.reset(); - // open specified tab before displaying - openTab(openedTab); + dialog.reset(); + // open specified tab before displaying + openTab(openedTab); - dialog.setLocation(300, 200); + dialog.setLocation(300, 200); - dialog.setVisible(true); - } else { - dialog.requestFocus(); - } + dialog.setVisible(true); + } else { + dialog.requestFocus(); } }); } diff --git a/Mage.Client/src/main/java/mage/client/dialog/QuestionDialog.java b/Mage.Client/src/main/java/mage/client/dialog/QuestionDialog.java index 0bbb3f17c11..b25a77fc9be 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/QuestionDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/QuestionDialog.java @@ -75,18 +75,10 @@ public class QuestionDialog extends MageDialog { lblQuestion.setText("question"); btnNo.setText("No"); - btnNo.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnNoActionPerformed(evt); - } - }); + btnNo.addActionListener(evt -> btnNoActionPerformed(evt)); btnYes.setText("Yes"); - btnYes.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnYesActionPerformed(evt); - } - }); + btnYes.addActionListener(evt -> btnYesActionPerformed(evt)); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); diff --git a/Mage.Client/src/main/java/mage/client/dialog/RandomPacksSelectorDialog.java b/Mage.Client/src/main/java/mage/client/dialog/RandomPacksSelectorDialog.java index 22deb50a895..da1b709bcfe 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/RandomPacksSelectorDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/RandomPacksSelectorDialog.java @@ -135,19 +135,11 @@ public class RandomPacksSelectorDialog extends javax.swing.JDialog { btnNone.setText("Select none"); btnNone.setActionCommand("none"); - btnNone.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnNoneActionPerformed(evt); - } - }); + btnNone.addActionListener(evt -> btnNoneActionPerformed(evt)); pnlSelect.add(btnNone); btnAll.setText("Select all"); - btnAll.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnAllActionPerformed(evt); - } - }); + btnAll.addActionListener(evt -> btnAllActionPerformed(evt)); pnlSelect.add(btnAll); pnlApply.setLayout(new javax.swing.BoxLayout(pnlApply, javax.swing.BoxLayout.LINE_AXIS)); @@ -158,11 +150,7 @@ public class RandomPacksSelectorDialog extends javax.swing.JDialog { } else if (isRichManDraft) { btnApply.setToolTipText("At least 1 pack must be selected"); } - btnApply.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnApplyActionPerformed(evt); - } - }); + btnApply.addActionListener(evt -> btnApplyActionPerformed(evt)); pnlApply.add(btnApply); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); diff --git a/Mage.Client/src/main/java/mage/client/dialog/RegisterUserDialog.java b/Mage.Client/src/main/java/mage/client/dialog/RegisterUserDialog.java index 44449e8db10..ae99c922426 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/RegisterUserDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/RegisterUserDialog.java @@ -14,7 +14,7 @@ import org.apache.log4j.Logger; public class RegisterUserDialog extends MageDialog { private static final Logger logger = Logger.getLogger(ConnectDialog.class); - private ConnectDialog connectDialog; + private final ConnectDialog connectDialog; private Connection connection; private ConnectTask task; @@ -78,25 +78,13 @@ public class RegisterUserDialog extends MageDialog { lblPassword.setLabelFor(txtPassword); lblPassword.setText("Password:"); - txtUserName.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - txtUserNameActionPerformed(evt); - } - }); + txtUserName.addActionListener(evt -> txtUserNameActionPerformed(evt)); btnRegister.setText("Register"); - btnRegister.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnRegisterActionPerformed(evt); - } - }); + btnRegister.addActionListener(evt -> btnRegisterActionPerformed(evt)); btnCancel.setText("Cancel"); - btnCancel.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnCancelActionPerformed(evt); - } - }); + btnCancel.addActionListener(evt -> btnCancelActionPerformed(evt)); lblStatus.setToolTipText(""); diff --git a/Mage.Client/src/main/java/mage/client/dialog/ResetPasswordDialog.java b/Mage.Client/src/main/java/mage/client/dialog/ResetPasswordDialog.java index e1c2cd65a73..0b99f9a2c89 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/ResetPasswordDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/ResetPasswordDialog.java @@ -14,7 +14,7 @@ import org.apache.log4j.Logger; public class ResetPasswordDialog extends MageDialog { private static final Logger logger = Logger.getLogger(ResetPasswordDialog.class); - private ConnectDialog connectDialog; + private final ConnectDialog connectDialog; private Connection connection; private GetAuthTokenTask getAuthTokenTask; private ResetPasswordTask resetPasswordTask; @@ -88,11 +88,7 @@ public class ResetPasswordDialog extends MageDialog { lblPasswordConfirmation.setText("New password:"); btnSubmitNewPassword.setText("Submit a new password"); - btnSubmitNewPassword.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnSubmitNewPasswordActionPerformed(evt); - } - }); + btnSubmitNewPassword.addActionListener(evt -> btnSubmitNewPasswordActionPerformed(evt)); lblPasswordConfirmationReasoning.setFont(new java.awt.Font("Lucida Grande", 0, 10)); // NOI18N lblPasswordConfirmationReasoning.setLabelFor(txtPasswordConfirmation); @@ -157,11 +153,7 @@ public class ResetPasswordDialog extends MageDialog { lblEmail.setText("Email:"); btnGetAuthToken.setText("Email an auth token"); - btnGetAuthToken.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnGetAuthTokenActionPerformed(evt); - } - }); + btnGetAuthToken.addActionListener(evt -> btnGetAuthTokenActionPerformed(evt)); javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout); @@ -196,11 +188,7 @@ public class ResetPasswordDialog extends MageDialog { ); btnCancel.setText("Cancel"); - btnCancel.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnCancelActionPerformed(evt); - } - }); + btnCancel.addActionListener(evt -> btnCancelActionPerformed(evt)); lblServer.setLabelFor(txtServer); lblServer.setText("Server:"); diff --git a/Mage.Client/src/main/java/mage/client/dialog/ShowCardsDialog.java b/Mage.Client/src/main/java/mage/client/dialog/ShowCardsDialog.java index b66eaf03202..62deb0011a5 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/ShowCardsDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/ShowCardsDialog.java @@ -129,21 +129,18 @@ public class ShowCardsDialog extends MageDialog { this.repaint(); this.setModal(modal); - SwingUtilities.invokeLater(new Runnable() { - @Override - public void run() { - if (!positioned) { - int width = ShowCardsDialog.this.getWidth(); - int height = ShowCardsDialog.this.getHeight(); - if (width > 0 && height > 0) { - Point centered = SettingsManager.getInstance().getComponentPosition(width, height); - ShowCardsDialog.this.setLocation(centered.x, centered.y); - positioned = true; - GuiDisplayUtil.keepComponentInsideScreen(centered.x, centered.y, ShowCardsDialog.this); - } + SwingUtilities.invokeLater(() -> { + if (!positioned) { + int width = ShowCardsDialog.this.getWidth(); + int height = ShowCardsDialog.this.getHeight(); + if (width > 0 && height > 0) { + Point centered = SettingsManager.getInstance().getComponentPosition(width, height); + ShowCardsDialog.this.setLocation(centered.x, centered.y); + positioned = true; + GuiDisplayUtil.keepComponentInsideScreen(centered.x, centered.y, ShowCardsDialog.this); } - ShowCardsDialog.this.setVisible(true); } + ShowCardsDialog.this.setVisible(true); }); } diff --git a/Mage.Client/src/main/java/mage/client/dialog/TableWaitingDialog.java b/Mage.Client/src/main/java/mage/client/dialog/TableWaitingDialog.java index 90c0d5c4113..23300752f43 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/TableWaitingDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/TableWaitingDialog.java @@ -206,34 +206,18 @@ public class TableWaitingDialog extends MageDialog { btnMoveUp.setText("Move Up"); btnMoveUp.setEnabled(false); - btnMoveUp.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnMoveUpActionPerformed(evt); - } - }); + btnMoveUp.addActionListener(evt -> btnMoveUpActionPerformed(evt)); btnMoveDown.setText("Move Down"); btnMoveDown.setEnabled(false); - btnMoveDown.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnMoveDownActionPerformed(evt); - } - }); + btnMoveDown.addActionListener(evt -> btnMoveDownActionPerformed(evt)); btnCancel.setText("Cancel"); - btnCancel.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnCancelActionPerformed(evt); - } - }); + btnCancel.addActionListener(evt -> btnCancelActionPerformed(evt)); btnStart.setText("Start"); btnStart.setEnabled(false); - btnStart.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnStartActionPerformed(evt); - } - }); + btnStart.addActionListener(evt -> btnStartActionPerformed(evt)); jSplitPane1.setDividerLocation(300); jSplitPane1.setDividerSize(3); diff --git a/Mage.Client/src/main/java/mage/client/dialog/UserRequestDialog.java b/Mage.Client/src/main/java/mage/client/dialog/UserRequestDialog.java index e797ab06c40..bfc3238eb9f 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/UserRequestDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/UserRequestDialog.java @@ -35,7 +35,6 @@ package mage.client.dialog; import java.awt.Dimension; import java.awt.Font; import javax.swing.JComponent; -import javax.swing.plaf.basic.BasicInternalFrameTitlePane; import javax.swing.plaf.basic.BasicInternalFrameUI; import mage.client.MageFrame; import mage.client.util.GUISizeHelper; @@ -76,7 +75,7 @@ public class UserRequestDialog extends MageDialog { btn3.setMinimumSize(new Dimension(50 + 4 * font.getSize(), 2 * font.getSize() + 10)); btn3.setMaximumSize(new Dimension(50 + 4 * font.getSize(), 2 * font.getSize() + 10)); btn3.setPreferredSize(new Dimension(50 + 4 * font.getSize(), 2 * font.getSize() + 10)); - JComponent c = (BasicInternalFrameTitlePane) ((BasicInternalFrameUI) this.getUI()).getNorthPane(); + JComponent c = ((BasicInternalFrameUI) this.getUI()).getNorthPane(); c.setMinimumSize(new Dimension(c.getMinimumSize().width, font.getSize() + 10)); c.setMaximumSize(new Dimension(c.getMaximumSize().width, font.getSize() + 10)); c.setPreferredSize(new Dimension(c.getPreferredSize().width, font.getSize() + 10)); @@ -138,31 +137,19 @@ public class UserRequestDialog extends MageDialog { btn3.setMaximumSize(new java.awt.Dimension(150, 50)); btn3.setMinimumSize(new java.awt.Dimension(75, 25)); btn3.setPreferredSize(new java.awt.Dimension(150, 50)); - btn3.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btn3ActionPerformed(evt); - } - }); + btn3.addActionListener(evt -> btn3ActionPerformed(evt)); btn2.setText("btn2"); btn2.setMaximumSize(new java.awt.Dimension(150, 50)); btn2.setMinimumSize(new java.awt.Dimension(75, 25)); btn2.setPreferredSize(new java.awt.Dimension(150, 50)); - btn2.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btn2ActionPerformed(evt); - } - }); + btn2.addActionListener(evt -> btn2ActionPerformed(evt)); btn1.setText("btn1"); btn1.setMaximumSize(new java.awt.Dimension(150, 50)); btn1.setMinimumSize(new java.awt.Dimension(75, 25)); btn1.setPreferredSize(new java.awt.Dimension(150, 50)); - btn1.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btn1ActionPerformed(evt); - } - }); + btn1.addActionListener(evt -> btn1ActionPerformed(evt)); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); diff --git a/Mage.Client/src/main/java/mage/client/draft/DraftPanel.java b/Mage.Client/src/main/java/mage/client/draft/DraftPanel.java index 7abe7279524..a7222635692 100644 --- a/Mage.Client/src/main/java/mage/client/draft/DraftPanel.java +++ b/Mage.Client/src/main/java/mage/client/draft/DraftPanel.java @@ -105,7 +105,7 @@ public class DraftPanel extends javax.swing.JPanel { // all cards picked protected SimpleCardsView pickedCards; // all cards picked - protected SimpleCardsView pickedCardsShown = new SimpleCardsView(); + protected final SimpleCardsView pickedCardsShown = new SimpleCardsView(); // id of card with popup menu protected UUID cardIdPopupMenu; @@ -145,17 +145,14 @@ public class DraftPanel extends javax.swing.JPanel { draftLeftPane.setOpaque(false); countdown = new Timer(1000, - new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - if (--timeout > 0) { - setTimeout(timeout); - } else { - setTimeout(0); - countdown.stop(); + e -> { + if (--timeout > 0) { + setTimeout(timeout); + } else { + setTimeout(0); + countdown.stop(); + } } - } - } ); } @@ -306,18 +303,15 @@ public class DraftPanel extends javax.swing.JPanel { loadCardsToPickedCardsArea(draftPickView.getPicks()); this.draftPicks.clearCardEventListeners(); - this.draftPicks.addCardEventListener(new Listener() { - @Override - public void event(Event event) { - if (event.getEventName().equals("show-popup-menu")) { - if (event.getSource() != null) { - // Popup Menu Card - cardIdPopupMenu = ((SimpleCardView) event.getSource()).getId(); - popupMenuCardPanel.show(event.getComponent(), event.getxPos(), event.getyPos()); - } else { - // Popup Menu area - popupMenuPickedArea.show(event.getComponent(), event.getxPos(), event.getyPos()); - } + this.draftPicks.addCardEventListener((Listener) event -> { + if (event.getEventName().equals("show-popup-menu")) { + if (event.getSource() != null) { + // Popup Menu Card + cardIdPopupMenu = ((SimpleCardView) event.getSource()).getId(); + popupMenuCardPanel.show(event.getComponent(), event.getxPos(), event.getyPos()); + } else { + // Popup Menu area + popupMenuPickedArea.show(event.getComponent(), event.getxPos(), event.getyPos()); } } } @@ -327,25 +321,22 @@ public class DraftPanel extends javax.swing.JPanel { draftBooster.loadBooster(CardsViewUtil.convertSimple(draftPickView.getBooster()), bigCard); this.draftBooster.clearCardEventListeners(); this.draftBooster.addCardEventListener( - new Listener() { - @Override - public void event(Event event) { - if (event.getEventName().equals("pick-a-card")) { - SimpleCardView source = (SimpleCardView) event.getSource(); - DraftPickView view = SessionHandler.sendCardPick(draftId, source.getId(), cardsHidden); - if (view != null) { - loadCardsToPickedCardsArea(view.getPicks()); - draftBooster.loadBooster(EMPTY_VIEW, bigCard); - Plugins.getInstance().getActionCallback().hideOpenComponents(); - setMessage("Waiting for other players"); + (Listener) event -> { + if (event.getEventName().equals("pick-a-card")) { + SimpleCardView source = (SimpleCardView) event.getSource(); + DraftPickView view = SessionHandler.sendCardPick(draftId, source.getId(), cardsHidden); + if (view != null) { + loadCardsToPickedCardsArea(view.getPicks()); + draftBooster.loadBooster(EMPTY_VIEW, bigCard); + Plugins.getInstance().getActionCallback().hideOpenComponents(); + setMessage("Waiting for other players"); + } + } + if (event.getEventName().equals("mark-a-card")) { + SimpleCardView source = (SimpleCardView) event.getSource(); + SessionHandler.sendCardMark(draftId, source.getId()); } } - if (event.getEventName().equals("mark-a-card")) { - SimpleCardView source = (SimpleCardView) event.getSource(); - SessionHandler.sendCardMark(draftId, source.getId()); - } - } - } ); setMessage("Pick a card"); if (!MageFrame.getInstance().isActive()) { @@ -422,12 +413,7 @@ public class DraftPanel extends javax.swing.JPanel { popupMenuPickedArea.add(menuItem); // Confirm (F9) - menuItem.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - showAgainAllHiddenCards(); - } - }); + menuItem.addActionListener(e -> showAgainAllHiddenCards()); // popupMenuPickedArea.addSeparator(); } @@ -440,12 +426,7 @@ public class DraftPanel extends javax.swing.JPanel { popupMenuCardPanel.add(menuItem); // Hide Card - menuItem.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - hideThisCard(cardIdPopupMenu); - } - }); + menuItem.addActionListener(e -> hideThisCard(cardIdPopupMenu)); // popupMenuCardPanel.addSeparator(); } @@ -608,11 +589,7 @@ public class DraftPanel extends javax.swing.JPanel { draftLeftPane.setVerifyInputWhenFocusTarget(false); btnQuitTournament.setText("Quit Tournament"); - btnQuitTournament.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnQuitTournamentActionPerformed(evt); - } - }); + btnQuitTournament.addActionListener(evt -> btnQuitTournamentActionPerformed(evt)); lblPack1.setText("Pack 1:"); diff --git a/Mage.Client/src/main/java/mage/client/game/AbilityPicker.java b/Mage.Client/src/main/java/mage/client/game/AbilityPicker.java index 536e63bd1ae..c06d991b4d6 100644 --- a/Mage.Client/src/main/java/mage/client/game/AbilityPicker.java +++ b/Mage.Client/src/main/java/mage/client/game/AbilityPicker.java @@ -88,7 +88,7 @@ public class AbilityPicker extends JPopupMenu implements PopupMenuListener { private class AbilityPickerAction extends AbstractAction { - private UUID id; + private final UUID id; public AbilityPickerAction(UUID id, String choice) { this.id = id; diff --git a/Mage.Client/src/main/java/mage/client/game/BattlefieldPanel.java b/Mage.Client/src/main/java/mage/client/game/BattlefieldPanel.java index 908a25dc4f8..da32bb08cba 100644 --- a/Mage.Client/src/main/java/mage/client/game/BattlefieldPanel.java +++ b/Mage.Client/src/main/java/mage/client/game/BattlefieldPanel.java @@ -299,13 +299,10 @@ public class BattlefieldPanel extends javax.swing.JLayeredPane { } } else if (comp instanceof MagePermanent) { if (((MagePermanent) comp).getOriginal().getId().equals(permanentId)) { - Thread t = new Thread(new Runnable() { - @Override - public void run() { - Plugins.getInstance().onRemoveCard((MagePermanent) comp, count); - comp.setVisible(false); - BattlefieldPanel.this.jPanel.remove(comp); - } + Thread t = new Thread(() -> { + Plugins.getInstance().onRemoveCard((MagePermanent) comp, count); + comp.setVisible(false); + BattlefieldPanel.this.jPanel.remove(comp); }); t.start(); } diff --git a/Mage.Client/src/main/java/mage/client/game/FeedbackPanel.java b/Mage.Client/src/main/java/mage/client/game/FeedbackPanel.java index 45ee23a874c..5c53cabc321 100644 --- a/Mage.Client/src/main/java/mage/client/game/FeedbackPanel.java +++ b/Mage.Client/src/main/java/mage/client/game/FeedbackPanel.java @@ -52,7 +52,6 @@ import static mage.constants.Constants.Option.ORIGINAL_ID; import static mage.constants.Constants.Option.SECOND_MESSAGE; import static mage.constants.Constants.Option.SPECIAL_BUTTON; import mage.constants.PlayerAction; -import mage.remote.Session; import org.apache.log4j.Logger; /** @@ -184,17 +183,14 @@ public class FeedbackPanel extends javax.swing.JPanel { * Close game window by pressing OK button after 8 seconds */ private void endWithTimeout() { - Runnable task = new Runnable() { - @Override - public void run() { - LOGGER.info("Ending game..."); - Component c = MageFrame.getGame(gameId); - while (c != null && !(c instanceof GamePane)) { - c = c.getParent(); - } - if (c != null && ((GamePane) c).isVisible()) { // check if GamePanel still visible - FeedbackPanel.this.btnRight.doClick(); - } + Runnable task = () -> { + LOGGER.info("Ending game..."); + Component c = MageFrame.getGame(gameId); + while (c != null && !(c instanceof GamePane)) { + c = c.getParent(); + } + if (c != null && c.isVisible()) { // check if GamePanel still visible + FeedbackPanel.this.btnRight.doClick(); } }; WORKER.schedule(task, 8, TimeUnit.SECONDS); @@ -255,36 +251,16 @@ public class FeedbackPanel extends javax.swing.JPanel { setBackground(new java.awt.Color(0, 0, 0, 80)); btnRight.setText("Cancel"); - btnRight.addActionListener(new java.awt.event.ActionListener() { - @Override - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnRightActionPerformed(evt); - } - }); + btnRight.addActionListener(evt -> btnRightActionPerformed(evt)); btnLeft.setText("OK"); - btnLeft.addActionListener(new java.awt.event.ActionListener() { - @Override - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnLeftActionPerformed(evt); - } - }); + btnLeft.addActionListener(evt -> btnLeftActionPerformed(evt)); btnSpecial.setText("Special"); - btnSpecial.addActionListener(new java.awt.event.ActionListener() { - @Override - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnSpecialActionPerformed(evt); - } - }); + btnSpecial.addActionListener(evt -> btnSpecialActionPerformed(evt)); btnUndo.setText("Undo"); - btnUndo.addActionListener(new java.awt.event.ActionListener() { - @Override - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnUndoActionPerformed(evt); - } - }); + btnUndo.addActionListener(evt -> btnUndoActionPerformed(evt)); } diff --git a/Mage.Client/src/main/java/mage/client/game/GamePane.java b/Mage.Client/src/main/java/mage/client/game/GamePane.java index b0c445fdfa1..6e100198521 100644 --- a/Mage.Client/src/main/java/mage/client/game/GamePane.java +++ b/Mage.Client/src/main/java/mage/client/game/GamePane.java @@ -50,12 +50,9 @@ public class GamePane extends MagePane { public GamePane() { this.setDefaultCloseOperation(DISPOSE_ON_CLOSE); initComponents(); - SwingUtilities.invokeLater(new Runnable() { - @Override - public void run() { - gamePanel.setJLayeredPane(getLayeredPane()); - gamePanel.installComponents(); - } + SwingUtilities.invokeLater(() -> { + gamePanel.setJLayeredPane(getLayeredPane()); + gamePanel.installComponents(); }); } diff --git a/Mage.Client/src/main/java/mage/client/game/GamePanel.java b/Mage.Client/src/main/java/mage/client/game/GamePanel.java index b22e28db511..c4fbcc0bd08 100644 --- a/Mage.Client/src/main/java/mage/client/game/GamePanel.java +++ b/Mage.Client/src/main/java/mage/client/game/GamePanel.java @@ -31,7 +31,6 @@ import java.awt.AWTEvent; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; -import static java.awt.Component.LEFT_ALIGNMENT; import java.awt.Container; import java.awt.Dimension; import java.awt.Font; @@ -53,7 +52,6 @@ import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; -import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -263,20 +261,12 @@ public final class GamePanel extends javax.swing.JPanel { } }; - resizeTimer = new Timer(1000, new ActionListener() { - @Override - public void actionPerformed(ActionEvent evt) { - SwingUtilities.invokeLater(new Runnable() { - @Override - public void run() { - resizeTimer.stop(); - setGUISize(); - feedbackPanel.changeGUISize(); + resizeTimer = new Timer(1000, evt -> SwingUtilities.invokeLater(() -> { + resizeTimer.stop(); + setGUISize(); + feedbackPanel.changeGUISize(); - } - }); - } - }); + })); pnlHelperHandButtonsStackArea.addComponentListener(componentAdapterPlayField); initComponents = false; @@ -1124,12 +1114,7 @@ public final class GamePanel extends javax.swing.JPanel { private void removeClosedCardInfoWindows(Map windowMap) { // Remove closed window objects from the maps - for (Iterator> iterator = windowMap.entrySet().iterator(); iterator.hasNext();) { - Map.Entry entry = iterator.next(); - if (entry.getValue().isClosed()) { - iterator.remove(); - } - } + windowMap.entrySet().removeIf(entry -> entry.getValue().isClosed()); } public void ask(String question, GameView gameView, int messageId, Map options) { @@ -1700,20 +1685,10 @@ public final class GamePanel extends javax.swing.JPanel { final BasicSplitPaneUI myUi = (BasicSplitPaneUI) jSplitPane0.getUI(); final BasicSplitPaneDivider divider = myUi.getDivider(); final JButton upArrowButton = (JButton) divider.getComponent(0); - upArrowButton.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent actionEvent) { - PreferencesDialog.saveValue(PreferencesDialog.KEY_BIG_CARD_TOGGLED, "up"); - } - }); + upArrowButton.addActionListener(actionEvent -> PreferencesDialog.saveValue(PreferencesDialog.KEY_BIG_CARD_TOGGLED, "up")); final JButton downArrowButton = (JButton) divider.getComponent(1); - downArrowButton.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent actionEvent) { - PreferencesDialog.saveValue(PreferencesDialog.KEY_BIG_CARD_TOGGLED, "down"); - } - }); + downArrowButton.addActionListener(actionEvent -> PreferencesDialog.saveValue(PreferencesDialog.KEY_BIG_CARD_TOGGLED, "down")); KeyStroke ksAltEReleased = KeyStroke.getKeyStroke(KeyEvent.VK_E, InputEvent.ALT_MASK, true); this.getInputMap(c).put(ksAltEReleased, "ENLARGE_RELEASE"); @@ -1772,44 +1747,19 @@ public final class GamePanel extends javax.swing.JPanel { stackObjects.setBackgroundColor(new Color(0, 0, 0, 40)); btnStopReplay.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/control_stop.png"))); - btnStopReplay.addActionListener(new java.awt.event.ActionListener() { - @Override - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnStopReplayActionPerformed(evt); - } - }); + btnStopReplay.addActionListener(evt -> btnStopReplayActionPerformed(evt)); btnNextPlay.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/control_stop_right.png"))); - btnNextPlay.addActionListener(new java.awt.event.ActionListener() { - @Override - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnNextPlayActionPerformed(evt); - } - }); + btnNextPlay.addActionListener(evt -> btnNextPlayActionPerformed(evt)); btnPlay.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/control_right.png"))); - btnPlay.addActionListener(new java.awt.event.ActionListener() { - @Override - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnPlayActionPerformed(evt); - } - }); + btnPlay.addActionListener(evt -> btnPlayActionPerformed(evt)); btnSkipForward.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/control_double_stop_right.png"))); - btnSkipForward.addActionListener(new java.awt.event.ActionListener() { - @Override - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnSkipForwardActionPerformed(evt); - } - }); + btnSkipForward.addActionListener(evt -> btnSkipForwardActionPerformed(evt)); btnPreviousPlay.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/control_stop_left.png"))); - btnPreviousPlay.addActionListener(new java.awt.event.ActionListener() { - @Override - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnPreviousPlayActionPerformed(evt); - } - }); + btnPreviousPlay.addActionListener(evt -> btnPreviousPlayActionPerformed(evt)); initPopupMenuTriggerOrder(); @@ -2251,21 +2201,18 @@ public final class GamePanel extends javax.swing.JPanel { // Event listener for the ShowCardsDialog private Listener getShowCardsEventListener(final ShowCardsDialog dialog) { - return new Listener() { - @Override - public void event(Event event) { - if (event.getEventName().equals("show-popup-menu")) { - if (event.getComponent() != null && event.getComponent() instanceof CardPanel) { - JPopupMenu menu = ((CardPanel) event.getComponent()).getPopupMenu(); - if (menu != null) { - cardViewPopupMenu = ((CardView) event.getSource()); - menu.show(event.getComponent(), event.getxPos(), event.getyPos()); - } + return (Listener) event -> { + if (event.getEventName().equals("show-popup-menu")) { + if (event.getComponent() != null && event.getComponent() instanceof CardPanel) { + JPopupMenu menu = ((CardPanel) event.getComponent()).getPopupMenu(); + if (menu != null) { + cardViewPopupMenu = ((CardView) event.getSource()); + menu.show(event.getComponent(), event.getxPos(), event.getyPos()); } } - if (event.getEventName().equals("action-consumed")) { - dialog.removeDialog(); - } + } + if (event.getEventName().equals("action-consumed")) { + dialog.removeDialog(); } }; } @@ -2312,12 +2259,7 @@ public final class GamePanel extends javax.swing.JPanel { private void initPopupMenuTriggerOrder() { - ActionListener actionListener = new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - handleTriggerOrderPopupMenuEvent(e); - } - }; + ActionListener actionListener = e -> handleTriggerOrderPopupMenuEvent(e); popupMenuTriggerOrder = new JPopupMenu(); @@ -2366,7 +2308,7 @@ public final class GamePanel extends javax.swing.JPanel { } // Use Cmd on OSX since Ctrl+click is already used to simulate right click - private static int holdPriorityMask = System.getProperty("os.name").contains("Mac OS X") ? InputEvent.META_DOWN_MASK : InputEvent.CTRL_DOWN_MASK; + private static final int holdPriorityMask = System.getProperty("os.name").contains("Mac OS X") ? InputEvent.META_DOWN_MASK : InputEvent.CTRL_DOWN_MASK; public void handleEvent(AWTEvent event) { if (event instanceof InputEvent) { diff --git a/Mage.Client/src/main/java/mage/client/game/HelperPanel.java b/Mage.Client/src/main/java/mage/client/game/HelperPanel.java index 0aae26c5d37..79d3ddb8a6d 100644 --- a/Mage.Client/src/main/java/mage/client/game/HelperPanel.java +++ b/Mage.Client/src/main/java/mage/client/game/HelperPanel.java @@ -48,7 +48,7 @@ import javax.swing.ScrollPaneConstants; import javax.swing.SwingUtilities; import javax.swing.ToolTipManager; import javax.swing.UIManager; -import mage.client.MageFrame; + import mage.client.SessionHandler; import mage.client.components.MageTextArea; import mage.client.game.FeedbackPanel.FeedbackMode; @@ -59,7 +59,6 @@ import static mage.constants.PlayerAction.REQUEST_AUTO_ANSWER_ID_YES; import static mage.constants.PlayerAction.REQUEST_AUTO_ANSWER_RESET_ALL; import static mage.constants.PlayerAction.REQUEST_AUTO_ANSWER_TEXT_NO; import static mage.constants.PlayerAction.REQUEST_AUTO_ANSWER_TEXT_YES; -import mage.remote.Session; /** * Panel with buttons that copy the state of feedback panel. @@ -200,52 +199,30 @@ public class HelperPanel extends JPanel { }; btnLeft.addMouseListener(checkPopupAdapter); - btnLeft.addActionListener(new ActionListener() { - @Override - public void actionPerformed(java.awt.event.ActionEvent evt) { - if (linkLeft != null) { - clickButton(linkLeft); - } + btnLeft.addActionListener(evt -> { + if (linkLeft != null) { + clickButton(linkLeft); } }); btnRight.addMouseListener(checkPopupAdapter); - btnRight.addActionListener(new ActionListener() { - @Override - public void actionPerformed(java.awt.event.ActionEvent evt) { - if (linkRight != null) { - clickButton(linkRight); - } + btnRight.addActionListener(evt -> { + if (linkRight != null) { + clickButton(linkRight); } }); - btnSpecial.addActionListener(new ActionListener() { - @Override - public void actionPerformed(java.awt.event.ActionEvent evt) { - if (linkSpecial != null) { - clickButton(linkSpecial); - } + btnSpecial.addActionListener(evt -> { + if (linkSpecial != null) { + clickButton(linkSpecial); } }); - btnUndo.addActionListener(new java.awt.event.ActionListener() { - @Override - public void actionPerformed(java.awt.event.ActionEvent evt) { - if (linkUndo != null) { - { - Thread worker = new Thread() { - @Override - public void run() { - SwingUtilities.invokeLater(new Runnable() { - @Override - public void run() { - linkUndo.doClick(); - } - }); - } - }; - worker.start(); - } + btnUndo.addActionListener(evt -> { + if (linkUndo != null) { + { + Thread worker = new Thread(() -> SwingUtilities.invokeLater(() -> linkUndo.doClick())); + worker.start(); } } }); @@ -279,19 +256,11 @@ public class HelperPanel extends JPanel { } private void clickButton(final JButton button) { - Thread worker = new Thread() { - @Override - public void run() { - SwingUtilities.invokeLater(new Runnable() { - @Override - public void run() { - setState("", false, "", false, null); - setSpecial("", false); - button.doClick(); - } - }); - } - }; + Thread worker = new Thread(() -> SwingUtilities.invokeLater(() -> { + setState("", false, "", false, null); + setSpecial("", false); + button.doClick(); + })); worker.start(); } @@ -363,12 +332,7 @@ public class HelperPanel extends JPanel { private void initPopupMenuTriggerOrder() { - ActionListener actionListener = new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - handleAutoAnswerPopupMenuEvent(e); - } - }; + ActionListener actionListener = e -> handleAutoAnswerPopupMenuEvent(e); popupMenuAskYes = new JPopupMenu(); popupMenuAskNo = new JPopupMenu(); diff --git a/Mage.Client/src/main/java/mage/client/game/PlayAreaPanel.java b/Mage.Client/src/main/java/mage/client/game/PlayAreaPanel.java index 9c11e67c9c2..8650c9d1758 100644 --- a/Mage.Client/src/main/java/mage/client/game/PlayAreaPanel.java +++ b/Mage.Client/src/main/java/mage/client/game/PlayAreaPanel.java @@ -29,7 +29,6 @@ package mage.client.game; import java.awt.Color; import java.awt.Dimension; -import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.MouseAdapter; @@ -158,44 +157,41 @@ public class PlayAreaPanel extends javax.swing.JPanel { JMenuItem menuItem; - ActionListener skipListener = new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - switch (e.getActionCommand()) { - case "F2": { - if (gamePanel.getFeedbackPanel() != null) { - gamePanel.getFeedbackPanel().pressOKYesOrDone(); - } - break; - } - case "F3": { - SessionHandler.sendPlayerAction(PlayerAction.PASS_PRIORITY_CANCEL_ALL_ACTIONS, gameId, null); - break; - } - case "F4": { - SessionHandler.sendPlayerAction(PlayerAction.PASS_PRIORITY_UNTIL_NEXT_TURN, gameId, null); - break; - } - case "F5": { - SessionHandler.sendPlayerAction(PlayerAction.PASS_PRIORITY_UNTIL_TURN_END_STEP, gameId, null); - break; - } - case "F6": { - SessionHandler.sendPlayerAction(PlayerAction.PASS_PRIORITY_UNTIL_NEXT_TURN_SKIP_STACK, gameId, null); - break; - } - case "F7": { - SessionHandler.sendPlayerAction(PlayerAction.PASS_PRIORITY_UNTIL_NEXT_MAIN_PHASE, gameId, null); - break; - } - case "F9": { - SessionHandler.sendPlayerAction(PlayerAction.PASS_PRIORITY_UNTIL_MY_NEXT_TURN, gameId, null); - break; - } - case "F11": { - SessionHandler.sendPlayerAction(PlayerAction.PASS_PRIORITY_UNTIL_END_STEP_BEFORE_MY_NEXT_TURN, gameId, null); - break; + ActionListener skipListener = e -> { + switch (e.getActionCommand()) { + case "F2": { + if (gamePanel.getFeedbackPanel() != null) { + gamePanel.getFeedbackPanel().pressOKYesOrDone(); } + break; + } + case "F3": { + SessionHandler.sendPlayerAction(PlayerAction.PASS_PRIORITY_CANCEL_ALL_ACTIONS, gameId, null); + break; + } + case "F4": { + SessionHandler.sendPlayerAction(PlayerAction.PASS_PRIORITY_UNTIL_NEXT_TURN, gameId, null); + break; + } + case "F5": { + SessionHandler.sendPlayerAction(PlayerAction.PASS_PRIORITY_UNTIL_TURN_END_STEP, gameId, null); + break; + } + case "F6": { + SessionHandler.sendPlayerAction(PlayerAction.PASS_PRIORITY_UNTIL_NEXT_TURN_SKIP_STACK, gameId, null); + break; + } + case "F7": { + SessionHandler.sendPlayerAction(PlayerAction.PASS_PRIORITY_UNTIL_NEXT_MAIN_PHASE, gameId, null); + break; + } + case "F9": { + SessionHandler.sendPlayerAction(PlayerAction.PASS_PRIORITY_UNTIL_MY_NEXT_TURN, gameId, null); + break; + } + case "F11": { + SessionHandler.sendPlayerAction(PlayerAction.PASS_PRIORITY_UNTIL_END_STEP_BEFORE_MY_NEXT_TURN, gameId, null); + break; } } }; @@ -216,13 +212,10 @@ public class PlayAreaPanel extends javax.swing.JPanel { holdPriorityMenuItem.setMnemonic(KeyEvent.VK_P); holdPriorityMenuItem.setToolTipText("Hold priority after casting a spell or activating an ability, instead of automatically passing priority."); popupMenu.add(holdPriorityMenuItem); - holdPriorityMenuItem.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - boolean holdPriority = ((JCheckBoxMenuItem) e.getSource()).getState(); - gamePanel.setMenuStates(manaPoolMenuItem1.getState(), manaPoolMenuItem2.getState(), useFirstManaAbilityItem.getState(), holdPriority); - gamePanel.holdPriority(holdPriority); - } + holdPriorityMenuItem.addActionListener(e -> { + boolean holdPriority = ((JCheckBoxMenuItem) e.getSource()).getState(); + gamePanel.setMenuStates(manaPoolMenuItem1.getState(), manaPoolMenuItem2.getState(), useFirstManaAbilityItem.getState(), holdPriority); + gamePanel.holdPriority(holdPriority); }); JMenu skipMenu = new JMenu("Skip"); @@ -287,14 +280,11 @@ public class PlayAreaPanel extends javax.swing.JPanel { manaPoolMenu.add(manaPoolMenuItem1); // Auto pay mana from mana pool - manaPoolMenuItem1.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - boolean manaPoolAutomatic = ((JCheckBoxMenuItem) e.getSource()).getState(); - PreferencesDialog.saveValue(KEY_GAME_MANA_AUTOPAYMENT, manaPoolAutomatic ? "true" : "false"); - gamePanel.setMenuStates(manaPoolAutomatic, manaPoolMenuItem2.getState(), useFirstManaAbilityItem.getState(), holdPriorityMenuItem.getState()); - SessionHandler.sendPlayerAction(manaPoolAutomatic ? PlayerAction.MANA_AUTO_PAYMENT_ON : PlayerAction.MANA_AUTO_PAYMENT_OFF, gameId, null); - } + manaPoolMenuItem1.addActionListener(e -> { + boolean manaPoolAutomatic = ((JCheckBoxMenuItem) e.getSource()).getState(); + PreferencesDialog.saveValue(KEY_GAME_MANA_AUTOPAYMENT, manaPoolAutomatic ? "true" : "false"); + gamePanel.setMenuStates(manaPoolAutomatic, manaPoolMenuItem2.getState(), useFirstManaAbilityItem.getState(), holdPriorityMenuItem.getState()); + SessionHandler.sendPlayerAction(manaPoolAutomatic ? PlayerAction.MANA_AUTO_PAYMENT_ON : PlayerAction.MANA_AUTO_PAYMENT_OFF, gameId, null); }); manaPoolMenuItem2 = new JCheckBoxMenuItem("No automatic usage for mana already in the pool", true); @@ -305,14 +295,11 @@ public class PlayAreaPanel extends javax.swing.JPanel { manaPoolMenu.add(manaPoolMenuItem2); // Auto pay mana from mana pool - manaPoolMenuItem2.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - boolean manaPoolAutomaticRestricted = ((JCheckBoxMenuItem) e.getSource()).getState(); - PreferencesDialog.saveValue(KEY_GAME_MANA_AUTOPAYMENT_ONLY_ONE, manaPoolAutomaticRestricted ? "true" : "false"); - gamePanel.setMenuStates(manaPoolMenuItem1.getState(), manaPoolAutomaticRestricted, useFirstManaAbilityItem.getState(), holdPriorityMenuItem.getState()); - SessionHandler.sendPlayerAction(manaPoolAutomaticRestricted ? PlayerAction.MANA_AUTO_PAYMENT_RESTRICTED_ON : PlayerAction.MANA_AUTO_PAYMENT_RESTRICTED_OFF, gameId, null); - } + manaPoolMenuItem2.addActionListener(e -> { + boolean manaPoolAutomaticRestricted = ((JCheckBoxMenuItem) e.getSource()).getState(); + PreferencesDialog.saveValue(KEY_GAME_MANA_AUTOPAYMENT_ONLY_ONE, manaPoolAutomaticRestricted ? "true" : "false"); + gamePanel.setMenuStates(manaPoolMenuItem1.getState(), manaPoolAutomaticRestricted, useFirstManaAbilityItem.getState(), holdPriorityMenuItem.getState()); + SessionHandler.sendPlayerAction(manaPoolAutomaticRestricted ? PlayerAction.MANA_AUTO_PAYMENT_RESTRICTED_ON : PlayerAction.MANA_AUTO_PAYMENT_RESTRICTED_OFF, gameId, null); }); useFirstManaAbilityItem = new JCheckBoxMenuItem("Use first mana ability when tapping lands", false); @@ -323,14 +310,11 @@ public class PlayAreaPanel extends javax.swing.JPanel { manaPoolMenu.add(useFirstManaAbilityItem); // Use first mana ability of lands - useFirstManaAbilityItem.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - boolean useFirstManaAbility = ((JCheckBoxMenuItem) e.getSource()).getState(); - PreferencesDialog.saveValue(KEY_USE_FIRST_MANA_ABILITY, useFirstManaAbility ? "true" : "false"); - gamePanel.setMenuStates(manaPoolMenuItem1.getState(), manaPoolMenuItem2.getState(), useFirstManaAbility, holdPriorityMenuItem.getState()); - SessionHandler.sendPlayerAction(useFirstManaAbility ? PlayerAction.USE_FIRST_MANA_ABILITY_ON : PlayerAction.USE_FIRST_MANA_ABILITY_OFF, gameId, null); - } + useFirstManaAbilityItem.addActionListener(e -> { + boolean useFirstManaAbility = ((JCheckBoxMenuItem) e.getSource()).getState(); + PreferencesDialog.saveValue(KEY_USE_FIRST_MANA_ABILITY, useFirstManaAbility ? "true" : "false"); + gamePanel.setMenuStates(manaPoolMenuItem1.getState(), manaPoolMenuItem2.getState(), useFirstManaAbility, holdPriorityMenuItem.getState()); + SessionHandler.sendPlayerAction(useFirstManaAbility ? PlayerAction.USE_FIRST_MANA_ABILITY_ON : PlayerAction.USE_FIRST_MANA_ABILITY_OFF, gameId, null); }); JMenu automaticConfirmsMenu = new JMenu("Automatic confirms"); @@ -342,36 +326,21 @@ public class PlayAreaPanel extends javax.swing.JPanel { menuItem.setToolTipText("Reset all effects that were added to the list of auto select replacement effects this game."); automaticConfirmsMenu.add(menuItem); // Reset the replacement effcts that were auto selected for the game - menuItem.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - SessionHandler.sendPlayerAction(PlayerAction.RESET_AUTO_SELECT_REPLACEMENT_EFFECTS, gameId, null); - } - }); + menuItem.addActionListener(e -> SessionHandler.sendPlayerAction(PlayerAction.RESET_AUTO_SELECT_REPLACEMENT_EFFECTS, gameId, null)); menuItem = new JMenuItem("Triggered abilities - reset auto stack order"); menuItem.setMnemonic(KeyEvent.VK_T); menuItem.setToolTipText("Deletes all triggered ability order settings you added during the game."); automaticConfirmsMenu.add(menuItem); // Reset the replacement effcts that were auto selected for the game - menuItem.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - SessionHandler.sendPlayerAction(PlayerAction.TRIGGER_AUTO_ORDER_RESET_ALL, gameId, null); - } - }); + menuItem.addActionListener(e -> SessionHandler.sendPlayerAction(PlayerAction.TRIGGER_AUTO_ORDER_RESET_ALL, gameId, null)); menuItem = new JMenuItem("Use requests - reset automatic answers"); menuItem.setMnemonic(KeyEvent.VK_T); menuItem.setToolTipText("Deletes all defined automatic answers for Yes/No usage requests."); automaticConfirmsMenu.add(menuItem); // Reset the replacement effcts that were auto selected for the game - menuItem.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - SessionHandler.sendPlayerAction(PlayerAction.REQUEST_AUTO_ANSWER_RESET_ALL, gameId, null); - } - }); + menuItem.addActionListener(e -> SessionHandler.sendPlayerAction(PlayerAction.REQUEST_AUTO_ANSWER_RESET_ALL, gameId, null)); JMenu handCardsMenu = new JMenu("Cards on hand"); handCardsMenu.setMnemonic(KeyEvent.VK_H); @@ -383,12 +352,7 @@ public class PlayAreaPanel extends javax.swing.JPanel { handCardsMenu.add(menuItem); // Request to see hand cards - menuItem.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - SessionHandler.sendPlayerAction(PlayerAction.REQUEST_PERMISSION_TO_SEE_HAND_CARDS, gameId, playerId); - } - }); + menuItem.addActionListener(e -> SessionHandler.sendPlayerAction(PlayerAction.REQUEST_PERMISSION_TO_SEE_HAND_CARDS, gameId, playerId)); } else { allowViewHandCardsMenuItem = new JCheckBoxMenuItem("Allow requests to show from other users", allowRequestToShowHandCards); allowViewHandCardsMenuItem.setMnemonic(KeyEvent.VK_A); @@ -396,13 +360,10 @@ public class PlayAreaPanel extends javax.swing.JPanel { handCardsMenu.add(allowViewHandCardsMenuItem); // Requests allowed - allowViewHandCardsMenuItem.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - boolean requestsAllowed = ((JCheckBoxMenuItem) e.getSource()).getState(); - PreferencesDialog.setPrefValue(KEY_GAME_ALLOW_REQUEST_SHOW_HAND_CARDS, requestsAllowed); - SessionHandler.sendPlayerAction(requestsAllowed ? PlayerAction.PERMISSION_REQUESTS_ALLOWED_ON : PlayerAction.PERMISSION_REQUESTS_ALLOWED_OFF, gameId, null); - } + allowViewHandCardsMenuItem.addActionListener(e -> { + boolean requestsAllowed = ((JCheckBoxMenuItem) e.getSource()).getState(); + PreferencesDialog.setPrefValue(KEY_GAME_ALLOW_REQUEST_SHOW_HAND_CARDS, requestsAllowed); + SessionHandler.sendPlayerAction(requestsAllowed ? PlayerAction.PERMISSION_REQUESTS_ALLOWED_ON : PlayerAction.PERMISSION_REQUESTS_ALLOWED_OFF, gameId, null); }); menuItem = new JMenuItem("Revoke all permission(s) to see your hand cards"); @@ -411,21 +372,13 @@ public class PlayAreaPanel extends javax.swing.JPanel { handCardsMenu.add(menuItem); // revoke permissions to see hand cards - menuItem.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - SessionHandler.sendPlayerAction(PlayerAction.REVOKE_PERMISSIONS_TO_SEE_HAND_CARDS, gameId, null); - } - }); + menuItem.addActionListener(e -> SessionHandler.sendPlayerAction(PlayerAction.REVOKE_PERMISSIONS_TO_SEE_HAND_CARDS, gameId, null)); } if (options.rollbackTurnsAllowed) { - ActionListener rollBackActionListener = new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - int turnsToRollBack = Integer.parseInt(e.getActionCommand()); - SessionHandler.sendPlayerAction(PlayerAction.ROLLBACK_TURNS, gameId, turnsToRollBack); - } + ActionListener rollBackActionListener = e -> { + int turnsToRollBack = Integer.parseInt(e.getActionCommand()); + SessionHandler.sendPlayerAction(PlayerAction.ROLLBACK_TURNS, gameId, turnsToRollBack); }; JMenu rollbackMainItem = new JMenu("Rollback"); @@ -463,26 +416,23 @@ public class PlayAreaPanel extends javax.swing.JPanel { concedeMenu.setMnemonic(KeyEvent.VK_C); popupMenu.add(concedeMenu); - ActionListener concedeListener = new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - switch (e.getActionCommand()) { - case "Game": { - UserRequestMessage message = new UserRequestMessage("Confirm concede game", "Are you sure you want to concede the game?"); - message.setButton1("No", null); - message.setButton2("Yes", PlayerAction.CLIENT_CONCEDE_GAME); - message.setGameId(gameId); - MageFrame.getInstance().showUserRequestDialog(message); - break; - } - case "Match": { - UserRequestMessage message = new UserRequestMessage("Confirm concede match", "Are you sure you want to concede the complete match?"); - message.setButton1("No", null); - message.setButton2("Yes", PlayerAction.CLIENT_CONCEDE_MATCH); - message.setGameId(gameId); - MageFrame.getInstance().showUserRequestDialog(message); - break; - } + ActionListener concedeListener = e -> { + switch (e.getActionCommand()) { + case "Game": { + UserRequestMessage message = new UserRequestMessage("Confirm concede game", "Are you sure you want to concede the game?"); + message.setButton1("No", null); + message.setButton2("Yes", PlayerAction.CLIENT_CONCEDE_GAME); + message.setGameId(gameId); + MageFrame.getInstance().showUserRequestDialog(message); + break; + } + case "Match": { + UserRequestMessage message = new UserRequestMessage("Confirm concede match", "Are you sure you want to concede the complete match?"); + message.setButton1("No", null); + message.setButton2("Yes", PlayerAction.CLIENT_CONCEDE_MATCH); + message.setGameId(gameId); + MageFrame.getInstance().showUserRequestDialog(message); + break; } } }; @@ -531,27 +481,19 @@ public class PlayAreaPanel extends javax.swing.JPanel { popupMenu.add(menuItem); // Stop watching - menuItem.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - UserRequestMessage message = new UserRequestMessage("Confirm stop watching game", "Are you sure you want to stop watching the game?"); - message.setButton1("No", null); - message.setButton2("Yes", PlayerAction.CLIENT_STOP_WATCHING); - message.setGameId(gameId); - MageFrame.getInstance().showUserRequestDialog(message); - } + menuItem.addActionListener(e -> { + UserRequestMessage message = new UserRequestMessage("Confirm stop watching game", "Are you sure you want to stop watching the game?"); + message.setButton1("No", null); + message.setButton2("Yes", PlayerAction.CLIENT_STOP_WATCHING); + message.setGameId(gameId); + MageFrame.getInstance().showUserRequestDialog(message); }); menuItem = new JMenuItem("Request permission to see hand cards"); popupMenu.add(menuItem); // Request to see hand cards - menuItem.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - SessionHandler.sendPlayerAction(PlayerAction.REQUEST_PERMISSION_TO_SEE_HAND_CARDS, gameId, playerId); - } - }); + menuItem.addActionListener(e -> SessionHandler.sendPlayerAction(PlayerAction.REQUEST_PERMISSION_TO_SEE_HAND_CARDS, gameId, playerId)); battlefieldPanel.getMainPanel().addMouseListener(new MouseAdapter() { @Override @@ -610,12 +552,7 @@ public class PlayAreaPanel extends javax.swing.JPanel { battlefieldPanel.setTopPanelBattlefield(options.topRow); btnCheat.setText("Cheat"); - btnCheat.addActionListener(new java.awt.event.ActionListener() { - @Override - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnCheatActionPerformed(evt); - } - }); + btnCheat.addActionListener(evt -> btnCheatActionPerformed(evt)); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); layout.setHorizontalGroup( diff --git a/Mage.Client/src/main/java/mage/client/game/PlayerPanelExt.java b/Mage.Client/src/main/java/mage/client/game/PlayerPanelExt.java index 27aedcf959a..8c228cf300d 100644 --- a/Mage.Client/src/main/java/mage/client/game/PlayerPanelExt.java +++ b/Mage.Client/src/main/java/mage/client/game/PlayerPanelExt.java @@ -38,8 +38,6 @@ import java.awt.Dimension; import java.awt.Font; import java.awt.Image; import java.awt.Rectangle; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; import java.awt.image.BufferedImage; import java.util.HashMap; import java.util.LinkedHashSet; @@ -58,7 +56,7 @@ import javax.swing.LayoutStyle.ComponentPlacement; import javax.swing.SwingConstants; import javax.swing.border.Border; import javax.swing.border.LineBorder; -import mage.MageException; + import mage.cards.decks.importer.DckDeckImporter; import mage.client.MageFrame; import mage.client.SessionHandler; @@ -68,7 +66,6 @@ import mage.client.components.MageRoundPane; import mage.client.components.ext.dlg.DialogManager; import mage.client.dialog.PreferencesDialog; import mage.client.util.CardsViewUtil; -import mage.client.util.Command; import mage.client.util.ImageHelper; import mage.client.util.gui.BufferedImageBuilder; import mage.client.util.gui.countryBox.CountryUtil; @@ -141,22 +138,16 @@ public class PlayerPanelExt extends javax.swing.JPanel { if (priorityTime > 0) { long delay = 1000L; - timer = new PriorityTimer(priorityTime, delay, new mage.interfaces.Action() { - @Override - public void execute() throws MageException { - // do nothing - } + timer = new PriorityTimer(priorityTime, delay, () -> { + // do nothing }); final PriorityTimer pt = timer; - timer.setTaskOnTick(new mage.interfaces.Action() { - @Override - public void execute() throws MageException { - int priorityTimeValue = pt.getCount(); - String text = getPriorityTimeLeftString(priorityTimeValue); - PlayerPanelExt.this.avatar.setTopText(text); - PlayerPanelExt.this.timerLabel.setText(text); - PlayerPanelExt.this.avatar.repaint(); - } + timer.setTaskOnTick(() -> { + int priorityTimeValue = pt.getCount(); + String text = getPriorityTimeLeftString(priorityTimeValue); + PlayerPanelExt.this.avatar.setTopText(text); + PlayerPanelExt.this.timerLabel.setText(text); + PlayerPanelExt.this.avatar.repaint(); }); timer.init(gameId); } @@ -414,12 +405,7 @@ public class PlayerPanelExt extends javax.swing.JPanel { avatar.setTextAlwaysVisible(true); } avatar.setTextOffsetButtonY(10); - avatar.setObserver(new Command() { - @Override - public void execute() { - SessionHandler.sendPlayerUUID(gameId, playerId); - } - }); + avatar.setObserver(() -> SessionHandler.sendPlayerUUID(gameId, playerId)); // timer area /small layout) timerLabel.setToolTipText("Time left"); @@ -462,12 +448,7 @@ public class PlayerPanelExt extends javax.swing.JPanel { library = new HoverButton(null, resizedLibrary, resizedLibrary, resizedLibrary, r); library.setToolTipText("Library"); library.setOpaque(false); - library.setObserver(new Command() { - @Override - public void execute() { - btnLibraryActionPerformed(null); - } - }); + library.setObserver(() -> btnLibraryActionPerformed(null)); // Grave count and open graveyard button r = new Rectangle(21, 21); @@ -478,12 +459,7 @@ public class PlayerPanelExt extends javax.swing.JPanel { grave = new HoverButton(null, resizedGrave, resizedGrave, resizedGrave, r); grave.setToolTipText("Graveyard"); grave.setOpaque(false); - grave.setObserver(new Command() { - @Override - public void execute() { - btnGraveActionPerformed(null); - } - }); + grave.setObserver(() -> btnGraveActionPerformed(null)); exileLabel = new JLabel(); exileLabel.setToolTipText("Exile"); @@ -493,12 +469,7 @@ public class PlayerPanelExt extends javax.swing.JPanel { exileZone = new HoverButton(null, resized, resized, resized, r); exileZone.setToolTipText("Exile"); exileZone.setOpaque(false); - exileZone.setObserver(new Command() { - @Override - public void execute() { - btnExileZoneActionPerformed(null); - } - }); + exileZone.setObserver(() -> btnExileZoneActionPerformed(null)); exileZone.setBounds(25, 0, 21, 21); // Cheat button @@ -508,12 +479,7 @@ public class PlayerPanelExt extends javax.swing.JPanel { cheat = new JButton(); cheat.setIcon(new ImageIcon(resized)); cheat.setToolTipText("Cheat button"); - cheat.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - btnCheatActionPerformed(e); - } - }); + cheat.addActionListener(e -> btnCheatActionPerformed(e)); zonesPanel = new JPanel(); zonesPanel.setPreferredSize(new Dimension(100, 60)); @@ -527,12 +493,7 @@ public class PlayerPanelExt extends javax.swing.JPanel { commandZone = new HoverButton(null, resized, resized, resized, r); commandZone.setToolTipText("Command Zone (Commander and Emblems)"); commandZone.setOpaque(false); - commandZone.setObserver(new Command() { - @Override - public void execute() { - btnCommandZoneActionPerformed(null); - } - }); + commandZone.setObserver(() -> btnCommandZoneActionPerformed(null)); commandZone.setBounds(5, 0, 21, 21); zonesPanel.add(commandZone); @@ -569,12 +530,7 @@ public class PlayerPanelExt extends javax.swing.JPanel { btnPlayer.setText("Player"); btnPlayer.setVisible(false); btnPlayer.setToolTipText("Player"); - btnPlayer.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - SessionHandler.sendPlayerUUID(gameId, playerId); - } - }); + btnPlayer.addActionListener(e -> SessionHandler.sendPlayerUUID(gameId, playerId)); // Add mana symbols JLabel manaCountLabelW = new JLabel(); @@ -587,12 +543,7 @@ public class PlayerPanelExt extends javax.swing.JPanel { btnWhiteMana.setToolTipText("White mana"); btnWhiteMana.setOpaque(false); - btnWhiteMana.setObserver(new Command() { - @Override - public void execute() { - btnManaActionPerformed(ManaType.WHITE); - } - }); + btnWhiteMana.setObserver(() -> btnManaActionPerformed(ManaType.WHITE)); JLabel manaCountLabelU = new JLabel(); manaCountLabelU.setToolTipText("Blue mana"); @@ -603,12 +554,7 @@ public class PlayerPanelExt extends javax.swing.JPanel { HoverButton btnBlueMana = new HoverButton(null, imageManaU, imageManaU, imageManaU, r); btnBlueMana.setToolTipText("Blue mana"); btnBlueMana.setOpaque(false); - btnBlueMana.setObserver(new Command() { - @Override - public void execute() { - btnManaActionPerformed(ManaType.BLUE); - } - }); + btnBlueMana.setObserver(() -> btnManaActionPerformed(ManaType.BLUE)); JLabel manaCountLabelB = new JLabel(); manaCountLabelB.setToolTipText("Black mana"); @@ -619,12 +565,7 @@ public class PlayerPanelExt extends javax.swing.JPanel { HoverButton btnBlackMana = new HoverButton(null, imageManaB, imageManaB, imageManaB, r); btnBlackMana.setToolTipText("Black mana"); btnBlackMana.setOpaque(false); - btnBlackMana.setObserver(new Command() { - @Override - public void execute() { - btnManaActionPerformed(ManaType.BLACK); - } - }); + btnBlackMana.setObserver(() -> btnManaActionPerformed(ManaType.BLACK)); JLabel manaCountLabelR = new JLabel(); manaCountLabelR.setToolTipText("Red mana"); @@ -635,12 +576,7 @@ public class PlayerPanelExt extends javax.swing.JPanel { HoverButton btnRedMana = new HoverButton(null, imageManaR, imageManaR, imageManaR, r); btnRedMana.setToolTipText("Red mana"); btnRedMana.setOpaque(false); - btnRedMana.setObserver(new Command() { - @Override - public void execute() { - btnManaActionPerformed(ManaType.RED); - } - }); + btnRedMana.setObserver(() -> btnManaActionPerformed(ManaType.RED)); JLabel manaCountLabelG = new JLabel(); manaCountLabelG.setToolTipText("Green mana"); @@ -651,12 +587,7 @@ public class PlayerPanelExt extends javax.swing.JPanel { HoverButton btnGreenMana = new HoverButton(null, imageManaG, imageManaG, imageManaG, r); btnGreenMana.setToolTipText("Green mana"); btnGreenMana.setOpaque(false); - btnGreenMana.setObserver(new Command() { - @Override - public void execute() { - btnManaActionPerformed(ManaType.GREEN); - } - }); + btnGreenMana.setObserver(() -> btnManaActionPerformed(ManaType.GREEN)); JLabel manaCountLabelX = new JLabel(); manaCountLabelX.setToolTipText("Colorless mana"); @@ -667,12 +598,7 @@ public class PlayerPanelExt extends javax.swing.JPanel { HoverButton btnColorlessMana = new HoverButton(null, imageManaX, imageManaX, imageManaX, r); btnColorlessMana.setToolTipText("Colorless mana"); btnColorlessMana.setOpaque(false); - btnColorlessMana.setObserver(new Command() { - @Override - public void execute() { - btnManaActionPerformed(ManaType.COLORLESS); - } - }); + btnColorlessMana.setObserver(() -> btnManaActionPerformed(ManaType.COLORLESS)); GroupLayout gl_panelBackground = new GroupLayout(panelBackground); gl_panelBackground.setHorizontalGroup( diff --git a/Mage.Client/src/main/java/mage/client/plugins/adapters/MageActionCallback.java b/Mage.Client/src/main/java/mage/client/plugins/adapters/MageActionCallback.java index f9eeb6d5cd2..396af68d13f 100644 --- a/Mage.Client/src/main/java/mage/client/plugins/adapters/MageActionCallback.java +++ b/Mage.Client/src/main/java/mage/client/plugins/adapters/MageActionCallback.java @@ -7,8 +7,6 @@ import java.awt.event.MouseEvent; import java.awt.event.MouseWheelEvent; import java.awt.image.BufferedImage; import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; import java.util.Date; import java.util.HashSet; import java.util.List; @@ -177,24 +175,21 @@ public class MageActionCallback implements ActionCallback { public void showPopup(final Component popupContainer, final Component infoPane) throws InterruptedException { final Component c = MageFrame.getUI().getComponent(MageComponents.DESKTOP_PANE); - SwingUtilities.invokeLater(new Runnable() { - @Override - public void run() { - if (!popupTextWindowOpen - || !enlargedWindowState.equals(EnlargedWindowState.CLOSED)) { - return; - } - if (data.locationOnScreen == null) { - data.locationOnScreen = data.component.getLocationOnScreen(); - } - - Point location = new Point((int) data.locationOnScreen.getX() + data.popupOffsetX - 40, (int) data.locationOnScreen.getY() + data.popupOffsetY - 40); - location = GuiDisplayUtil.keepComponentInsideParent(location, parentPoint, infoPane, parentComponent); - location.translate(-parentPoint.x, -parentPoint.y); - popupContainer.setLocation(location); - popupContainer.setVisible(true); - c.repaint(); + SwingUtilities.invokeLater(() -> { + if (!popupTextWindowOpen + || !enlargedWindowState.equals(EnlargedWindowState.CLOSED)) { + return; } + if (data.locationOnScreen == null) { + data.locationOnScreen = data.component.getLocationOnScreen(); + } + + Point location = new Point((int) data.locationOnScreen.getX() + data.popupOffsetX - 40, (int) data.locationOnScreen.getY() + data.popupOffsetY - 40); + location = GuiDisplayUtil.keepComponentInsideParent(location, parentPoint, infoPane, parentComponent); + location.translate(-parentPoint.x, -parentPoint.y); + popupContainer.setLocation(location); + popupContainer.setVisible(true); + c.repaint(); } ); } @@ -257,7 +252,7 @@ public class MageActionCallback implements ActionCallback { if (this.startedDragging && prevCardPanel != null && card != null) { for (Component component : card.getCardArea().getComponents()) { if (component instanceof CardPanel) { - if (cardPanels.contains((CardPanel) component)) { + if (cardPanels.contains(component)) { component.setLocation(component.getLocation().x, component.getLocation().y - GO_DOWN_ON_DRAG_Y_OFFSET); } } @@ -331,7 +326,7 @@ public class MageActionCallback implements ActionCallback { for (Component component : container.getComponents()) { if (component instanceof CardPanel) { if (!component.equals(card)) { - if (!cardPanels.contains((CardPanel) component)) { + if (!cardPanels.contains(component)) { component.setLocation(component.getLocation().x, component.getLocation().y + GO_DOWN_ON_DRAG_Y_OFFSET); } cardPanels.add((CardPanel) component); @@ -347,12 +342,7 @@ public class MageActionCallback implements ActionCallback { private void sortLayout(List cards, CardPanel source, boolean includeSource) { source.getLocation().x -= COMPARE_GAP_X; // this creates nice effect - Collections.sort(cards, new Comparator() { - @Override - public int compare(CardPanel cp1, CardPanel cp2) { - return Integer.valueOf(cp1.getLocation().x).compareTo(cp2.getLocation().x); - } - }); + cards.sort((cp1, cp2) -> Integer.valueOf(cp1.getLocation().x).compareTo(cp2.getLocation().x)); int dx = 0; boolean createdGapForSource = false; @@ -540,78 +530,75 @@ public class MageActionCallback implements ActionCallback { } private void displayEnlargedCard(final CardView cardView, final TransferData transferData) { - ThreadUtils.threadPool3.submit(new Runnable() { - @Override - public void run() { - if (cardView == null) { + ThreadUtils.threadPool3.submit(() -> { + if (cardView == null) { + return; + } + try { + if (enlargedWindowState.equals(EnlargedWindowState.CLOSED)) { return; } - try { - if (enlargedWindowState.equals(EnlargedWindowState.CLOSED)) { - return; + + MageComponents mageComponentCardPreviewContainer; + MageComponents mageComponentCardPreviewPane; + if (cardView.isToRotate()) { + if (enlargedWindowState.equals(EnlargedWindowState.NORMAL)) { + hideEnlargedCard(); + enlargedWindowState = EnlargedWindowState.ROTATED; } - - MageComponents mageComponentCardPreviewContainer; - MageComponents mageComponentCardPreviewPane; - if (cardView.isToRotate()) { - if (enlargedWindowState.equals(EnlargedWindowState.NORMAL)) { - hideEnlargedCard(); - enlargedWindowState = EnlargedWindowState.ROTATED; - } - mageComponentCardPreviewContainer = MageComponents.CARD_PREVIEW_CONTAINER_ROTATED; - mageComponentCardPreviewPane = MageComponents.CARD_PREVIEW_PANE_ROTATED; - } else { - if (enlargedWindowState.equals(EnlargedWindowState.ROTATED)) { - hideEnlargedCard(); - enlargedWindowState = EnlargedWindowState.NORMAL; - } - mageComponentCardPreviewContainer = MageComponents.CARD_PREVIEW_CONTAINER; - mageComponentCardPreviewPane = MageComponents.CARD_PREVIEW_PANE; + mageComponentCardPreviewContainer = MageComponents.CARD_PREVIEW_CONTAINER_ROTATED; + mageComponentCardPreviewPane = MageComponents.CARD_PREVIEW_PANE_ROTATED; + } else { + if (enlargedWindowState.equals(EnlargedWindowState.ROTATED)) { + hideEnlargedCard(); + enlargedWindowState = EnlargedWindowState.NORMAL; } - final Component popupContainer = MageFrame.getUI().getComponent(mageComponentCardPreviewContainer); - Component cardPreviewPane = MageFrame.getUI().getComponent(mageComponentCardPreviewPane); - Component parentComponent = SwingUtilities.getRoot(transferData.component); - if (cardPreviewPane != null && parentComponent != null) { - Point parentPoint = parentComponent.getLocationOnScreen(); - transferData.locationOnScreen = transferData.component.getLocationOnScreen(); - Point location = new Point((int) transferData.locationOnScreen.getX() + transferData.popupOffsetX - 40, (int) transferData.locationOnScreen.getY() + transferData.popupOffsetY - 40); - location = GuiDisplayUtil.keepComponentInsideParent(location, parentPoint, cardPreviewPane, parentComponent); - location.translate(-parentPoint.x, -parentPoint.y); - popupContainer.setLocation(location); - popupContainer.setVisible(true); - - MageCard mageCard = (MageCard) transferData.component; - Image image = null; - switch (enlargeMode) { - case COPY: - if (cardView instanceof PermanentView) { - image = ImageCache.getImageOriginal(((PermanentView) cardView).getOriginal()); - } - break; - case ALTERNATE: - if (cardView.getAlternateName() != null) { - if (cardView instanceof PermanentView && !cardView.isFlipCard() && !cardView.canTransform() && ((PermanentView) cardView).isCopy()) { - image = ImageCache.getImageOriginal(((PermanentView) cardView).getOriginal()); - } else { - image = ImageCache.getImageOriginalAlternateName(cardView); - } - } - break; - } - if (image == null) { - image = mageCard.getImage(); - } - // shows the card in the popup Container - BigCard bigCard = (BigCard) cardPreviewPane; - displayCardInfo(mageCard, image, bigCard); - - } else { - LOGGER.warn("No Card preview Pane in Mage Frame defined. Card: " + cardView.getName()); - } - - } catch (Exception e) { - LOGGER.warn("Problem dring display of enlarged card", e); + mageComponentCardPreviewContainer = MageComponents.CARD_PREVIEW_CONTAINER; + mageComponentCardPreviewPane = MageComponents.CARD_PREVIEW_PANE; } + final Component popupContainer = MageFrame.getUI().getComponent(mageComponentCardPreviewContainer); + Component cardPreviewPane = MageFrame.getUI().getComponent(mageComponentCardPreviewPane); + Component parentComponent = SwingUtilities.getRoot(transferData.component); + if (cardPreviewPane != null && parentComponent != null) { + Point parentPoint = parentComponent.getLocationOnScreen(); + transferData.locationOnScreen = transferData.component.getLocationOnScreen(); + Point location = new Point((int) transferData.locationOnScreen.getX() + transferData.popupOffsetX - 40, (int) transferData.locationOnScreen.getY() + transferData.popupOffsetY - 40); + location = GuiDisplayUtil.keepComponentInsideParent(location, parentPoint, cardPreviewPane, parentComponent); + location.translate(-parentPoint.x, -parentPoint.y); + popupContainer.setLocation(location); + popupContainer.setVisible(true); + + MageCard mageCard = (MageCard) transferData.component; + Image image = null; + switch (enlargeMode) { + case COPY: + if (cardView instanceof PermanentView) { + image = ImageCache.getImageOriginal(((PermanentView) cardView).getOriginal()); + } + break; + case ALTERNATE: + if (cardView.getAlternateName() != null) { + if (cardView instanceof PermanentView && !cardView.isFlipCard() && !cardView.canTransform() && ((PermanentView) cardView).isCopy()) { + image = ImageCache.getImageOriginal(((PermanentView) cardView).getOriginal()); + } else { + image = ImageCache.getImageOriginalAlternateName(cardView); + } + } + break; + } + if (image == null) { + image = mageCard.getImage(); + } + // shows the card in the popup Container + BigCard bigCard = (BigCard) cardPreviewPane; + displayCardInfo(mageCard, image, bigCard); + + } else { + LOGGER.warn("No Card preview Pane in Mage Frame defined. Card: " + cardView.getName()); + } + + } catch (Exception e) { + LOGGER.warn("Problem dring display of enlarged card", e); } }); } @@ -637,12 +624,7 @@ public class MageActionCallback implements ActionCallback { private synchronized void startHideTimeout() { cancelTimeout(); - hideTimeout = timeoutExecutor.schedule(new Runnable() { - @Override - public void run() { - hideEnlargedCard(); - } - }, 700, TimeUnit.MILLISECONDS); + hideTimeout = timeoutExecutor.schedule(this::hideEnlargedCard, 700, TimeUnit.MILLISECONDS); } private synchronized void cancelTimeout() { diff --git a/Mage.Client/src/main/java/mage/client/remote/CallbackClientImpl.java b/Mage.Client/src/main/java/mage/client/remote/CallbackClientImpl.java index 9d35070675e..a5b8bcd5571 100644 --- a/Mage.Client/src/main/java/mage/client/remote/CallbackClientImpl.java +++ b/Mage.Client/src/main/java/mage/client/remote/CallbackClientImpl.java @@ -79,302 +79,299 @@ public class CallbackClientImpl implements CallbackClient { public synchronized void processCallback(final ClientCallback callback) { SaveObjectUtil.saveObject(callback.getData(), callback.getMethod()); callback.setData(CompressUtil.decompress(callback.getData())); - SwingUtilities.invokeLater(new Runnable() { - @Override - public void run() { - try { - logger.debug(callback.getMessageId() + " -- " + callback.getMethod()); - switch (callback.getMethod()) { - case "startGame": { - TableClientMessage message = (TableClientMessage) callback.getData(); - GameManager.getInstance().setCurrentPlayerUUID(message.getPlayerId()); - gameStarted(message.getGameId(), message.getPlayerId()); - break; + SwingUtilities.invokeLater(() -> { + try { + logger.debug(callback.getMessageId() + " -- " + callback.getMethod()); + switch (callback.getMethod()) { + case "startGame": { + TableClientMessage message = (TableClientMessage) callback.getData(); + GameManager.getInstance().setCurrentPlayerUUID(message.getPlayerId()); + gameStarted(message.getGameId(), message.getPlayerId()); + break; + } + case "startTournament": { + TableClientMessage message = (TableClientMessage) callback.getData(); + tournamentStarted(message.getGameId(), message.getPlayerId()); + break; + } + case "startDraft": { + TableClientMessage message = (TableClientMessage) callback.getData(); + draftStarted(message.getGameId(), message.getPlayerId()); + break; + } + case "replayGame": + replayGame(callback.getObjectId()); + break; + case "showTournament": + showTournament(callback.getObjectId()); + break; + case "watchGame": + watchGame(callback.getObjectId()); + break; + case "chatMessage": { + ChatMessage message = (ChatMessage) callback.getData(); + ChatPanelBasic panel = MageFrame.getChat(callback.getObjectId()); + if (panel != null) { + // play the sound related to the message + if (message.getSoundToPlay() != null) { + switch (message.getSoundToPlay()) { + case PlayerLeft: + AudioManager.playPlayerLeft(); + break; + case PlayerQuitTournament: + AudioManager.playPlayerQuitTournament(); + break; + case PlayerSubmittedDeck: + AudioManager.playPlayerSubmittedDeck(); + break; + case PlayerWhispered: + AudioManager.playPlayerWhispered(); + break; + } + } + // send start message to chat if not done yet + if (!panel.isStartMessageDone()) { + createChatStartMessage(panel); + } + // send the message to subchat if exists and it's not a game message + if (!message.getMessageType().equals(MessageType.GAME) && panel.getConnectedChat() != null) { + panel.getConnectedChat().receiveMessage(message.getUsername(), message.getMessage(), message.getTime(), message.getMessageType(), ChatMessage.MessageColor.BLACK); + } else { + panel.receiveMessage(message.getUsername(), message.getMessage(), message.getTime(), message.getMessageType(), message.getColor()); + } + } - case "startTournament": { - TableClientMessage message = (TableClientMessage) callback.getData(); - tournamentStarted(message.getGameId(), message.getPlayerId()); - break; - } - case "startDraft": { - TableClientMessage message = (TableClientMessage) callback.getData(); - draftStarted(message.getGameId(), message.getPlayerId()); - break; - } - case "replayGame": - replayGame(callback.getObjectId()); - break; - case "showTournament": - showTournament(callback.getObjectId()); - break; - case "watchGame": - watchGame(callback.getObjectId()); - break; - case "chatMessage": { + break; + } + case "serverMessage": + if (callback.getData() != null) { ChatMessage message = (ChatMessage) callback.getData(); - ChatPanelBasic panel = MageFrame.getChat(callback.getObjectId()); - if (panel != null) { - // play the sound related to the message - if (message.getSoundToPlay() != null) { - switch (message.getSoundToPlay()) { - case PlayerLeft: - AudioManager.playPlayerLeft(); - break; - case PlayerQuitTournament: - AudioManager.playPlayerQuitTournament(); - break; - case PlayerSubmittedDeck: - AudioManager.playPlayerSubmittedDeck(); - break; - case PlayerWhispered: - AudioManager.playPlayerWhispered(); - break; - } - } - // send start message to chat if not done yet - if (!panel.isStartMessageDone()) { - createChatStartMessage(panel); - } - // send the message to subchat if exists and it's not a game message - if (!message.getMessageType().equals(MessageType.GAME) && panel.getConnectedChat() != null) { - panel.getConnectedChat().receiveMessage(message.getUsername(), message.getMessage(), message.getTime(), message.getMessageType(), ChatMessage.MessageColor.BLACK); - } else { - panel.receiveMessage(message.getUsername(), message.getMessage(), message.getTime(), message.getMessageType(), message.getColor()); - } + if (message.getColor().equals(ChatMessage.MessageColor.RED)) { + JOptionPane.showMessageDialog(null, message.getMessage(), "Server message", JOptionPane.WARNING_MESSAGE); + } else { + JOptionPane.showMessageDialog(null, message.getMessage(), "Server message", JOptionPane.INFORMATION_MESSAGE); + } + } + break; + case "joinedTable": { + TableClientMessage message = (TableClientMessage) callback.getData(); + joinedTable(message.getRoomId(), message.getTableId(), message.getFlag()); + break; + } + case "replayInit": { + GamePanel panel = MageFrame.getGame(callback.getObjectId()); + if (panel != null) { + panel.init((GameView) callback.getData()); + } + break; + } + case "replayDone": { + GamePanel panel = MageFrame.getGame(callback.getObjectId()); + if (panel != null) { + panel.endMessage((String) callback.getData(), callback.getMessageId()); + } + break; + } + case "replayUpdate": { + GamePanel panel = MageFrame.getGame(callback.getObjectId()); + if (panel != null) { + panel.updateGame((GameView) callback.getData()); + } + break; + } + case "gameInit": { + GamePanel panel = MageFrame.getGame(callback.getObjectId()); + if (panel != null) { + panel.init((GameView) callback.getData()); + } + break; + } + case "gameOver": { + GamePanel panel = MageFrame.getGame(callback.getObjectId()); + if (panel != null) { + panel.endMessage((String) callback.getData(), callback.getMessageId()); + } + break; + } + case "gameError": + frame.showErrorDialog("Game Error", (String) callback.getData()); + break; + case "gameAsk": { + GameClientMessage message = (GameClientMessage) callback.getData(); + GamePanel panel = MageFrame.getGame(callback.getObjectId()); + if (panel != null) { + panel.ask(message.getMessage(), message.getGameView(), callback.getMessageId(), message.getOptions()); + } + break; + } + case "gameTarget": // e.g. Pick triggered ability + { + GameClientMessage message = (GameClientMessage) callback.getData(); + GamePanel panel = MageFrame.getGame(callback.getObjectId()); + if (panel != null) { + panel.pickTarget(message.getMessage(), message.getCardsView(), message.getGameView(), + message.getTargets(), message.isFlag(), message.getOptions(), callback.getMessageId()); + } + break; + } + case "gameSelect": { + GameClientMessage message = (GameClientMessage) callback.getData(); + GamePanel panel = MageFrame.getGame(callback.getObjectId()); + if (panel != null) { + panel.select(message.getMessage(), message.getGameView(), callback.getMessageId(), message.getOptions()); + } + break; + } + case "gameChooseAbility": { + GamePanel panel = MageFrame.getGame(callback.getObjectId()); + if (panel != null) { + panel.pickAbility((AbilityPickerView) callback.getData()); + } + break; + } + case "gameChoosePile": { + GameClientMessage message = (GameClientMessage) callback.getData(); + GamePanel panel = MageFrame.getGame(callback.getObjectId()); + if (panel != null) { + panel.pickPile(message.getMessage(), message.getPile1(), message.getPile2()); + } + break; + } + case "gameChooseChoice": { + GameClientMessage message = (GameClientMessage) callback.getData(); + GamePanel panel = MageFrame.getGame(callback.getObjectId()); - } - break; + if (panel != null) { + panel.getChoice(message.getChoice(), callback.getObjectId()); } - case "serverMessage": - if (callback.getData() != null) { - ChatMessage message = (ChatMessage) callback.getData(); - if (message.getColor().equals(ChatMessage.MessageColor.RED)) { - JOptionPane.showMessageDialog(null, message.getMessage(), "Server message", JOptionPane.WARNING_MESSAGE); - } else { - JOptionPane.showMessageDialog(null, message.getMessage(), "Server message", JOptionPane.INFORMATION_MESSAGE); + break; + } + case "gamePlayMana": { + GameClientMessage message = (GameClientMessage) callback.getData(); + GamePanel panel = MageFrame.getGame(callback.getObjectId()); + if (panel != null) { + panel.playMana(message.getMessage(), message.getGameView(), message.getOptions(), callback.getMessageId()); + } + break; + } + case "gamePlayXMana": { + GameClientMessage message = (GameClientMessage) callback.getData(); + GamePanel panel = MageFrame.getGame(callback.getObjectId()); + if (panel != null) { + panel.playXMana(message.getMessage(), message.getGameView(), callback.getMessageId()); + } + break; + } + case "gameSelectAmount": { + GameClientMessage message = (GameClientMessage) callback.getData(); + GamePanel panel = MageFrame.getGame(callback.getObjectId()); + if (panel != null) { + panel.getAmount(message.getMin(), message.getMax(), message.getMessage()); + } + break; + } + case "gameUpdate": { + GamePanel panel = MageFrame.getGame(callback.getObjectId()); + if (panel != null) { + panel.updateGame((GameView) callback.getData()); + } + break; + } + case "endGameInfo": + MageFrame.getInstance().showGameEndDialog((GameEndView) callback.getData()); + break; + case "showUserMessage": + List messageData = (List) callback.getData(); + if (messageData.size() == 2) { + JOptionPane.showMessageDialog(null, messageData.get(1), messageData.get(0), JOptionPane.WARNING_MESSAGE); + } + break; + case "gameInform": + if (callback.getMessageId() > gameInformMessageId) { + { + GameClientMessage message = (GameClientMessage) callback.getData(); + GamePanel panel = MageFrame.getGame(callback.getObjectId()); + if (panel != null) { + panel.inform(message.getMessage(), message.getGameView(), callback.getMessageId()); } } - break; - case "joinedTable": { - TableClientMessage message = (TableClientMessage) callback.getData(); - joinedTable(message.getRoomId(), message.getTableId(), message.getFlag()); - break; - } - case "replayInit": { - GamePanel panel = MageFrame.getGame(callback.getObjectId()); - if (panel != null) { - panel.init((GameView) callback.getData()); - } - break; - } - case "replayDone": { - GamePanel panel = MageFrame.getGame(callback.getObjectId()); - if (panel != null) { - panel.endMessage((String) callback.getData(), callback.getMessageId()); - } - break; - } - case "replayUpdate": { - GamePanel panel = MageFrame.getGame(callback.getObjectId()); - if (panel != null) { - panel.updateGame((GameView) callback.getData()); - } - break; - } - case "gameInit": { - GamePanel panel = MageFrame.getGame(callback.getObjectId()); - if (panel != null) { - panel.init((GameView) callback.getData()); - } - break; - } - case "gameOver": { - GamePanel panel = MageFrame.getGame(callback.getObjectId()); - if (panel != null) { - panel.endMessage((String) callback.getData(), callback.getMessageId()); - } - break; - } - case "gameError": - frame.showErrorDialog("Game Error", (String) callback.getData()); - break; - case "gameAsk": { - GameClientMessage message = (GameClientMessage) callback.getData(); - GamePanel panel = MageFrame.getGame(callback.getObjectId()); - if (panel != null) { - panel.ask(message.getMessage(), message.getGameView(), callback.getMessageId(), message.getOptions()); - } - break; - } - case "gameTarget": // e.g. Pick triggered ability - { - GameClientMessage message = (GameClientMessage) callback.getData(); - GamePanel panel = MageFrame.getGame(callback.getObjectId()); - if (panel != null) { - panel.pickTarget(message.getMessage(), message.getCardsView(), message.getGameView(), - message.getTargets(), message.isFlag(), message.getOptions(), callback.getMessageId()); - } - break; - } - case "gameSelect": { - GameClientMessage message = (GameClientMessage) callback.getData(); - GamePanel panel = MageFrame.getGame(callback.getObjectId()); - if (panel != null) { - panel.select(message.getMessage(), message.getGameView(), callback.getMessageId(), message.getOptions()); - } - break; - } - case "gameChooseAbility": { - GamePanel panel = MageFrame.getGame(callback.getObjectId()); - if (panel != null) { - panel.pickAbility((AbilityPickerView) callback.getData()); - } - break; - } - case "gameChoosePile": { - GameClientMessage message = (GameClientMessage) callback.getData(); - GamePanel panel = MageFrame.getGame(callback.getObjectId()); - if (panel != null) { - panel.pickPile(message.getMessage(), message.getPile1(), message.getPile2()); - } - break; - } - case "gameChooseChoice": { - GameClientMessage message = (GameClientMessage) callback.getData(); - GamePanel panel = MageFrame.getGame(callback.getObjectId()); - - if (panel != null) { - panel.getChoice(message.getChoice(), callback.getObjectId()); - } - break; - } - case "gamePlayMana": { - GameClientMessage message = (GameClientMessage) callback.getData(); - GamePanel panel = MageFrame.getGame(callback.getObjectId()); - if (panel != null) { - panel.playMana(message.getMessage(), message.getGameView(), message.getOptions(), callback.getMessageId()); - } - break; - } - case "gamePlayXMana": { - GameClientMessage message = (GameClientMessage) callback.getData(); - GamePanel panel = MageFrame.getGame(callback.getObjectId()); - if (panel != null) { - panel.playXMana(message.getMessage(), message.getGameView(), callback.getMessageId()); - } - break; - } - case "gameSelectAmount": { - GameClientMessage message = (GameClientMessage) callback.getData(); - GamePanel panel = MageFrame.getGame(callback.getObjectId()); - if (panel != null) { - panel.getAmount(message.getMin(), message.getMax(), message.getMessage()); - } - break; - } - case "gameUpdate": { - GamePanel panel = MageFrame.getGame(callback.getObjectId()); - if (panel != null) { - panel.updateGame((GameView) callback.getData()); - } - break; - } - case "endGameInfo": - MageFrame.getInstance().showGameEndDialog((GameEndView) callback.getData()); - break; - case "showUserMessage": - List messageData = (List) callback.getData(); - if (messageData.size() == 2) { - JOptionPane.showMessageDialog(null, messageData.get(1), messageData.get(0), JOptionPane.WARNING_MESSAGE); - } - break; - case "gameInform": - if (callback.getMessageId() > gameInformMessageId) { - { - GameClientMessage message = (GameClientMessage) callback.getData(); - GamePanel panel = MageFrame.getGame(callback.getObjectId()); - if (panel != null) { - panel.inform(message.getMessage(), message.getGameView(), callback.getMessageId()); - } - } // no longer needed because phase skip handling on server side now - } else { - logger.warn(new StringBuilder("message out of sequence - ignoring").append("MessageId = ").append(callback.getMessageId()).append(" method = ").append(callback.getMethod())); - //logger.warn("message out of sequence - ignoring"); - } - gameInformMessageId = messageId; - break; - case "gameInformPersonal": { - GameClientMessage message = (GameClientMessage) callback.getData(); - GamePanel panel = MageFrame.getGame(callback.getObjectId()); - if (panel != null) { - JOptionPane.showMessageDialog(panel, message.getMessage(), "Game message", - JOptionPane.INFORMATION_MESSAGE); - } - break; + } else { + logger.warn(new StringBuilder("message out of sequence - ignoring").append("MessageId = ").append(callback.getMessageId()).append(" method = ").append(callback.getMethod())); + //logger.warn("message out of sequence - ignoring"); } - case "sideboard": { - TableClientMessage message = (TableClientMessage) callback.getData(); - DeckView deckView = message.getDeck(); - Deck deck = DeckUtil.construct(deckView); - if (message.getFlag()) { - construct(deck, message.getTableId(), message.getTime()); - } else { - sideboard(deck, message.getTableId(), message.getTime()); - } - break; + gameInformMessageId = messageId; + break; + case "gameInformPersonal": { + GameClientMessage message = (GameClientMessage) callback.getData(); + GamePanel panel = MageFrame.getGame(callback.getObjectId()); + if (panel != null) { + JOptionPane.showMessageDialog(panel, message.getMessage(), "Game message", + JOptionPane.INFORMATION_MESSAGE); } - case "construct": { - TableClientMessage message = (TableClientMessage) callback.getData(); - DeckView deckView = message.getDeck(); - Deck deck = DeckUtil.construct(deckView); + break; + } + case "sideboard": { + TableClientMessage message = (TableClientMessage) callback.getData(); + DeckView deckView = message.getDeck(); + Deck deck = DeckUtil.construct(deckView); + if (message.getFlag()) { construct(deck, message.getTableId(), message.getTime()); - break; + } else { + sideboard(deck, message.getTableId(), message.getTime()); } - case "draftOver": - MageFrame.removeDraft(callback.getObjectId()); - break; - case "draftPick": { - DraftClientMessage message = (DraftClientMessage) callback.getData(); - DraftPanel panel = MageFrame.getDraft(callback.getObjectId()); - if (panel != null) { - panel.loadBooster(message.getDraftPickView()); - } - break; + break; + } + case "construct": { + TableClientMessage message = (TableClientMessage) callback.getData(); + DeckView deckView = message.getDeck(); + Deck deck = DeckUtil.construct(deckView); + construct(deck, message.getTableId(), message.getTime()); + break; + } + case "draftOver": + MageFrame.removeDraft(callback.getObjectId()); + break; + case "draftPick": { + DraftClientMessage message = (DraftClientMessage) callback.getData(); + DraftPanel panel = MageFrame.getDraft(callback.getObjectId()); + if (panel != null) { + panel.loadBooster(message.getDraftPickView()); } - case "draftUpdate": { - DraftPanel panel = MageFrame.getDraft(callback.getObjectId()); - if (panel != null) { - panel.updateDraft((DraftView) callback.getData()); - } - break; - } - case "draftInform": // if (callback.getMessageId() > messageId) { - { - DraftClientMessage message = (DraftClientMessage) callback.getData(); + break; + } + case "draftUpdate": { + DraftPanel panel = MageFrame.getDraft(callback.getObjectId()); + if (panel != null) { + panel.updateDraft((DraftView) callback.getData()); } + break; + } + case "draftInform": // if (callback.getMessageId() > messageId) { + { + DraftClientMessage message = (DraftClientMessage) callback.getData(); + } // } else { // logger.warn("message out of sequence - ignoring"); // } - break; - case "draftInit": { - DraftClientMessage message = (DraftClientMessage) callback.getData(); - DraftPanel panel = MageFrame.getDraft(callback.getObjectId()); - if (panel != null) { - panel.loadBooster(message.getDraftPickView()); - } - break; + break; + case "draftInit": { + DraftClientMessage message = (DraftClientMessage) callback.getData(); + DraftPanel panel = MageFrame.getDraft(callback.getObjectId()); + if (panel != null) { + panel.loadBooster(message.getDraftPickView()); } - case "tournamentInit": - break; - case "userRequestDialog": - frame.showUserRequestDialog((UserRequestMessage) callback.getData()); - break; + break; } - messageId = callback.getMessageId(); - } catch (Exception ex) { - handleException(ex); + case "tournamentInit": + break; + case "userRequestDialog": + frame.showUserRequestDialog((UserRequestMessage) callback.getData()); + break; } + messageId = callback.getMessageId(); + } catch (Exception ex) { + handleException(ex); } }); } @@ -391,28 +388,28 @@ public class CallbackClientImpl implements CallbackClient { .append("
Turn mousewheel up (ALT-e) - enlarge image of card the mousepointer hovers over") .append("
Turn mousewheel down (ALT-s) - enlarge original/alternate image of card the mousepointer hovers over") .append("
") - .append(KeyEvent.getKeyText((Integer) PreferencesDialog.getCachedValue(PreferencesDialog.KEY_CONTROL_CONFIRM, 113))) + .append(KeyEvent.getKeyText(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_CONTROL_CONFIRM, 113))) .append(" - Confirm \"Ok\", \"Yes\" or \"Done\" button") .append("
") - .append(KeyEvent.getKeyText((Integer) PreferencesDialog.getCachedValue(PreferencesDialog.KEY_CONTROL_NEXT_TURN, 115))) + .append(KeyEvent.getKeyText(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_CONTROL_NEXT_TURN, 115))) .append(" - Skip current turn but stop on declare attackers/blockers and something on the stack") .append("
") - .append(KeyEvent.getKeyText((Integer) PreferencesDialog.getCachedValue(PreferencesDialog.KEY_CONTROL_END_STEP, 116))) + .append(KeyEvent.getKeyText(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_CONTROL_END_STEP, 116))) .append(" - Skip to next end step but stop on declare attackers/blockers and something on the stack") .append("
") - .append(KeyEvent.getKeyText((Integer) PreferencesDialog.getCachedValue(PreferencesDialog.KEY_CONTROL_SKIP_STEP, 117))) + .append(KeyEvent.getKeyText(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_CONTROL_SKIP_STEP, 117))) .append(" - Skip current turn but stop on declare attackers/blockers") .append("
") - .append(KeyEvent.getKeyText((Integer) PreferencesDialog.getCachedValue(PreferencesDialog.KEY_CONTROL_MAIN_STEP, 118))) + .append(KeyEvent.getKeyText(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_CONTROL_MAIN_STEP, 118))) .append(" - Skip to next main phase but stop on declare attackers/blockers and something on the stack") .append("
") - .append(KeyEvent.getKeyText((Integer) PreferencesDialog.getCachedValue(PreferencesDialog.KEY_CONTROL_YOUR_TURN, 120))) + .append(KeyEvent.getKeyText(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_CONTROL_YOUR_TURN, 120))) .append(" - Skip everything until your next turn") .append("
") - .append(KeyEvent.getKeyText((Integer) PreferencesDialog.getCachedValue(PreferencesDialog.KEY_CONTROL_PRIOR_END, 122))) + .append(KeyEvent.getKeyText(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_CONTROL_PRIOR_END, 122))) .append(" - Skip everything until the end step just prior to your turn") .append("
") - .append(KeyEvent.getKeyText((Integer) PreferencesDialog.getCachedValue(PreferencesDialog.KEY_CONTROL_CANCEL_SKIP, 114))) + .append(KeyEvent.getKeyText(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_CONTROL_CANCEL_SKIP, 114))) .append(" - Undo F4/F5/F7/F9/F11") .append("
").append(System.getProperty("os.name").contains("Mac OS X") ? "Cmd" : "Ctrl").append(" + click - Hold priority while casting a spell or activating an ability").toString(), null, MessageType.USER_INFO, ChatMessage.MessageColor.BLUE); diff --git a/Mage.Client/src/main/java/mage/client/table/NewPlayerPanel.java b/Mage.Client/src/main/java/mage/client/table/NewPlayerPanel.java index 71709ce7daf..7d28ba8f8ac 100644 --- a/Mage.Client/src/main/java/mage/client/table/NewPlayerPanel.java +++ b/Mage.Client/src/main/java/mage/client/table/NewPlayerPanel.java @@ -153,18 +153,10 @@ public class NewPlayerPanel extends javax.swing.JPanel { lblPlayerDeck.setText("Deck:"); btnPlayerDeck.setText("..."); - btnPlayerDeck.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnPlayerDeckActionPerformed(evt); - } - }); + btnPlayerDeck.addActionListener(evt -> btnPlayerDeckActionPerformed(evt)); btnGenerate.setText("Generate"); - btnGenerate.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnGenerateActionPerformed(evt); - } - }); + btnGenerate.addActionListener(evt -> btnGenerateActionPerformed(evt)); lblLevel.setText("Skill:"); diff --git a/Mage.Client/src/main/java/mage/client/table/PlayersChatPanel.java b/Mage.Client/src/main/java/mage/client/table/PlayersChatPanel.java index 32ffc8ecde4..365f2d6529e 100644 --- a/Mage.Client/src/main/java/mage/client/table/PlayersChatPanel.java +++ b/Mage.Client/src/main/java/mage/client/table/PlayersChatPanel.java @@ -394,7 +394,7 @@ public class PlayersChatPanel extends javax.swing.JPanel { class ColumnHeaderToolTips extends MouseMotionAdapter { int curCol; - Map tips = new HashMap<>(); + final Map tips = new HashMap<>(); public void setToolTip(Integer mCol, String tooltip) { if (tooltip == null) { diff --git a/Mage.Client/src/main/java/mage/client/table/TablePlayerPanel.java b/Mage.Client/src/main/java/mage/client/table/TablePlayerPanel.java index aefca569cf0..902aab84dd9 100644 --- a/Mage.Client/src/main/java/mage/client/table/TablePlayerPanel.java +++ b/Mage.Client/src/main/java/mage/client/table/TablePlayerPanel.java @@ -34,17 +34,14 @@ package mage.client.table; -import java.io.FileNotFoundException; import java.io.IOException; import java.util.UUID; import javax.swing.DefaultComboBoxModel; import mage.cards.decks.importer.DeckImporterUtil; -import mage.client.MageFrame; import mage.client.SessionHandler; import mage.client.util.Config; import mage.client.util.Event; import mage.client.util.Listener; -import mage.remote.Session; /** * @@ -52,7 +49,7 @@ import mage.remote.Session; */ public class TablePlayerPanel extends javax.swing.JPanel { - protected PlayerTypeEventSource playerTypeEventSource = new PlayerTypeEventSource(); + protected final PlayerTypeEventSource playerTypeEventSource = new PlayerTypeEventSource(); /** Creates new form TablePlayerPanel */ @@ -78,7 +75,7 @@ public class TablePlayerPanel extends javax.swing.JPanel { } } - public boolean joinTable(UUID roomId, UUID tableId) throws FileNotFoundException, IOException, ClassNotFoundException { + public boolean joinTable(UUID roomId, UUID tableId) throws IOException, ClassNotFoundException { if (!this.cbPlayerType.getSelectedItem().equals("Human")) { return SessionHandler.joinTable(roomId, tableId, this.newPlayerPanel.getPlayerName(), (String)this.cbPlayerType.getSelectedItem(), this.newPlayerPanel.getLevel(), DeckImporterUtil.importDeck(this.newPlayerPanel.getDeckFile()),""); } @@ -114,11 +111,7 @@ public class TablePlayerPanel extends javax.swing.JPanel { lbPlayerType.setText("Type:"); - cbPlayerType.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cbPlayerTypeActionPerformed(evt); - } - }); + cbPlayerType.addActionListener(evt -> cbPlayerTypeActionPerformed(evt)); lblPlayerNum.setFont(new java.awt.Font("Tahoma", 1, 11)); lblPlayerNum.setText("Player #"); diff --git a/Mage.Client/src/main/java/mage/client/table/TablesPane.java b/Mage.Client/src/main/java/mage/client/table/TablesPane.java index b2754f06f78..78e685ae6e3 100644 --- a/Mage.Client/src/main/java/mage/client/table/TablesPane.java +++ b/Mage.Client/src/main/java/mage/client/table/TablesPane.java @@ -29,7 +29,7 @@ package mage.client.table; import java.util.UUID; import javax.swing.JComponent; -import mage.client.MageFrame; + import mage.client.MagePane; import mage.client.SessionHandler; import mage.client.plugins.impl.Plugins; diff --git a/Mage.Client/src/main/java/mage/client/table/TablesPanel.java b/Mage.Client/src/main/java/mage/client/table/TablesPanel.java index 646369c1668..c0c248ce96a 100644 --- a/Mage.Client/src/main/java/mage/client/table/TablesPanel.java +++ b/Mage.Client/src/main/java/mage/client/table/TablesPanel.java @@ -109,8 +109,8 @@ public class TablesPanel extends javax.swing.JPanel { private static final Logger LOGGER = Logger.getLogger(TablesPanel.class); private static final int[] DEFAULT_COLUMNS_WIDTH = {35, 150, 120, 180, 80, 120, 80, 60, 40, 40, 60}; - private TableTableModel tableModel; - private MatchesTableModel matchesModel; + private final TableTableModel tableModel; + private final MatchesTableModel matchesModel; private UUID roomId; private UpdateTablesTask updateTablesTask; private UpdatePlayersTask updatePlayersTask; @@ -118,15 +118,15 @@ public class TablesPanel extends javax.swing.JPanel { private JoinTableDialog joinTableDialog; private NewTableDialog newTableDialog; private NewTournamentDialog newTournamentDialog; - private GameChooser gameChooser; + private final GameChooser gameChooser; private List messages; private int currentMessage; - private MageTableRowSorter activeTablesSorter; + private final MageTableRowSorter activeTablesSorter; private final ButtonColumn actionButton1; private final ButtonColumn actionButton2; - JToggleButton[] filterButtons; + final JToggleButton[] filterButtons; /** * Creates new form TablesPanel @@ -266,7 +266,7 @@ public class TablesPanel extends javax.swing.JPanel { } // MageFrame.getDesktop().showTournament(tournamentId); break; - case "Show":; + case "Show": if (matchesModel.isTournament(modelRow)) { LOGGER.info("Showing tournament table " + matchesModel.getTableId(modelRow)); SessionHandler.watchTable(roomId, matchesModel.getTableId(modelRow)); @@ -505,12 +505,7 @@ public class TablesPanel extends javax.swing.JPanel { MageFrame.getUI().addButton(MageComponents.NEW_GAME_BUTTON, btnNewTable); // divider locations have to be set with delay else values set are overwritten with system defaults - Executors.newSingleThreadScheduledExecutor().schedule(new Runnable() { - @Override - public void run() { - restoreDividerLocations(); - } - }, 300, TimeUnit.MILLISECONDS); + Executors.newSingleThreadScheduledExecutor().schedule(() -> restoreDividerLocations(), 300, TimeUnit.MILLISECONDS); } @@ -749,20 +744,12 @@ public class TablesPanel extends javax.swing.JPanel { btnNewTable.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/match_new.png"))); // NOI18N btnNewTable.setToolTipText("Creates a new match table."); btnNewTable.setMargin(new java.awt.Insets(2, 2, 2, 2)); - btnNewTable.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnNewTableActionPerformed(evt); - } - }); + btnNewTable.addActionListener(evt -> btnNewTableActionPerformed(evt)); btnNewTournament.setIcon(new javax.swing.ImageIcon(getClass().getResource("/buttons/tourney_new.png"))); // NOI18N btnNewTournament.setToolTipText("Creates a new tourney table."); btnNewTournament.setMargin(new java.awt.Insets(2, 2, 2, 2)); - btnNewTournament.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnNewTournamentActionPerformed(evt); - } - }); + btnNewTournament.addActionListener(evt -> btnNewTournamentActionPerformed(evt)); filterBar1.setFloatable(false); filterBar1.setForeground(new java.awt.Color(102, 102, 255)); @@ -778,11 +765,7 @@ public class TablesPanel extends javax.swing.JPanel { btnStateWaiting.setRequestFocusEnabled(false); btnStateWaiting.setVerifyInputWhenFocusTarget(false); btnStateWaiting.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnStateWaiting.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnFilterActionPerformed(evt); - } - }); + btnStateWaiting.addActionListener(evt -> btnFilterActionPerformed(evt)); filterBar1.add(btnStateWaiting); btnStateActive.setSelected(true); @@ -794,11 +777,7 @@ public class TablesPanel extends javax.swing.JPanel { btnStateActive.setRequestFocusEnabled(false); btnStateActive.setVerifyInputWhenFocusTarget(false); btnStateActive.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnStateActive.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnFilterActionPerformed(evt); - } - }); + btnStateActive.addActionListener(evt -> btnFilterActionPerformed(evt)); filterBar1.add(btnStateActive); btnStateFinished.setSelected(true); @@ -810,11 +789,7 @@ public class TablesPanel extends javax.swing.JPanel { btnStateFinished.setRequestFocusEnabled(false); btnStateFinished.setVerifyInputWhenFocusTarget(false); btnStateFinished.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnStateFinished.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnStateFinishedActionPerformed(evt); - } - }); + btnStateFinished.addActionListener(evt -> btnStateFinishedActionPerformed(evt)); filterBar1.add(btnStateFinished); filterBar1.add(jSeparator1); @@ -828,11 +803,7 @@ public class TablesPanel extends javax.swing.JPanel { btnTypeMatch.setRequestFocusEnabled(false); btnTypeMatch.setVerifyInputWhenFocusTarget(false); btnTypeMatch.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnTypeMatch.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnFilterActionPerformed(evt); - } - }); + btnTypeMatch.addActionListener(evt -> btnFilterActionPerformed(evt)); filterBar1.add(btnTypeMatch); btnTypeTourneyConstructed.setSelected(true); @@ -843,11 +814,7 @@ public class TablesPanel extends javax.swing.JPanel { btnTypeTourneyConstructed.setFocusable(false); btnTypeTourneyConstructed.setRequestFocusEnabled(false); btnTypeTourneyConstructed.setVerifyInputWhenFocusTarget(false); - btnTypeTourneyConstructed.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnFilterActionPerformed(evt); - } - }); + btnTypeTourneyConstructed.addActionListener(evt -> btnFilterActionPerformed(evt)); filterBar1.add(btnTypeTourneyConstructed); btnTypeTourneyLimited.setSelected(true); @@ -859,11 +826,7 @@ public class TablesPanel extends javax.swing.JPanel { btnTypeTourneyLimited.setMaximumSize(new java.awt.Dimension(72, 20)); btnTypeTourneyLimited.setRequestFocusEnabled(false); btnTypeTourneyLimited.setVerifyInputWhenFocusTarget(false); - btnTypeTourneyLimited.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnFilterActionPerformed(evt); - } - }); + btnTypeTourneyLimited.addActionListener(evt -> btnFilterActionPerformed(evt)); filterBar1.add(btnTypeTourneyLimited); filterBar1.add(jSeparator4); @@ -877,11 +840,7 @@ public class TablesPanel extends javax.swing.JPanel { btnSkillBeginner.setRequestFocusEnabled(false); btnSkillBeginner.setVerifyInputWhenFocusTarget(false); btnSkillBeginner.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnSkillBeginner.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnFilterActionPerformed(evt); - } - }); + btnSkillBeginner.addActionListener(evt -> btnFilterActionPerformed(evt)); filterBar1.add(btnSkillBeginner); btnSkillCasual.setSelected(true); @@ -894,11 +853,7 @@ public class TablesPanel extends javax.swing.JPanel { btnSkillCasual.setRequestFocusEnabled(false); btnSkillCasual.setVerifyInputWhenFocusTarget(false); btnSkillCasual.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnSkillCasual.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnFilterActionPerformed(evt); - } - }); + btnSkillCasual.addActionListener(evt -> btnFilterActionPerformed(evt)); filterBar1.add(btnSkillCasual); btnSkillSerious.setSelected(true); @@ -911,11 +866,7 @@ public class TablesPanel extends javax.swing.JPanel { btnSkillSerious.setRequestFocusEnabled(false); btnSkillSerious.setVerifyInputWhenFocusTarget(false); btnSkillSerious.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnSkillSerious.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnFilterActionPerformed(evt); - } - }); + btnSkillSerious.addActionListener(evt -> btnFilterActionPerformed(evt)); filterBar1.add(btnSkillSerious); filterBar1.add(jSeparator4); @@ -929,11 +880,7 @@ public class TablesPanel extends javax.swing.JPanel { btnRated.setRequestFocusEnabled(false); btnRated.setVerifyInputWhenFocusTarget(false); btnRated.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnRated.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnFilterActionPerformed(evt); - } - }); + btnRated.addActionListener(evt -> btnFilterActionPerformed(evt)); filterBar1.add(btnRated); btnUnrated.setSelected(true); @@ -945,11 +892,7 @@ public class TablesPanel extends javax.swing.JPanel { btnUnrated.setRequestFocusEnabled(false); btnUnrated.setVerifyInputWhenFocusTarget(false); btnUnrated.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnUnrated.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnFilterActionPerformed(evt); - } - }); + btnUnrated.addActionListener(evt -> btnFilterActionPerformed(evt)); filterBar1.add(btnUnrated); // second filter line @@ -966,11 +909,7 @@ public class TablesPanel extends javax.swing.JPanel { btnFormatBlock.setRequestFocusEnabled(false); btnFormatBlock.setVerifyInputWhenFocusTarget(false); btnFormatBlock.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnFormatBlock.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnFilterActionPerformed(evt); - } - }); + btnFormatBlock.addActionListener(evt -> btnFilterActionPerformed(evt)); filterBar2.add(btnFormatBlock); btnFormatStandard.setSelected(true); @@ -982,11 +921,7 @@ public class TablesPanel extends javax.swing.JPanel { btnFormatStandard.setRequestFocusEnabled(false); btnFormatStandard.setVerifyInputWhenFocusTarget(false); btnFormatStandard.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnFormatStandard.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnFilterActionPerformed(evt); - } - }); + btnFormatStandard.addActionListener(evt -> btnFilterActionPerformed(evt)); filterBar2.add(btnFormatStandard); btnFormatModern.setSelected(true); @@ -996,11 +931,7 @@ public class TablesPanel extends javax.swing.JPanel { btnFormatModern.setFocusable(false); btnFormatModern.setRequestFocusEnabled(false); btnFormatModern.setVerifyInputWhenFocusTarget(false); - btnFormatModern.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnFilterActionPerformed(evt); - } - }); + btnFormatModern.addActionListener(evt -> btnFilterActionPerformed(evt)); filterBar2.add(btnFormatModern); btnFormatLegacy.setSelected(true); @@ -1012,11 +943,7 @@ public class TablesPanel extends javax.swing.JPanel { btnFormatLegacy.setRequestFocusEnabled(false); btnFormatLegacy.setVerifyInputWhenFocusTarget(false); btnFormatLegacy.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnFormatLegacy.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnFilterActionPerformed(evt); - } - }); + btnFormatLegacy.addActionListener(evt -> btnFilterActionPerformed(evt)); filterBar2.add(btnFormatLegacy); btnFormatVintage.setSelected(true); @@ -1028,11 +955,7 @@ public class TablesPanel extends javax.swing.JPanel { btnFormatVintage.setRequestFocusEnabled(false); btnFormatVintage.setVerifyInputWhenFocusTarget(false); btnFormatVintage.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnFormatVintage.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnFilterActionPerformed(evt); - } - }); + btnFormatVintage.addActionListener(evt -> btnFilterActionPerformed(evt)); filterBar2.add(btnFormatVintage); filterBar2.add(jSeparator3); @@ -1045,11 +968,7 @@ public class TablesPanel extends javax.swing.JPanel { btnFormatCommander.setRequestFocusEnabled(false); btnFormatCommander.setVerifyInputWhenFocusTarget(false); btnFormatCommander.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnFormatCommander.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnFilterActionPerformed(evt); - } - }); + btnFormatCommander.addActionListener(evt -> btnFilterActionPerformed(evt)); filterBar2.add(btnFormatCommander); btnFormatTinyLeader.setSelected(true); @@ -1059,11 +978,7 @@ public class TablesPanel extends javax.swing.JPanel { btnFormatTinyLeader.setFocusable(false); btnFormatTinyLeader.setRequestFocusEnabled(false); btnFormatTinyLeader.setVerifyInputWhenFocusTarget(false); - btnFormatTinyLeader.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnFilterActionPerformed(evt); - } - }); + btnFormatTinyLeader.addActionListener(evt -> btnFilterActionPerformed(evt)); filterBar2.add(btnFormatTinyLeader); filterBar2.add(jSeparator2); @@ -1076,11 +991,7 @@ public class TablesPanel extends javax.swing.JPanel { btnFormatLimited.setRequestFocusEnabled(false); btnFormatLimited.setVerifyInputWhenFocusTarget(false); btnFormatLimited.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnFormatLimited.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnFilterActionPerformed(evt); - } - }); + btnFormatLimited.addActionListener(evt -> btnFilterActionPerformed(evt)); filterBar2.add(btnFormatLimited); btnFormatOther.setSelected(true); @@ -1090,11 +1001,7 @@ public class TablesPanel extends javax.swing.JPanel { btnFormatOther.setFocusable(false); btnFormatOther.setRequestFocusEnabled(false); btnFormatOther.setVerifyInputWhenFocusTarget(false); - btnFormatOther.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnFilterActionPerformed(evt); - } - }); + btnFormatOther.addActionListener(evt -> btnFilterActionPerformed(evt)); filterBar2.add(btnFormatOther); filterBar2.add(jSeparator5); @@ -1107,11 +1014,7 @@ public class TablesPanel extends javax.swing.JPanel { btnOpen.setRequestFocusEnabled(false); btnOpen.setVerifyInputWhenFocusTarget(false); btnOpen.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnOpen.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnFilterActionPerformed(evt); - } - }); + btnOpen.addActionListener(evt -> btnFilterActionPerformed(evt)); filterBar2.add(btnOpen); btnPassword.setSelected(true); @@ -1123,22 +1026,14 @@ public class TablesPanel extends javax.swing.JPanel { btnPassword.setRequestFocusEnabled(false); btnPassword.setVerifyInputWhenFocusTarget(false); btnPassword.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnPassword.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnFilterActionPerformed(evt); - } - }); + btnPassword.addActionListener(evt -> btnFilterActionPerformed(evt)); filterBar2.add(btnPassword); btnQuickStart.setText("Quick Start"); btnQuickStart.setFocusable(false); btnQuickStart.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); btnQuickStart.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnQuickStart.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnQuickStartActionPerformed(evt); - } - }); + btnQuickStart.addActionListener(evt -> btnQuickStartActionPerformed(evt)); javax.swing.GroupLayout jPanelTopLayout = new javax.swing.GroupLayout(jPanelTop); jPanelTop.setLayout(jPanelTopLayout); @@ -1235,11 +1130,7 @@ public class TablesPanel extends javax.swing.JPanel { jButtonFooterNext.setHorizontalAlignment(javax.swing.SwingConstants.LEFT); jButtonFooterNext.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); jButtonFooterNext.setOpaque(false); - jButtonFooterNext.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - jButtonFooterNextActionPerformed(evt); - } - }); + jButtonFooterNext.addActionListener(evt -> jButtonFooterNextActionPerformed(evt)); jPanelBottom.add(jButtonFooterNext); jLabelFooterLabel.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N @@ -1380,8 +1271,8 @@ public class TablesPanel extends javax.swing.JPanel { class TableTableModel extends AbstractTableModel { - ImageIcon tourneyIcon = new javax.swing.ImageIcon(getClass().getResource("/tables/tourney_icon.png")); - ImageIcon matchIcon = new javax.swing.ImageIcon(getClass().getResource("/tables/match_icon.png")); + final ImageIcon tourneyIcon = new javax.swing.ImageIcon(getClass().getResource("/tables/tourney_icon.png")); + final ImageIcon matchIcon = new javax.swing.ImageIcon(getClass().getResource("/tables/match_icon.png")); public static final int COLUMN_ICON = 0; public static final int COLUMN_DECK_TYPE = 1; // column the deck type is located (starting with 0) Start string is used to check for Limited @@ -1400,7 +1291,6 @@ class TableTableModel extends AbstractTableModel { private TableView[] tables = new TableView[0]; private static final DateFormat timeFormatter = new SimpleDateFormat("HH:mm:ss"); - ; public void loadData(Collection tables) throws MageRemoteException { diff --git a/Mage.Client/src/main/java/mage/client/table/TournamentPlayerPanel.java b/Mage.Client/src/main/java/mage/client/table/TournamentPlayerPanel.java index a32c3b58512..2f220eaddb7 100644 --- a/Mage.Client/src/main/java/mage/client/table/TournamentPlayerPanel.java +++ b/Mage.Client/src/main/java/mage/client/table/TournamentPlayerPanel.java @@ -38,9 +38,7 @@ import java.util.UUID; import javax.swing.DefaultComboBoxModel; import javax.swing.JComboBox; import mage.cards.decks.DeckCardLists; -import mage.client.MageFrame; import mage.client.SessionHandler; -import mage.remote.Session; /** * @@ -101,11 +99,7 @@ public class TournamentPlayerPanel extends javax.swing.JPanel { jLabel1.setText("Type:"); cbPlayerType.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" })); - cbPlayerType.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cbPlayerTypeActionPerformed(evt); - } - }); + cbPlayerType.addActionListener(evt -> cbPlayerTypeActionPerformed(evt)); lblPlayerNum.setFont(new java.awt.Font("Tahoma", 1, 11)); lblPlayerNum.setText("Player Num:"); diff --git a/Mage.Client/src/main/java/mage/client/tournament/TournamentPanel.java b/Mage.Client/src/main/java/mage/client/tournament/TournamentPanel.java index 98554d35183..fea2f500e41 100644 --- a/Mage.Client/src/main/java/mage/client/tournament/TournamentPanel.java +++ b/Mage.Client/src/main/java/mage/client/tournament/TournamentPanel.java @@ -84,7 +84,7 @@ public class TournamentPanel extends javax.swing.JPanel { private boolean firstInitDone = false; private final TournamentPlayersTableModel playersModel; - private TournamentMatchesTableModel matchesModel; + private final TournamentMatchesTableModel matchesModel; private UpdateTournamentTask updateTask; private final DateFormat df; @@ -358,11 +358,7 @@ public class TournamentPanel extends javax.swing.JPanel { txtName.setMaximumSize(new java.awt.Dimension(50, 22)); txtName.setOpaque(false); txtName.setRequestFocusEnabled(false); - txtName.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - txtNameActionPerformed(evt); - } - }); + txtName.addActionListener(evt -> txtNameActionPerformed(evt)); txtType.setEditable(false); txtType.setHorizontalAlignment(javax.swing.JTextField.LEFT); @@ -394,19 +390,11 @@ public class TournamentPanel extends javax.swing.JPanel { btnQuitTournament.setText("Quit Tournament"); btnQuitTournament.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); - btnQuitTournament.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnQuitTournamentActionPerformed(evt); - } - }); + btnQuitTournament.addActionListener(evt -> btnQuitTournamentActionPerformed(evt)); btnCloseWindow.setText("Close Window"); btnCloseWindow.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); - btnCloseWindow.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnCloseWindowActionPerformed(evt); - } - }); + btnCloseWindow.addActionListener(evt -> btnCloseWindowActionPerformed(evt)); lblName.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N lblName.setText("Name:"); diff --git a/Mage.Client/src/main/java/mage/client/unusedFiles/DelayedViewerThread.java b/Mage.Client/src/main/java/mage/client/unusedFiles/DelayedViewerThread.java index 7d878d75566..8d0318e4ea2 100644 --- a/Mage.Client/src/main/java/mage/client/unusedFiles/DelayedViewerThread.java +++ b/Mage.Client/src/main/java/mage/client/unusedFiles/DelayedViewerThread.java @@ -9,7 +9,7 @@ import java.util.Map; public class DelayedViewerThread extends Thread { - private static DelayedViewerThread fInstance = new DelayedViewerThread(); + private static final DelayedViewerThread fInstance = new DelayedViewerThread(); public static DelayedViewerThread getInstance() { return fInstance; diff --git a/Mage.Client/src/main/java/mage/client/unusedFiles/PlayerPanel.java b/Mage.Client/src/main/java/mage/client/unusedFiles/PlayerPanel.java index 2b46f47ea00..a0efe5eb61c 100644 --- a/Mage.Client/src/main/java/mage/client/unusedFiles/PlayerPanel.java +++ b/Mage.Client/src/main/java/mage/client/unusedFiles/PlayerPanel.java @@ -36,11 +36,10 @@ package mage.client.unusedFiles; import java.awt.Color; import java.util.UUID; -import mage.client.MageFrame; + import mage.client.SessionHandler; import mage.client.cards.BigCard; import mage.client.dialog.ShowCardsDialog; -import mage.remote.Session; import mage.view.PlayerView; /** @@ -108,11 +107,7 @@ public class PlayerPanel extends javax.swing.JPanel { btnPlayerName.setText("Player Name"); // NOI18N btnPlayerName.setName("btnPlayerName"); // NOI18N - btnPlayerName.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnPlayerNameActionPerformed(evt); - } - }); + btnPlayerName.addActionListener(evt -> btnPlayerNameActionPerformed(evt)); lblLife.setLabelFor(txtLife); lblLife.setText("Life:"); // NOI18N @@ -140,11 +135,7 @@ public class PlayerPanel extends javax.swing.JPanel { lblGrave.setName("lblGrave"); // NOI18N btnGrave.setName("btnGrave"); // NOI18N - btnGrave.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnGraveActionPerformed(evt); - } - }); + btnGrave.addActionListener(evt -> btnGraveActionPerformed(evt)); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); diff --git a/Mage.Client/src/main/java/mage/client/util/DefaultActionCallback.java b/Mage.Client/src/main/java/mage/client/util/DefaultActionCallback.java index 9723a4b8c76..7a678e49be7 100644 --- a/Mage.Client/src/main/java/mage/client/util/DefaultActionCallback.java +++ b/Mage.Client/src/main/java/mage/client/util/DefaultActionCallback.java @@ -4,7 +4,6 @@ import java.awt.event.MouseEvent; import java.util.UUID; import mage.client.SessionHandler; -import mage.remote.Session; import mage.view.CardView; diff --git a/Mage.Client/src/main/java/mage/client/util/GameManager.java b/Mage.Client/src/main/java/mage/client/util/GameManager.java index 0a44fa14676..731a5c80658 100644 --- a/Mage.Client/src/main/java/mage/client/util/GameManager.java +++ b/Mage.Client/src/main/java/mage/client/util/GameManager.java @@ -8,7 +8,7 @@ import java.util.UUID; * @author nantuko */ public class GameManager { - private static GameManager fInstance = new GameManager(); + private static final GameManager fInstance = new GameManager(); public static GameManager getInstance() { return fInstance; diff --git a/Mage.Client/src/main/java/mage/client/util/ImageHelper.java b/Mage.Client/src/main/java/mage/client/util/ImageHelper.java index 17eb300b37d..64c727257fe 100644 --- a/Mage.Client/src/main/java/mage/client/util/ImageHelper.java +++ b/Mage.Client/src/main/java/mage/client/util/ImageHelper.java @@ -49,8 +49,8 @@ import org.mage.card.arcane.UI; */ public class ImageHelper { - protected static HashMap images = new HashMap<>(); - protected static HashMap backgrounds = new HashMap<>(); + protected static final HashMap images = new HashMap<>(); + protected static final HashMap backgrounds = new HashMap<>(); public static BufferedImage loadImage(String ref, int width, int height) { BufferedImage image = loadImage(ref); diff --git a/Mage.Client/src/main/java/mage/client/util/NaturalOrderComparator.java b/Mage.Client/src/main/java/mage/client/util/NaturalOrderComparator.java index 120df238c0d..6b1fb5e7123 100644 --- a/Mage.Client/src/main/java/mage/client/util/NaturalOrderComparator.java +++ b/Mage.Client/src/main/java/mage/client/util/NaturalOrderComparator.java @@ -181,7 +181,7 @@ public class NaturalOrderComparator implements Comparator System.out.println("Scrambled: " + scrambled); - Collections.sort(scrambled, new NaturalOrderComparator()); + scrambled.sort(new NaturalOrderComparator()); System.out.println("Sorted: " + scrambled); } diff --git a/Mage.Client/src/main/java/mage/client/util/SettingsManager.java b/Mage.Client/src/main/java/mage/client/util/SettingsManager.java index 1e87c5cea7b..990fa556eb6 100644 --- a/Mage.Client/src/main/java/mage/client/util/SettingsManager.java +++ b/Mage.Client/src/main/java/mage/client/util/SettingsManager.java @@ -10,7 +10,7 @@ import org.mage.card.arcane.CardPanel; * @author nantuko */ public class SettingsManager { - private static SettingsManager fInstance = new SettingsManager(); + private static final SettingsManager fInstance = new SettingsManager(); public static SettingsManager getInstance() { return fInstance; @@ -68,5 +68,5 @@ public class SettingsManager { private int screenWidth; private int screenHeight; - private Rectangle cardSize = CardPanel.CARD_SIZE_FULL; + private final Rectangle cardSize = CardPanel.CARD_SIZE_FULL; } diff --git a/Mage.Client/src/main/java/mage/client/util/TransformedImageCache.java b/Mage.Client/src/main/java/mage/client/util/TransformedImageCache.java index ef59199b983..285512c0725 100644 --- a/Mage.Client/src/main/java/mage/client/util/TransformedImageCache.java +++ b/Mage.Client/src/main/java/mage/client/util/TransformedImageCache.java @@ -68,27 +68,19 @@ public class TransformedImageCache { } } - static Map> IMAGE_CACHE; + static final Map> IMAGE_CACHE; static { // TODO: can we use a single map? - IMAGE_CACHE = ImageCaches.register(new MapMaker().softValues().makeComputingMap(new Function>() { - @Override - public Map apply(final Key key) { - return new MapMaker().weakKeys().softValues().makeComputingMap(new Function() { - @Override - public BufferedImage apply(BufferedImage image) { - if (key.width != image.getWidth() || key.height != image.getHeight()) { - image = resizeImage(image, key.width, key.height); - } - if (key.angle != 0.0) { - image = rotateImage(image, key.angle); - } - return image; - } - }); + IMAGE_CACHE = ImageCaches.register(new MapMaker().softValues().makeComputingMap((Function>) key -> new MapMaker().weakKeys().softValues().makeComputingMap(image -> { + if (key.width != image.getWidth() || key.height != image.getHeight()) { + image = resizeImage(image, key.width, key.height); } - })); + if (key.angle != 0.0) { + image = rotateImage(image, key.angle); + } + return image; + }))); } private static BufferedImage rotateImage(BufferedImage image, double angle) { diff --git a/Mage.Client/src/main/java/mage/client/util/audio/AudioGroup.java b/Mage.Client/src/main/java/mage/client/util/audio/AudioGroup.java index 7db982c7522..1cd97b9b23d 100644 --- a/Mage.Client/src/main/java/mage/client/util/audio/AudioGroup.java +++ b/Mage.Client/src/main/java/mage/client/util/audio/AudioGroup.java @@ -9,5 +9,5 @@ public enum AudioGroup { GameSounds, DraftSounds, SkipSounds, - OtherSounds; + OtherSounds } diff --git a/Mage.Client/src/main/java/mage/client/util/audio/LinePool.java b/Mage.Client/src/main/java/mage/client/util/audio/LinePool.java index f12a6d791eb..633b677a350 100644 --- a/Mage.Client/src/main/java/mage/client/util/audio/LinePool.java +++ b/Mage.Client/src/main/java/mage/client/util/audio/LinePool.java @@ -39,8 +39,8 @@ public class LinePool { * from the timer thread to prevent deadlocks in PulseAudio internals. */ - private Mixer mixer; - private int alwaysActive; + private final Mixer mixer; + private final int alwaysActive; public LinePool() { this(new AudioFormat(22050, 16, 1, true, false), 4, 1); diff --git a/Mage.Client/src/main/java/mage/client/util/audio/MusicPlayer.java b/Mage.Client/src/main/java/mage/client/util/audio/MusicPlayer.java index 4cae5b1bb1d..b823ad3ed0d 100644 --- a/Mage.Client/src/main/java/mage/client/util/audio/MusicPlayer.java +++ b/Mage.Client/src/main/java/mage/client/util/audio/MusicPlayer.java @@ -16,7 +16,7 @@ public class MusicPlayer { private static final Logger log = Logger.getLogger(AudioManager.class); String filepath; String filename; - List filelist = new List(); + final List filelist = new List(); static MusicPlayer player = null; //open file and add list @@ -138,11 +138,11 @@ public class MusicPlayer { breaked = false; } } - }; + } class PlayThread extends Thread { - byte tempBuffer[] = new byte[320]; + final byte[] tempBuffer = new byte[320]; public void run() { try { @@ -165,5 +165,5 @@ public class MusicPlayer { log.error("Thread error: " + e); } } - }; + } } diff --git a/Mage.Client/src/main/java/mage/client/util/gui/ArrowBuilder.java b/Mage.Client/src/main/java/mage/client/util/gui/ArrowBuilder.java index 89cb8a762ff..1f0c3d67643 100644 --- a/Mage.Client/src/main/java/mage/client/util/gui/ArrowBuilder.java +++ b/Mage.Client/src/main/java/mage/client/util/gui/ArrowBuilder.java @@ -12,7 +12,7 @@ import java.util.List; */ public class ArrowBuilder { - private static ArrowBuilder instance; + private static final ArrowBuilder instance; static { instance = new ArrowBuilder(); @@ -38,7 +38,7 @@ public class ArrowBuilder { private int currentHeight; public enum Type { - PAIRED, SOURCE, TARGET, COMBAT, ENCHANT_PLAYERS; + PAIRED, SOURCE, TARGET, COMBAT, ENCHANT_PLAYERS } /** @@ -103,16 +103,8 @@ public class ArrowBuilder { synchronized (map) { p.add(arrow); - Map> innerMap = map.get(gameId); - if (innerMap == null) { - innerMap = new HashMap>(); - map.put(gameId, innerMap); - } - java.util.List arrows = innerMap.get(type); - if (arrows == null) { - arrows = new ArrayList(); - innerMap.put(type, arrows); - } + Map> innerMap = map.computeIfAbsent(gameId, k -> new HashMap>()); + java.util.List arrows = innerMap.computeIfAbsent(type, k -> new ArrayList()); arrows.add(arrow); } diff --git a/Mage.Client/src/main/java/mage/client/util/gui/BufferedImageBuilder.java b/Mage.Client/src/main/java/mage/client/util/gui/BufferedImageBuilder.java index 0c75503dc97..cf71f462331 100644 --- a/Mage.Client/src/main/java/mage/client/util/gui/BufferedImageBuilder.java +++ b/Mage.Client/src/main/java/mage/client/util/gui/BufferedImageBuilder.java @@ -49,25 +49,19 @@ public class BufferedImageBuilder { private void waitForImage(BufferedImage bufferedImage) { final ImageLoadStatus imageLoadStatus = new ImageLoadStatus(); - bufferedImage.getHeight(new ImageObserver() { - @Override - public boolean imageUpdate(Image img, int infoflags, int x, int y, int width, int height) { - if (infoflags == ALLBITS) { - imageLoadStatus.heightDone = true; - return true; - } - return false; + bufferedImage.getHeight((img, infoflags, x, y, width, height) -> { + if (infoflags == ImageObserver.ALLBITS) { + imageLoadStatus.heightDone = true; + return true; } + return false; }); - bufferedImage.getWidth(new ImageObserver() { - @Override - public boolean imageUpdate(Image img, int infoflags, int x, int y, int width, int height) { - if (infoflags == ALLBITS) { - imageLoadStatus.widthDone = true; - return true; - } - return false; + bufferedImage.getWidth((img, infoflags, x, y, width, height) -> { + if (infoflags == ImageObserver.ALLBITS) { + imageLoadStatus.widthDone = true; + return true; } + return false; }); while (!imageLoadStatus.widthDone && !imageLoadStatus.heightDone) { try { diff --git a/Mage.Client/src/main/java/mage/client/util/gui/GuiDisplayUtil.java b/Mage.Client/src/main/java/mage/client/util/gui/GuiDisplayUtil.java index 8cc83f05895..081245971d7 100644 --- a/Mage.Client/src/main/java/mage/client/util/gui/GuiDisplayUtil.java +++ b/Mage.Client/src/main/java/mage/client/util/gui/GuiDisplayUtil.java @@ -156,8 +156,8 @@ public class GuiDisplayUtil { if (card.getMageObjectType().canHaveCounters()) { ArrayList counters = new ArrayList<>(); if (card instanceof PermanentView) { - if (((PermanentView) card).getCounters() != null) { - counters = new ArrayList<>(((PermanentView) card).getCounters()); + if (card.getCounters() != null) { + counters = new ArrayList<>(card.getCounters()); } } else if (card.getCounters() != null) { counters = new ArrayList<>(card.getCounters()); diff --git a/Mage.Client/src/main/java/mage/client/util/gui/MageDialogState.java b/Mage.Client/src/main/java/mage/client/util/gui/MageDialogState.java index 13a48e25b1c..1c272674e0c 100644 --- a/Mage.Client/src/main/java/mage/client/util/gui/MageDialogState.java +++ b/Mage.Client/src/main/java/mage/client/util/gui/MageDialogState.java @@ -37,9 +37,9 @@ import mage.client.dialog.MageDialog; */ public class MageDialogState { - Dimension dimension; - int xPos; - int yPos; + final Dimension dimension; + final int xPos; + final int yPos; public MageDialogState(MageDialog mageDialog) { this.dimension = mageDialog.getSize(); diff --git a/Mage.Client/src/main/java/mage/client/util/gui/TableSpinnerEditor.java b/Mage.Client/src/main/java/mage/client/util/gui/TableSpinnerEditor.java index 12f22edcd12..d7f239d770e 100644 --- a/Mage.Client/src/main/java/mage/client/util/gui/TableSpinnerEditor.java +++ b/Mage.Client/src/main/java/mage/client/util/gui/TableSpinnerEditor.java @@ -28,8 +28,6 @@ package mage.client.util.gui; import java.awt.Component; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; import java.awt.event.FocusEvent; import java.awt.event.FocusListener; import java.awt.event.KeyEvent; @@ -50,9 +48,9 @@ import mage.client.cards.CardsList; */ public class TableSpinnerEditor extends DefaultCellEditor { - JSpinner spinner; - JSpinner.DefaultEditor editor; - JTextField textField; + final JSpinner spinner; + final JSpinner.DefaultEditor editor; + final JTextField textField; boolean valueSet; private JTable table; private int lastRow = -1; @@ -60,7 +58,7 @@ public class TableSpinnerEditor extends DefaultCellEditor { private int lastOriginalHeigh; private int currentOriginalHeigh; private static final int NEEDED_HIGH = 24; - CardsList cardsList; + final CardsList cardsList; // Initializes the spinner. public TableSpinnerEditor(CardsList cardsList) { @@ -83,12 +81,9 @@ public class TableSpinnerEditor extends DefaultCellEditor { table.setRowHeight(lastRow, NEEDED_HIGH); } - SwingUtilities.invokeLater(new Runnable() { - @Override - public void run() { - if (valueSet) { - textField.setCaretPosition(1); - } + SwingUtilities.invokeLater(() -> { + if (valueSet) { + textField.setCaretPosition(1); } }); } @@ -101,12 +96,7 @@ public class TableSpinnerEditor extends DefaultCellEditor { } } }); - textField.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent ae) { - stopCellEditing(); - } - }); + textField.addActionListener(ae -> stopCellEditing()); } private synchronized void resetRow() { @@ -129,12 +119,7 @@ public class TableSpinnerEditor extends DefaultCellEditor { if (!valueSet) { spinner.setValue(value); } - SwingUtilities.invokeLater(new Runnable() { - @Override - public void run() { - textField.requestFocus(); - } - }); + SwingUtilities.invokeLater(() -> textField.requestFocus()); return spinner; } diff --git a/Mage.Client/src/main/java/mage/client/util/gui/countryBox/CountryCellRenderer.java b/Mage.Client/src/main/java/mage/client/util/gui/countryBox/CountryCellRenderer.java index ed4c03a41f8..e63d78f56b8 100644 --- a/Mage.Client/src/main/java/mage/client/util/gui/countryBox/CountryCellRenderer.java +++ b/Mage.Client/src/main/java/mage/client/util/gui/countryBox/CountryCellRenderer.java @@ -42,7 +42,7 @@ public class CountryCellRenderer extends DefaultTableCellRenderer { public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { JLabel label = (JLabel) super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); if (value == null || ((String) value).isEmpty()) { - value = (String) "world"; + value = "world"; } label.setToolTipText(CountryUtil.getCountryName((String) value)); label.setIcon(CountryUtil.getCountryFlagIcon((String) value)); diff --git a/Mage.Client/src/main/java/mage/client/util/gui/countryBox/CountryComboBox.java b/Mage.Client/src/main/java/mage/client/util/gui/countryBox/CountryComboBox.java index 5fee4088d09..b054146b7fc 100644 --- a/Mage.Client/src/main/java/mage/client/util/gui/countryBox/CountryComboBox.java +++ b/Mage.Client/src/main/java/mage/client/util/gui/countryBox/CountryComboBox.java @@ -40,7 +40,7 @@ public class CountryComboBox extends JComboBox { private final DefaultComboBoxModel model; - public static String[][] countryList = { + public static final String[][] countryList = { {"Afghanistan", "af"}, {"Ã…land Islands", "ax"}, {"Albania", "al"}, diff --git a/Mage.Client/src/main/java/mage/client/util/sets/ConstructedFormats.java b/Mage.Client/src/main/java/mage/client/util/sets/ConstructedFormats.java index c7bda50e95f..a208a8b7abd 100644 --- a/Mage.Client/src/main/java/mage/client/util/sets/ConstructedFormats.java +++ b/Mage.Client/src/main/java/mage/client/util/sets/ConstructedFormats.java @@ -1,8 +1,6 @@ package mage.client.util.sets; import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; import java.util.Date; import java.util.GregorianCalendar; import java.util.HashMap; @@ -26,9 +24,7 @@ public class ConstructedFormats { public static final String FRONTIER = "- Frontier"; public static final String MODERN = "- Modern"; public static final String VINTAGE_LEGACY = "- Vintage / Legacy"; - ; public static final String CUSTOM = "- Custom"; - ; public static final Standard STANDARD_CARDS = new Standard(); private static final Map> underlyingSetCodesPerFormat = new HashMap<>(); @@ -99,9 +95,7 @@ public class ConstructedFormats { // Create the Block formats if (set.getType().equals(SetType.EXPANSION) && set.getBlockName() != null) { String blockDisplayName = getBlockDisplayName(set.getBlockName()); - if (underlyingSetCodesPerFormat.get(blockDisplayName) == null) { - underlyingSetCodesPerFormat.put(blockDisplayName, new ArrayList<>()); - } + underlyingSetCodesPerFormat.computeIfAbsent(blockDisplayName, k -> new ArrayList<>()); underlyingSetCodesPerFormat.get(blockDisplayName).add(set.getCode()); @@ -117,9 +111,7 @@ public class ConstructedFormats { } if (set.getType().equals(SetType.SUPPLEMENTAL) && set.getBlockName() != null) { - if (expansionInfo.get(set.getBlockName()) == null) { - expansionInfo.put(set.getBlockName(), set); - } + expansionInfo.putIfAbsent(set.getBlockName(), set); if (expansionInfo.get(set.getBlockName()).getReleaseDate().before(set.getReleaseDate())) { expansionInfo.put(set.getBlockName(), set); @@ -127,89 +119,84 @@ public class ConstructedFormats { } } - Collections.sort(formats, new Comparator() { - - @Override - public int compare(String name1, String name2) { - ExpansionInfo expansionInfo1 = expansionInfo.get(name1); - ExpansionInfo expansionInfo2 = expansionInfo.get(name2); - - if (expansionInfo1.getType().compareTo(expansionInfo2.getType()) == 0) { - SetType setType = expansionInfo1.getType(); - switch (setType) { - case EXPANSION: - if (expansionInfo1.getBlockName() == null) { - if (expansionInfo2.getBlockName() == null) { - return expansionInfo2.getReleaseDate().compareTo(expansionInfo1.getReleaseDate()); - } - - return 1; - } + formats.sort((name1, name2) -> { + ExpansionInfo expansionInfo1 = expansionInfo.get(name1); + ExpansionInfo expansionInfo2 = expansionInfo.get(name2); + if (expansionInfo1.getType().compareTo(expansionInfo2.getType()) == 0) { + SetType setType = expansionInfo1.getType(); + switch (setType) { + case EXPANSION: + if (expansionInfo1.getBlockName() == null) { if (expansionInfo2.getBlockName() == null) { - return -1; - } - - //Block comparison - if (name1.endsWith("Block") && name2.endsWith("Block")) { return expansionInfo2.getReleaseDate().compareTo(expansionInfo1.getReleaseDate()); } - if (name1.endsWith("Block")) { - if (expansionInfo1.getBlockName().equals(expansionInfo2.getBlockName())) { - return -1; - } - } + return 1; + } - if (name2.endsWith("Block")) { - if (expansionInfo1.getBlockName().equals(expansionInfo2.getBlockName())) { - return 1; - } - } + if (expansionInfo2.getBlockName() == null) { + return -1; + } + //Block comparison + if (name1.endsWith("Block") && name2.endsWith("Block")) { return expansionInfo2.getReleaseDate().compareTo(expansionInfo1.getReleaseDate()); - case SUPPLEMENTAL: - if (expansionInfo1.getBlockName() == null) { - if (expansionInfo2.getBlockName() == null) { - return expansionInfo2.getReleaseDate().compareTo(expansionInfo1.getReleaseDate()); - } - - return -1; - } - - if (expansionInfo2.getBlockName() == null) { - return 1; - } + } + if (name1.endsWith("Block")) { if (expansionInfo1.getBlockName().equals(expansionInfo2.getBlockName())) { - //If release date is the same, sort alphabetically. - if (expansionInfo2.getReleaseDate().compareTo(expansionInfo1.getReleaseDate()) == 0) { - return name1.compareTo(name2); - } + return -1; + } + } + + if (name2.endsWith("Block")) { + if (expansionInfo1.getBlockName().equals(expansionInfo2.getBlockName())) { + return 1; + } + } + + return expansionInfo2.getReleaseDate().compareTo(expansionInfo1.getReleaseDate()); + case SUPPLEMENTAL: + if (expansionInfo1.getBlockName() == null) { + if (expansionInfo2.getBlockName() == null) { return expansionInfo2.getReleaseDate().compareTo(expansionInfo1.getReleaseDate()); } - if (expansionInfo1.getBlockName().startsWith("Duel Decks")) { - if (expansionInfo1.getBlockName().startsWith("Duel Decks: Anthology")) { - return 1; - } + return -1; + } + + if (expansionInfo2.getBlockName() == null) { + return 1; + } + + if (expansionInfo1.getBlockName().equals(expansionInfo2.getBlockName())) { + //If release date is the same, sort alphabetically. + if (expansionInfo2.getReleaseDate().compareTo(expansionInfo1.getReleaseDate()) == 0) { + return name1.compareTo(name2); + } + return expansionInfo2.getReleaseDate().compareTo(expansionInfo1.getReleaseDate()); + } + + if (expansionInfo1.getBlockName().startsWith("Duel Decks")) { + if (expansionInfo1.getBlockName().startsWith("Duel Decks: Anthology")) { return 1; } - if (expansionInfo2.getBlockName().startsWith("Duel Decks")) { - return -1; - } + return 1; + } + if (expansionInfo2.getBlockName().startsWith("Duel Decks")) { + return -1; + } - ExpansionInfo blockInfo1 = expansionInfo.get(expansionInfo1.getBlockName()); - ExpansionInfo blockInfo2 = expansionInfo.get(expansionInfo2.getBlockName()); + ExpansionInfo blockInfo1 = expansionInfo.get(expansionInfo1.getBlockName()); + ExpansionInfo blockInfo2 = expansionInfo.get(expansionInfo2.getBlockName()); - return blockInfo2.getReleaseDate().compareTo(blockInfo1.getReleaseDate()); - default: - return expansionInfo2.getReleaseDate().compareTo(expansionInfo1.getReleaseDate()); - } + return blockInfo2.getReleaseDate().compareTo(blockInfo1.getReleaseDate()); + default: + return expansionInfo2.getReleaseDate().compareTo(expansionInfo1.getReleaseDate()); } - return expansionInfo1.getType().compareTo(expansionInfo2.getType()); } - + return expansionInfo1.getType().compareTo(expansionInfo2.getType()); }); if (!formats.isEmpty()) { formats.add(0, CUSTOM); @@ -224,10 +211,7 @@ public class ConstructedFormats { } private static String getBlockDisplayName(String blockName) { - StringBuilder builder = new StringBuilder(); - builder.append("* ").append(blockName).append(" Block"); - - return builder.toString(); + return "* " + blockName + " Block"; } // Attention -Month is 0 Based so Feb = 1 for example. private static final Date extendedDate = new GregorianCalendar(2009, 7, 20).getTime(); diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/Animation.java b/Mage.Client/src/main/java/org/mage/card/arcane/Animation.java index ea69e5cc6e1..34a44b66e2a 100644 --- a/Mage.Client/src/main/java/org/mage/card/arcane/Animation.java +++ b/Mage.Client/src/main/java/org/mage/card/arcane/Animation.java @@ -8,11 +8,11 @@ import mage.cards.MagePermanent; public abstract class Animation { - private static boolean ENABLED = true; + private static final boolean ENABLED = true; private static final long TARGET_MILLIS_PER_FRAME = 30; - private static Timer timer = new Timer("Animation", true); + private static final Timer timer = new Timer("Animation", true); private static CardPanel enlargedCardPanel; private static CardPanel enlargedAnimationPanel; @@ -28,13 +28,10 @@ public abstract class Animation { public Animation(final long duration, long delay) { if (!ENABLED) { - UI.invokeLater(new Runnable() { - @Override - public void run() { - start(); - //update(1.0f); - end(); - } + UI.invokeLater(() -> { + start(); + //update(1.0f); + end(); }); return; } @@ -82,7 +79,7 @@ public abstract class Animation { private static final int SAMPLES = 6; private static final long MAX_FRAME = 100; // Max time for one frame, to weed out spikes. - private long samples[] = new long[SAMPLES]; + private final long[] samples = new long[SAMPLES]; private int sampleIndex; public FrameTimer() { @@ -202,117 +199,105 @@ public abstract class Animation { public static void moveCardToPlay(final int startX, final int startY, final int startWidth, final int endX, final int endY, final int endWidth, final CardPanel animationPanel, final CardPanel placeholder, final JLayeredPane layeredPane, final int speed) { - UI.invokeLater(new Runnable() { - @Override - public void run() { - final int startHeight = Math.round(startWidth * CardPanel.ASPECT_RATIO); - final int endHeight = Math.round(endWidth * CardPanel.ASPECT_RATIO); - final float a = 2f; - final float sqrta = (float) Math.sqrt(1 / a); + UI.invokeLater(() -> { + final int startHeight = Math.round(startWidth * CardPanel.ASPECT_RATIO); + final int endHeight = Math.round(endWidth * CardPanel.ASPECT_RATIO); + final float a = 2f; + final float sqrta = (float) Math.sqrt(1 / a); - animationPanel.setCardBounds(startX, startY, startWidth, startHeight); - animationPanel.setAnimationPanel(true); - Container parent = animationPanel.getParent(); - if (parent != null && !parent.equals(layeredPane)) { - layeredPane.add(animationPanel); - layeredPane.setLayer(animationPanel, JLayeredPane.MODAL_LAYER); + animationPanel.setCardBounds(startX, startY, startWidth, startHeight); + animationPanel.setAnimationPanel(true); + Container parent = animationPanel.getParent(); + if (parent != null && !parent.equals(layeredPane)) { + layeredPane.add(animationPanel); + layeredPane.setLayer(animationPanel, JLayeredPane.MODAL_LAYER); + } + + new Animation(700) { + @Override + protected void update(float percentage) { + float percent = percentage; + if (placeholder != null && !placeholder.isShowing()) { + cancel(); + return; + } + int currentX = startX + Math.round((endX - startX + endWidth / 2f) * percent); + int currentY = startY + Math.round((endY - startY + endHeight / 2f) * percent); + int currentWidth, currentHeight; + int midWidth = Math.max(200, endWidth * 2); + int midHeight = Math.round(midWidth * CardPanel.ASPECT_RATIO); + if (percent <= 0.5f) { + percent = percent * 2; + float pp = sqrta * (1 - percent); + percent = 1 - a * pp * pp; + currentWidth = startWidth + Math.round((midWidth - startWidth) * percent); + currentHeight = startHeight + Math.round((midHeight - startHeight) * percent); + } else { + percent = (percent - 0.5f) * 2; + float pp = sqrta * percent; + percent = a * pp * pp; + currentWidth = midWidth + Math.round((endWidth - midWidth) * percent); + currentHeight = midHeight + Math.round((endHeight - midHeight) * percent); + } + currentX -= currentWidth / 2; + currentY -= currentHeight / 2; + animationPanel.setCardBounds(currentX, currentY, currentWidth, currentHeight); } - new Animation(700) { - @Override - protected void update(float percentage) { - float percent = percentage; - if (placeholder != null && !placeholder.isShowing()) { - cancel(); - return; + @Override + protected void end() { + EventQueue.invokeLater(() -> { + if (placeholder != null) { + placeholder.setDisplayEnabled(true); + placeholder.transferResources(animationPanel); } - int currentX = startX + Math.round((endX - startX + endWidth / 2f) * percent); - int currentY = startY + Math.round((endY - startY + endHeight / 2f) * percent); - int currentWidth, currentHeight; - int midWidth = Math.max(200, endWidth * 2); - int midHeight = Math.round(midWidth * CardPanel.ASPECT_RATIO); - if (percent <= 0.5f) { - percent = percent * 2; - float pp = sqrta * (1 - percent); - percent = 1 - a * pp * pp; - currentWidth = startWidth + Math.round((midWidth - startWidth) * percent); - currentHeight = startHeight + Math.round((midHeight - startHeight) * percent); - } else { - percent = (percent - 0.5f) * 2; - float pp = sqrta * percent; - percent = a * pp * pp; - currentWidth = midWidth + Math.round((endWidth - midWidth) * percent); - currentHeight = midHeight + Math.round((endHeight - midHeight) * percent); - } - currentX -= currentWidth / 2; - currentY -= currentHeight / 2; - animationPanel.setCardBounds(currentX, currentY, currentWidth, currentHeight); - } - - @Override - protected void end() { - EventQueue.invokeLater(new Runnable() { - @Override - public void run() { - if (placeholder != null) { - placeholder.setDisplayEnabled(true); - placeholder.transferResources(animationPanel); - } - animationPanel.setVisible(false); - animationPanel.repaint(); - layeredPane.remove(animationPanel); - } - }); - } - }; - } + animationPanel.setVisible(false); + animationPanel.repaint(); + layeredPane.remove(animationPanel); + }); + } + }; }); } public static void moveCard(final int startX, final int startY, final int startWidth, final int endX, final int endY, final int endWidth, final CardPanel animationPanel, final CardPanel placeholder, final JLayeredPane layeredPane, final int speed) { - UI.invokeLater(new Runnable() { - @Override - public void run() { - final int startHeight = Math.round(startWidth * CardPanel.ASPECT_RATIO); - final int endHeight = Math.round(endWidth * CardPanel.ASPECT_RATIO); + UI.invokeLater(() -> { + final int startHeight = Math.round(startWidth * CardPanel.ASPECT_RATIO); + final int endHeight = Math.round(endWidth * CardPanel.ASPECT_RATIO); - animationPanel.setCardBounds(startX, startY, startWidth, startHeight); - animationPanel.setAnimationPanel(true); - Container parent = animationPanel.getParent(); - if (parent != null && !parent.equals(layeredPane)) { - layeredPane.add(animationPanel); - layeredPane.setLayer(animationPanel, JLayeredPane.MODAL_LAYER); + animationPanel.setCardBounds(startX, startY, startWidth, startHeight); + animationPanel.setAnimationPanel(true); + Container parent = animationPanel.getParent(); + if (parent != null && !parent.equals(layeredPane)) { + layeredPane.add(animationPanel); + layeredPane.setLayer(animationPanel, JLayeredPane.MODAL_LAYER); + } + + new Animation(speed) { + @Override + protected void update(float percentage) { + int currentX = startX + Math.round((endX - startX) * percentage); + int currentY = startY + Math.round((endY - startY) * percentage); + int currentWidth = startWidth + Math.round((endWidth - startWidth) * percentage); + int currentHeight = startHeight + Math.round((endHeight - startHeight) * percentage); + animationPanel.setCardBounds(currentX, currentY, currentWidth, currentHeight); } - new Animation(speed) { - @Override - protected void update(float percentage) { - int currentX = startX + Math.round((endX - startX) * percentage); - int currentY = startY + Math.round((endY - startY) * percentage); - int currentWidth = startWidth + Math.round((endWidth - startWidth) * percentage); - int currentHeight = startHeight + Math.round((endHeight - startHeight) * percentage); - animationPanel.setCardBounds(currentX, currentY, currentWidth, currentHeight); - } - - @Override - protected void end() { - EventQueue.invokeLater(new Runnable() { - @Override - public void run() { - if (placeholder != null) { - placeholder.setDisplayEnabled(true); - placeholder.transferResources(animationPanel); - } - animationPanel.setVisible(false); - animationPanel.repaint(); - layeredPane.remove(animationPanel); - } - }); - } - }; - } + @Override + protected void end() { + EventQueue.invokeLater(() -> { + if (placeholder != null) { + placeholder.setDisplayEnabled(true); + placeholder.transferResources(animationPanel); + } + animationPanel.setVisible(false); + animationPanel.repaint(); + layeredPane.remove(animationPanel); + }); + } + }; }); } @@ -357,12 +342,7 @@ public abstract class Animation { protected void end() { animationPanel.setVisible(false); animationPanel.repaint(); - EventQueue.invokeLater(new Runnable() { - @Override - public void run() { - layeredPane.remove(animationPanel); - } - }); + EventQueue.invokeLater(() -> layeredPane.remove(animationPanel)); } }; } diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/CardPanel.java b/Mage.Client/src/main/java/org/mage/card/arcane/CardPanel.java index a26d25c7cac..fd329f538dc 100644 --- a/Mage.Client/src/main/java/org/mage/card/arcane/CardPanel.java +++ b/Mage.Client/src/main/java/org/mage/card/arcane/CardPanel.java @@ -6,7 +6,6 @@ import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Point; import java.awt.Rectangle; -import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ComponentEvent; import java.awt.event.ComponentListener; @@ -72,7 +71,7 @@ public abstract class CardPanel extends MagePermanent implements MouseListener, private final List links = new ArrayList<>(); - public JPanel buttonPanel; + public final JPanel buttonPanel; private JButton dayNightButton; private JButton showCopySourceButton; @@ -89,11 +88,11 @@ public abstract class CardPanel extends MagePermanent implements MouseListener, private ActionCallback callback; protected boolean tooltipShowing; - protected TextPopup tooltipText; + protected final TextPopup tooltipText; protected UUID gameId; private TransferData data = new TransferData(); - private boolean isPermanent; + private final boolean isPermanent; private boolean hasSickness; private String zone; @@ -139,17 +138,14 @@ public abstract class CardPanel extends MagePermanent implements MouseListener, dayNightButton.setToolTipText("This permanent is a double faced card. To see the back face card, push this button or turn mouse wheel down while hovering with the mouse pointer over the permanent."); BufferedImage day = ImageManagerImpl.getInstance().getDayImage(); dayNightButton.setIcon(new ImageIcon(day)); - dayNightButton.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - // if card is being rotated, ignore action performed - // if card is tapped, no visual transforming is possible (implementation limitation) - // if card is permanent, it will be rotated by Mage, so manual rotate should be possible - if (animationInProgress || isTapped() || isPermanent) { - return; - } - Animation.transformCard(CardPanel.this, CardPanel.this, true); + dayNightButton.addActionListener(e -> { + // if card is being rotated, ignore action performed + // if card is tapped, no visual transforming is possible (implementation limitation) + // if card is permanent, it will be rotated by Mage, so manual rotate should be possible + if (animationInProgress || isTapped() || isPermanent) { + return; } + Animation.transformCard(CardPanel.this, CardPanel.this, true); }); // Add it @@ -164,12 +160,9 @@ public abstract class CardPanel extends MagePermanent implements MouseListener, showCopySourceButton.setToolTipText("This permanent is copying a target. To see original card, push this button or turn mouse wheel down while hovering with the mouse pointer over the permanent."); showCopySourceButton.setVisible(((PermanentView) this.gameCard).isCopy()); showCopySourceButton.setIcon(new ImageIcon(ImageManagerImpl.getInstance().getCopyInformIconImage())); - showCopySourceButton.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - ActionCallback callback = Plugins.getInstance().getActionCallback(); - ((MageActionCallback) callback).enlargeCard(EnlargeMode.COPY); - } + showCopySourceButton.addActionListener(e -> { + ActionCallback callback1 = Plugins.getInstance().getActionCallback(); + ((MageActionCallback) callback1).enlargeCard(EnlargeMode.COPY); }); // Add it diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/CardPanelComponentImpl.java b/Mage.Client/src/main/java/org/mage/card/arcane/CardPanelComponentImpl.java index 4003eaa7a29..827ecc70a5b 100644 --- a/Mage.Client/src/main/java/org/mage/card/arcane/CardPanelComponentImpl.java +++ b/Mage.Client/src/main/java/org/mage/card/arcane/CardPanelComponentImpl.java @@ -179,12 +179,7 @@ public class CardPanelComponentImpl extends CardPanel { } static { - IMAGE_CACHE = ImageCaches.register(new MapMaker().softValues().makeComputingMap(new Function() { - @Override - public BufferedImage apply(Key key) { - return createImage(key); - } - })); + IMAGE_CACHE = ImageCaches.register(new MapMaker().softValues().makeComputingMap((Function) key -> createImage(key))); } public CardPanelComponentImpl(CardView newGameCard, UUID gameId, final boolean loadImage, ActionCallback callback, final boolean foil, Dimension dimension) { @@ -472,7 +467,7 @@ public class CardPanelComponentImpl extends CardPanel { ptText.setVisible(showText); if (showText) { - int fontSize = (int) cardHeight / 11; + int fontSize = cardHeight / 11; titleText.setFont(getFont().deriveFont(Font.BOLD, fontSize)); int titleX = Math.round(cardWidth * (20f / 480)); @@ -533,33 +528,27 @@ public class CardPanelComponentImpl extends CardPanel { //final CardView gameCard = this.gameCard; final int stamp = ++updateArtImageStamp; - Util.threadPool.submit(new Runnable() { - @Override - public void run() { - try { - final BufferedImage srcImage; - if (gameCard.isFaceDown()) { - srcImage = getFaceDownImage(); - } else if (getCardWidth() > THUMBNAIL_SIZE_FULL.width) { - srcImage = ImageCache.getImage(gameCard, getCardWidth(), getCardHeight()); - } else { - srcImage = ImageCache.getThumbnail(gameCard); - } - UI.invokeLater(new Runnable() { - @Override - public void run() { - if (stamp == updateArtImageStamp) { - hasImage = srcImage != null; - setText(gameCard); - setImage(srcImage); - } - } - }); - } catch (Exception e) { - e.printStackTrace(); - } catch (Error err) { - err.printStackTrace(); + Util.threadPool.submit(() -> { + try { + final BufferedImage srcImage; + if (gameCard.isFaceDown()) { + srcImage = getFaceDownImage(); + } else if (getCardWidth() > THUMBNAIL_SIZE_FULL.width) { + srcImage = ImageCache.getImage(gameCard, getCardWidth(), getCardHeight()); + } else { + srcImage = ImageCache.getThumbnail(gameCard); } + UI.invokeLater(() -> { + if (stamp == updateArtImageStamp) { + hasImage = srcImage != null; + setText(gameCard); + setImage(srcImage); + } + }); + } catch (Exception e) { + e.printStackTrace(); + } catch (Error err) { + err.printStackTrace(); } }); } diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/CardPanelRenderImpl.java b/Mage.Client/src/main/java/org/mage/card/arcane/CardPanelRenderImpl.java index 05bc713a8b4..5d7a5362eb3 100644 --- a/Mage.Client/src/main/java/org/mage/card/arcane/CardPanelRenderImpl.java +++ b/Mage.Client/src/main/java/org/mage/card/arcane/CardPanelRenderImpl.java @@ -260,13 +260,9 @@ public class CardPanelRenderImpl extends CardPanel { = new ImageKey(gameCard, artImage, getCardWidth(), getCardHeight(), isChoosable(), isSelected()); - cardImage = IMAGE_CACHE.get(key); + cardImage = IMAGE_CACHE.computeIfAbsent(key, k -> renderCard()); // No cached copy exists? Render one and cache it - if (cardImage == null) { - cardImage = renderCard(); - IMAGE_CACHE.put(key, cardImage); - } } // And draw the image we now have @@ -324,39 +320,33 @@ public class CardPanelRenderImpl extends CardPanel { // Submit a task to draw with the card art when it arrives if (artImage == null) { final int stamp = ++updateArtImageStamp; - Util.threadPool.submit(new Runnable() { - @Override - public void run() { - try { - final BufferedImage srcImage; - if (gameCard.isFaceDown()) { - // Nothing to do - srcImage = null; - } else if (getCardWidth() > THUMBNAIL_SIZE_FULL.width) { - srcImage = ImageCache.getImage(gameCard, getCardWidth(), getCardHeight()); - } else { - srcImage = ImageCache.getThumbnail(gameCard); - } - - UI.invokeLater(new Runnable() { - @Override - public void run() { - if (stamp == updateArtImageStamp) { - artImage = srcImage; - cardRenderer.setArtImage(srcImage); - if (srcImage != null) { - // Invalidate and repaint - cardImage = null; - repaint(); - } - } - } - }); - } catch (Exception e) { - e.printStackTrace(); - } catch (Error err) { - err.printStackTrace(); + Util.threadPool.submit(() -> { + try { + final BufferedImage srcImage; + if (gameCard.isFaceDown()) { + // Nothing to do + srcImage = null; + } else if (getCardWidth() > THUMBNAIL_SIZE_FULL.width) { + srcImage = ImageCache.getImage(gameCard, getCardWidth(), getCardHeight()); + } else { + srcImage = ImageCache.getThumbnail(gameCard); } + + UI.invokeLater(() -> { + if (stamp == updateArtImageStamp) { + artImage = srcImage; + cardRenderer.setArtImage(srcImage); + if (srcImage != null) { + // Invalidate and repaint + cardImage = null; + repaint(); + } + } + }); + } catch (Exception e) { + e.printStackTrace(); + } catch (Error err) { + err.printStackTrace(); } }); } diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/CardRenderer.java b/Mage.Client/src/main/java/org/mage/card/arcane/CardRenderer.java index 3e29d6f30ce..64b23245c84 100644 --- a/Mage.Client/src/main/java/org/mage/card/arcane/CardRenderer.java +++ b/Mage.Client/src/main/java/org/mage/card/arcane/CardRenderer.java @@ -15,7 +15,6 @@ import java.awt.Polygon; import java.awt.image.BufferedImage; import java.util.ArrayList; -import mage.abilities.Ability; import mage.client.dialog.PreferencesDialog; import mage.constants.AbilityType; import mage.constants.CardType; @@ -96,7 +95,7 @@ public abstract class CardRenderer { }, 4); // Paint for a card back - public static Paint BG_TEXTURE_CARDBACK = new Color(153, 102, 51); + public static final Paint BG_TEXTURE_CARDBACK = new Color(153, 102, 51); // The size of the card protected int cardWidth; @@ -107,18 +106,18 @@ public abstract class CardRenderer { protected boolean isSelected; // Radius of the corners of the cards - protected static float CORNER_RADIUS_FRAC = 0.1f; //x cardWidth - protected static int CORNER_RADIUS_MIN = 3; + protected static final float CORNER_RADIUS_FRAC = 0.1f; //x cardWidth + protected static final int CORNER_RADIUS_MIN = 3; protected int cornerRadius; // The inset of the actual card from the black / white border around it - protected static float BORDER_WIDTH_FRAC = 0.03f; //x cardWidth - protected static float BORDER_WIDTH_MIN = 2; + protected static final float BORDER_WIDTH_FRAC = 0.03f; //x cardWidth + protected static final float BORDER_WIDTH_MIN = 2; protected int borderWidth; // The parsed text of the card - protected ArrayList textboxRules = new ArrayList<>(); - protected ArrayList textboxKeywords = new ArrayList<>(); + protected final ArrayList textboxRules = new ArrayList<>(); + protected final ArrayList textboxKeywords = new ArrayList<>(); // The Construtor // The constructor should prepare all of the things that it can @@ -271,14 +270,19 @@ public abstract class CardRenderer { // Don't render loyalty, we do that in the bottom corner if (!v.getName().equals("loyalty")) { Polygon p; - if (v.getName().equals("+1/+1")) { - p = PLUS_COUNTER_POLY; - } else if (v.getName().equals("-1/-1")) { - p = MINUS_COUNTER_POLY; - } else if (v.getName().equals("time")) { - p = TIME_COUNTER_POLY; - } else { - p = OTHER_COUNTER_POLY; + switch (v.getName()) { + case "+1/+1": + p = PLUS_COUNTER_POLY; + break; + case "-1/-1": + p = MINUS_COUNTER_POLY; + break; + case "time": + p = TIME_COUNTER_POLY; + break; + default: + p = OTHER_COUNTER_POLY; + break; } double scale = (0.1 * 0.25 * cardWidth); Graphics2D g2 = (Graphics2D) g.create(); diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/CardRendererUtils.java b/Mage.Client/src/main/java/org/mage/card/arcane/CardRendererUtils.java index bede760f806..628ecd66c0e 100644 --- a/Mage.Client/src/main/java/org/mage/card/arcane/CardRendererUtils.java +++ b/Mage.Client/src/main/java/org/mage/card/arcane/CardRendererUtils.java @@ -85,9 +85,9 @@ public class CardRendererUtils { // Abbreviate a piece of rules text, making substitutions to decrease its // length. Also abbreviate reminder text. - private static Pattern abbreviationPattern; - private static Map abbreviations = new HashMap(); - private static Pattern killReminderTextPattern; + private static final Pattern abbreviationPattern; + private static final Map abbreviations = new HashMap(); + private static final Pattern killReminderTextPattern; static { // Available abbreviations abbreviations.put("enters the battlefield", "ETB"); diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/GlowText.java b/Mage.Client/src/main/java/org/mage/card/arcane/GlowText.java index 77122b0d9cf..bc7ac1617d0 100644 --- a/Mage.Client/src/main/java/org/mage/card/arcane/GlowText.java +++ b/Mage.Client/src/main/java/org/mage/card/arcane/GlowText.java @@ -125,12 +125,7 @@ public class GlowText extends JLabel { } static { - IMAGE_CACHE = ImageCaches.register(new MapMaker().softValues().makeComputingMap(new Function() { - @Override - public BufferedImage apply(Key key) { - return createImage(key); - } - })); + IMAGE_CACHE = ImageCaches.register(new MapMaker().softValues().makeComputingMap((Function) GlowText::createImage)); } public void setGlow(Color glowColor, int size, float intensity) { diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/ManaSymbols.java b/Mage.Client/src/main/java/org/mage/card/arcane/ManaSymbols.java index 7052fdb277b..d1e37c6034f 100644 --- a/Mage.Client/src/main/java/org/mage/card/arcane/ManaSymbols.java +++ b/Mage.Client/src/main/java/org/mage/card/arcane/ManaSymbols.java @@ -228,7 +228,7 @@ public class ManaSymbols { manaCost = UI.getDisplayManaCost(manaCost); StringTokenizer tok = new StringTokenizer(manaCost, " "); while (tok.hasMoreTokens()) { - String symbol = tok.nextToken().substring(0); + String symbol = tok.nextToken(); // Check and load symbol in the width Image image = sizedSymbols.get(symbol); if (image == null) { diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/ModernCardRenderer.java b/Mage.Client/src/main/java/org/mage/card/arcane/ModernCardRenderer.java index 8a04b6148e9..6cad41a0940 100644 --- a/Mage.Client/src/main/java/org/mage/card/arcane/ModernCardRenderer.java +++ b/Mage.Client/src/main/java/org/mage/card/arcane/ModernCardRenderer.java @@ -87,65 +87,65 @@ public class ModernCardRenderer extends CardRenderer { } return new Font("Arial", Font.PLAIN, 1); } - public static Font BASE_BELEREN_FONT = loadFont("beleren-bold"); + public static final Font BASE_BELEREN_FONT = loadFont("beleren-bold"); - public static Paint BG_TEXTURE_WHITE = loadBackgroundTexture("white"); - public static Paint BG_TEXTURE_BLUE = loadBackgroundTexture("blue"); - public static Paint BG_TEXTURE_BLACK = loadBackgroundTexture("black"); - public static Paint BG_TEXTURE_RED = loadBackgroundTexture("red"); - public static Paint BG_TEXTURE_GREEN = loadBackgroundTexture("green"); - public static Paint BG_TEXTURE_GOLD = loadBackgroundTexture("gold"); - public static Paint BG_TEXTURE_ARTIFACT = loadBackgroundTexture("artifact"); - public static Paint BG_TEXTURE_LAND = loadBackgroundTexture("land"); - public static Paint BG_TEXTURE_VEHICLE = loadBackgroundTexture("vehicle"); + public static final Paint BG_TEXTURE_WHITE = loadBackgroundTexture("white"); + public static final Paint BG_TEXTURE_BLUE = loadBackgroundTexture("blue"); + public static final Paint BG_TEXTURE_BLACK = loadBackgroundTexture("black"); + public static final Paint BG_TEXTURE_RED = loadBackgroundTexture("red"); + public static final Paint BG_TEXTURE_GREEN = loadBackgroundTexture("green"); + public static final Paint BG_TEXTURE_GOLD = loadBackgroundTexture("gold"); + public static final Paint BG_TEXTURE_ARTIFACT = loadBackgroundTexture("artifact"); + public static final Paint BG_TEXTURE_LAND = loadBackgroundTexture("land"); + public static final Paint BG_TEXTURE_VEHICLE = loadBackgroundTexture("vehicle"); - public static BufferedImage FRAME_INVENTION = loadFramePart("invention_frame"); + public static final BufferedImage FRAME_INVENTION = loadFramePart("invention_frame"); - public static Color BORDER_WHITE = new Color(216, 203, 188); - public static Color BORDER_BLUE = new Color(20, 121, 175); - public static Color BORDER_BLACK = new Color(45, 45, 35); - public static Color BORDER_RED = new Color(201, 71, 58); - public static Color BORDER_GREEN = new Color(4, 136, 69); - public static Color BORDER_GOLD = new Color(255, 228, 124); - public static Color BORDER_COLORLESS = new Color(238, 242, 242); - public static Color BORDER_LAND = new Color(190, 173, 115); + public static final Color BORDER_WHITE = new Color(216, 203, 188); + public static final Color BORDER_BLUE = new Color(20, 121, 175); + public static final Color BORDER_BLACK = new Color(45, 45, 35); + public static final Color BORDER_RED = new Color(201, 71, 58); + public static final Color BORDER_GREEN = new Color(4, 136, 69); + public static final Color BORDER_GOLD = new Color(255, 228, 124); + public static final Color BORDER_COLORLESS = new Color(238, 242, 242); + public static final Color BORDER_LAND = new Color(190, 173, 115); - public static Color BOX_WHITE = new Color(244, 245, 239); - public static Color BOX_BLUE = new Color(201, 223, 237); - public static Color BOX_BLACK = new Color(204, 194, 192); - public static Color BOX_RED = new Color(246, 208, 185); - public static Color BOX_GREEN = new Color(205, 221, 213); - public static Color BOX_GOLD = new Color(223, 195, 136); - public static Color BOX_COLORLESS = new Color(220, 228, 232); - public static Color BOX_LAND = new Color(220, 215, 213); - public static Color BOX_INVENTION = new Color(209, 97, 33); - public static Color BOX_VEHICLE = new Color(155, 105, 60); + public static final Color BOX_WHITE = new Color(244, 245, 239); + public static final Color BOX_BLUE = new Color(201, 223, 237); + public static final Color BOX_BLACK = new Color(204, 194, 192); + public static final Color BOX_RED = new Color(246, 208, 185); + public static final Color BOX_GREEN = new Color(205, 221, 213); + public static final Color BOX_GOLD = new Color(223, 195, 136); + public static final Color BOX_COLORLESS = new Color(220, 228, 232); + public static final Color BOX_LAND = new Color(220, 215, 213); + public static final Color BOX_INVENTION = new Color(209, 97, 33); + public static final Color BOX_VEHICLE = new Color(155, 105, 60); - public static Color BOX_WHITE_NIGHT = new Color(169, 160, 145); - public static Color BOX_BLUE_NIGHT = new Color(46, 133, 176); - public static Color BOX_BLACK_NIGHT = new Color(95, 90, 89); - public static Color BOX_RED_NIGHT = new Color(188, 87, 57); - public static Color BOX_GREEN_NIGHT = new Color(31, 100, 44); - public static Color BOX_GOLD_NIGHT = new Color(171, 134, 70); - public static Color BOX_COLORLESS_NIGHT = new Color(118, 147, 158); + public static final Color BOX_WHITE_NIGHT = new Color(169, 160, 145); + public static final Color BOX_BLUE_NIGHT = new Color(46, 133, 176); + public static final Color BOX_BLACK_NIGHT = new Color(95, 90, 89); + public static final Color BOX_RED_NIGHT = new Color(188, 87, 57); + public static final Color BOX_GREEN_NIGHT = new Color(31, 100, 44); + public static final Color BOX_GOLD_NIGHT = new Color(171, 134, 70); + public static final Color BOX_COLORLESS_NIGHT = new Color(118, 147, 158); - public static Color LAND_TEXTBOX_WHITE = new Color(248, 232, 188, 244); - public static Color LAND_TEXTBOX_BLUE = new Color(189, 212, 236, 244); - public static Color LAND_TEXTBOX_BLACK = new Color(174, 164, 162, 244); - public static Color LAND_TEXTBOX_RED = new Color(242, 168, 133, 244); - public static Color LAND_TEXTBOX_GREEN = new Color(198, 220, 198, 244); - public static Color LAND_TEXTBOX_GOLD = new Color(236, 229, 207, 244); + public static final Color LAND_TEXTBOX_WHITE = new Color(248, 232, 188, 244); + public static final Color LAND_TEXTBOX_BLUE = new Color(189, 212, 236, 244); + public static final Color LAND_TEXTBOX_BLACK = new Color(174, 164, 162, 244); + public static final Color LAND_TEXTBOX_RED = new Color(242, 168, 133, 244); + public static final Color LAND_TEXTBOX_GREEN = new Color(198, 220, 198, 244); + public static final Color LAND_TEXTBOX_GOLD = new Color(236, 229, 207, 244); - public static Color TEXTBOX_WHITE = new Color(252, 249, 244, 244); - public static Color TEXTBOX_BLUE = new Color(229, 238, 247, 244); - public static Color TEXTBOX_BLACK = new Color(241, 241, 240, 244); - public static Color TEXTBOX_RED = new Color(243, 224, 217, 244); - public static Color TEXTBOX_GREEN = new Color(217, 232, 223, 244); - public static Color TEXTBOX_GOLD = new Color(240, 234, 209, 244); - public static Color TEXTBOX_COLORLESS = new Color(219, 229, 233, 244); - public static Color TEXTBOX_LAND = new Color(218, 214, 212, 244); + public static final Color TEXTBOX_WHITE = new Color(252, 249, 244, 244); + public static final Color TEXTBOX_BLUE = new Color(229, 238, 247, 244); + public static final Color TEXTBOX_BLACK = new Color(241, 241, 240, 244); + public static final Color TEXTBOX_RED = new Color(243, 224, 217, 244); + public static final Color TEXTBOX_GREEN = new Color(217, 232, 223, 244); + public static final Color TEXTBOX_GOLD = new Color(240, 234, 209, 244); + public static final Color TEXTBOX_COLORLESS = new Color(219, 229, 233, 244); + public static final Color TEXTBOX_LAND = new Color(218, 214, 212, 244); - public static Color ERROR_COLOR = new Color(255, 0, 255); + public static final Color ERROR_COLOR = new Color(255, 0, 255); /////////////////////////////////////////////////////////////////////////// // Layout metrics for modern border cards @@ -163,18 +163,18 @@ public class ModernCardRenderer extends CardRenderer { protected int contentWidth; // How tall the name / type lines and P/T box are - protected static float BOX_HEIGHT_FRAC = 0.065f; // x cardHeight - protected static int BOX_HEIGHT_MIN = 16; + protected static final float BOX_HEIGHT_FRAC = 0.065f; // x cardHeight + protected static final int BOX_HEIGHT_MIN = 16; protected int boxHeight; // How far down the card is the type line placed? - protected static float TYPE_LINE_Y_FRAC = 0.57f; // x cardHeight - protected static float TYPE_LINE_Y_FRAC_TOKEN = 0.70f; - protected static float TYPE_LINE_Y_FRAC_FULL_ART = 0.74f; + protected static final float TYPE_LINE_Y_FRAC = 0.57f; // x cardHeight + protected static final float TYPE_LINE_Y_FRAC_TOKEN = 0.70f; + protected static final float TYPE_LINE_Y_FRAC_FULL_ART = 0.74f; protected int typeLineY; // Possible sizes of rules text font - protected static int[] RULES_TEXT_FONT_SIZES = {24, 18, 15, 12, 9}; + protected static final int[] RULES_TEXT_FONT_SIZES = {24, 18, 15, 12, 9}; // How large is the box text, and how far is it down the boxes protected int boxTextHeight; @@ -188,7 +188,7 @@ public class ModernCardRenderer extends CardRenderer { protected Font ptTextFont; // Processed mana cost string - protected String manaCostString; + protected final String manaCostString; public ModernCardRenderer(CardView card, boolean isTransformed) { // Pass off to parent diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/TextboxBasicManaRule.java b/Mage.Client/src/main/java/org/mage/card/arcane/TextboxBasicManaRule.java index 8b68848566f..020f177f439 100644 --- a/Mage.Client/src/main/java/org/mage/card/arcane/TextboxBasicManaRule.java +++ b/Mage.Client/src/main/java/org/mage/card/arcane/TextboxBasicManaRule.java @@ -6,7 +6,7 @@ import java.util.ArrayList; * Created by stravant@gmail.com on 2016-09-14. */ public class TextboxBasicManaRule extends TextboxRule { - private String basicManaSymbol; + private final String basicManaSymbol; public TextboxBasicManaRule(String rule, ArrayList regions, String basicManaSymbol) { super(rule, regions, TextboxRuleType.BASIC_MANA); diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/TextboxLevelRule.java b/Mage.Client/src/main/java/org/mage/card/arcane/TextboxLevelRule.java index 207e2dee908..61e295b426e 100644 --- a/Mage.Client/src/main/java/org/mage/card/arcane/TextboxLevelRule.java +++ b/Mage.Client/src/main/java/org/mage/card/arcane/TextboxLevelRule.java @@ -15,10 +15,10 @@ import java.util.List; public class TextboxLevelRule extends TextboxRule { // The levels that this rule applies to - public int levelFrom; - public int levelTo; + public final int levelFrom; + public final int levelTo; - public static int AND_HIGHER = 100; + public static final int AND_HIGHER = 100; public TextboxLevelRule(String text, List regions, int levelFrom, int levelTo) { super(text, regions, TextboxRuleType.LEVEL); diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/TextboxLoyaltyRule.java b/Mage.Client/src/main/java/org/mage/card/arcane/TextboxLoyaltyRule.java index 50d1ae633aa..d7b599e2b41 100644 --- a/Mage.Client/src/main/java/org/mage/card/arcane/TextboxLoyaltyRule.java +++ b/Mage.Client/src/main/java/org/mage/card/arcane/TextboxLoyaltyRule.java @@ -12,9 +12,9 @@ import java.util.List; */ public class TextboxLoyaltyRule extends TextboxRule { - public int loyaltyChange; + public final int loyaltyChange; - public static int MINUS_X = 100; + public static final int MINUS_X = 100; public String getChangeString() { if (loyaltyChange == MINUS_X) { diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/TextboxRule.java b/Mage.Client/src/main/java/org/mage/card/arcane/TextboxRule.java index 063685782c4..807e03d6547 100644 --- a/Mage.Client/src/main/java/org/mage/card/arcane/TextboxRule.java +++ b/Mage.Client/src/main/java/org/mage/card/arcane/TextboxRule.java @@ -25,7 +25,7 @@ public class TextboxRule { // attributed string. public interface AttributeRegion { - public void applyToAttributedString(AttributedString str, Font normal, Font italic); + void applyToAttributedString(AttributedString str, Font normal, Font italic); } // A region of italics, or bold text in a @@ -67,10 +67,10 @@ public class TextboxRule { } } - public String text; - public TextboxRuleType type; + public final String text; + public final TextboxRuleType type; - private List regions; + private final List regions; protected TextboxRule(String text, List regions, TextboxRuleType type) { this.text = text; diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/CardPluginImpl.java b/Mage.Client/src/main/java/org/mage/plugins/card/CardPluginImpl.java index 3c53fa20f7d..29195aa2f0b 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/CardPluginImpl.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/CardPluginImpl.java @@ -68,12 +68,12 @@ public class CardPluginImpl implements CardPlugin { private static final float STACK_SPACING_Y = 0.10f; private static final float ATTACHMENT_SPACING_Y = 0.13f; - private int landStackMax = 5; + private final int landStackMax = 5; // private int cardWidthMin = 50, cardWidthMax = Constants.CARD_SIZE_FULL.width; private int cardWidthMin = (int) GUISizeHelper.battlefieldCardMinDimension.getWidth(); private int cardWidthMax = (int) GUISizeHelper.battlefieldCardMaxDimension.getWidth(); - private boolean stackVertical = false; + private final boolean stackVertical = false; private int playAreaWidth, playAreaHeight; private int cardWidth, cardHeight; @@ -422,7 +422,7 @@ public class CardPluginImpl implements CardPlugin { return height - cardSpacingY + GUTTER_Y * 2; } - private static enum RowType { + private enum RowType { land, creature, other, attached; public boolean isType(MagePermanent card) { @@ -581,7 +581,7 @@ public class CardPluginImpl implements CardPlugin { @Override public void onAddCard(MagePermanent card, int count) { if (card != null) { - Animation.showCard((CardPanel) card, count > 0 ? count : 1); + Animation.showCard(card, count > 0 ? count : 1); try { while ((card).getAlpha() + 0.05f < 1) { Thread.sleep(30); diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/DownloadGui.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/DownloadGui.java index c115b4deb94..b847d94127b 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/DownloadGui.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/DownloadGui.java @@ -9,8 +9,6 @@ package org.mage.plugins.card.dl; import java.awt.BorderLayout; import java.awt.Dimension; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; import java.beans.IndexedPropertyChangeEvent; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; @@ -55,12 +53,7 @@ public class DownloadGui extends JPanel { p.setBorder(BorderFactory.createTitledBorder("Progress:")); p.add(progress); JButton b = new JButton("X"); - b.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - getDownloader().dispose(); - } - }); + b.addActionListener(e -> getDownloader().dispose()); p.add(b, BorderLayout.EAST); add(p, BorderLayout.NORTH); @@ -160,14 +153,11 @@ public class DownloadGui extends JPanel { setBorder(BorderFactory.createTitledBorder(job.getName())); add(bar = new JProgressBar(job.getProgress())); JButton b = new JButton("X"); - b.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - switch(getJob().getState()) { - case NEW: - case WORKING: - getJob().setState(State.ABORTED); - } + b.addActionListener(e -> { + switch(getJob().getState()) { + case NEW: + case WORKING: + getJob().setState(State.ABORTED); } }); add(b, BorderLayout.EAST); diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/DownloadJob.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/DownloadJob.java index 32462dfa601..049a9f8403b 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/DownloadJob.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/DownloadJob.java @@ -27,9 +27,9 @@ import org.mage.plugins.card.utils.CardImageUtils; */ public class DownloadJob extends AbstractLaternaBean { - public static enum State { + public enum State { - NEW, WORKING, FINISHED, ABORTED; + NEW, WORKING, FINISHED, ABORTED } private final String name; diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/beans/AbstractBoundBean.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/beans/AbstractBoundBean.java index fb411fe5350..0aa044940a6 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/beans/AbstractBoundBean.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/beans/AbstractBoundBean.java @@ -17,7 +17,7 @@ import java.beans.PropertyChangeListener; * @author Clemens Koza */ public abstract class AbstractBoundBean implements BoundBean { - protected PropertyChangeSupport s = new PropertyChangeSupport(this); + protected final PropertyChangeSupport s = new PropertyChangeSupport(this); public void addPropertyChangeListener(PropertyChangeListener listener) { s.addPropertyChangeListener(listener); diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/beans/EventListenerList.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/beans/EventListenerList.java index aaf87ff37f6..18dc8d852a6 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/beans/EventListenerList.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/beans/EventListenerList.java @@ -41,11 +41,7 @@ public class EventListenerList extends javax.swing.event.EventListenerList { final Iterable it = Iterables.concat(new ArrayList>(l)); //transform to singleton iterators - return new Iterable() { - public Iterator iterator() { - return new SingletonIterator(it.iterator()); - } - }; + return () -> new SingletonIterator(it.iterator()); } /** @@ -71,7 +67,7 @@ public class EventListenerList extends javax.swing.event.EventListenerList { private class ListenerIterator extends AbstractIterator { private final Class listenerClass; - private Object[] listeners = listenerList; + private final Object[] listeners = listenerList; private int index = listeners.length; private ListenerIterator(Class listenerClass) { @@ -96,12 +92,7 @@ public class EventListenerList extends javax.swing.event.EventListenerList { private class ClassToIterableFunction implements Function, Iterable> { public Iterable apply(final Class from) { - return new Iterable() { - - public Iterator iterator() { - return new ListenerIterator(from); - } - }; + return () -> new ListenerIterator(from); } } @@ -111,8 +102,8 @@ public class EventListenerList extends javax.swing.event.EventListenerList { */ private static class SingletonIterator extends AbstractIterator { - private Iterator it; - private HashSet previous = new HashSet(); + private final Iterator it; + private final HashSet previous = new HashSet(); public SingletonIterator(Iterator it) { this.it = it; diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/beans/PropertyChangeSupport.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/beans/PropertyChangeSupport.java index a1ad565abc5..26574a23033 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/beans/PropertyChangeSupport.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/beans/PropertyChangeSupport.java @@ -18,7 +18,7 @@ package org.mage.plugins.card.dl.beans; public class PropertyChangeSupport extends java.beans.PropertyChangeSupport { private static final long serialVersionUID = -4241465377828790076L; - private Object sourceBean; + private final Object sourceBean; public PropertyChangeSupport(Object sourceBean) { super(sourceBean); diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/beans/collections/ListenableCollections.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/beans/collections/ListenableCollections.java index b5f04d9cabd..a4a9bb0c4bd 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/beans/collections/ListenableCollections.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/beans/collections/ListenableCollections.java @@ -68,8 +68,8 @@ public final class ListenableCollections { private static class ListenableList extends AbstractList implements RandomAccess, Serializable { private static final long serialVersionUID = 8622608480525537692L; - private List delegate; - private ListListener listener; + private final List delegate; + private final ListListener listener; public ListenableList(List delegate, ListListener listener) { this.delegate = delegate; @@ -110,8 +110,8 @@ public final class ListenableCollections { private static class ListenableSequentialList extends AbstractSequentialList implements Serializable { private static final long serialVersionUID = 3630474556578001885L; - private List delegate; - private ListListener listener; + private final List delegate; + private final ListListener listener; public ListenableSequentialList(List delegate, ListListener listener) { this.delegate = delegate; @@ -185,23 +185,23 @@ public final class ListenableCollections { } } - public static interface SetListener extends Serializable { + public interface SetListener extends Serializable { /** * Notified after a value was added to the set. */ - public void add(E newValue); + void add(E newValue); /** * Notified after a value was removed from the set. */ - public void remove(E oldValue); + void remove(E oldValue); } private static class ListenableSet extends AbstractSet implements Serializable { private static final long serialVersionUID = 7728087988927063221L; - private Set delegate; - private SetListener listener; + private final Set delegate; + private final SetListener listener; public ListenableSet(Set set, SetListener listener) { delegate = set; @@ -220,7 +220,7 @@ public final class ListenableCollections { listener.add(o); } return b; - }; + } @SuppressWarnings("unchecked") @Override @@ -268,29 +268,29 @@ public final class ListenableCollections { } } - public static interface MapListener extends Serializable { + public interface MapListener extends Serializable { /** * Notified after a value was put into the map. */ - public void put(K key, V newValue); + void put(K key, V newValue); /** * Notified after a value in the map was changed. */ - public void set(K key, V oldValue, V newValue); + void set(K key, V oldValue, V newValue); /** * Notified after a value was removed from the map. */ - public void remove(K key, V oldValue); + void remove(K key, V oldValue); } private static class ListenableMap extends AbstractMap implements Serializable { private static final long serialVersionUID = 4032087477448965103L; - private Map delegate; - private MapListener listener; - private Set> entrySet; + private final Map delegate; + private final MapListener listener; + private final Set> entrySet; public ListenableMap(Map map, MapListener listener) { this.listener = listener; diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/beans/properties/CompoundProperties.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/beans/properties/CompoundProperties.java index 50d54cbd5b9..5a6f021913a 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/beans/properties/CompoundProperties.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/beans/properties/CompoundProperties.java @@ -23,7 +23,7 @@ import java.util.Set; * @author Clemens Koza */ public class CompoundProperties extends AbstractProperties { - private List delegates; + private final List delegates; public CompoundProperties(Properties... delegates) { this.delegates = asList(delegates); diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/beans/properties/bound/PropertyChangeListListener.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/beans/properties/bound/PropertyChangeListListener.java index 740fb7d2672..260f38ca438 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/beans/properties/bound/PropertyChangeListListener.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/beans/properties/bound/PropertyChangeListListener.java @@ -21,8 +21,8 @@ import org.mage.plugins.card.dl.beans.collections.ListenableCollections.ListList public class PropertyChangeListListener implements ListListener { private static final long serialVersionUID = 625853864429729560L; - private PropertyChangeSupport s; - private String propertyName; + private final PropertyChangeSupport s; + private final String propertyName; public PropertyChangeListListener(PropertyChangeSupport s, String propertyName) { this.s = s; diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/beans/properties/bound/PropertyChangeMapListener.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/beans/properties/bound/PropertyChangeMapListener.java index 5eba920eac2..e0c9bedfe4f 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/beans/properties/bound/PropertyChangeMapListener.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/beans/properties/bound/PropertyChangeMapListener.java @@ -24,9 +24,9 @@ import org.mage.plugins.card.dl.beans.collections.ListenableCollections.MapListe public class PropertyChangeMapListener implements MapListener { private static final long serialVersionUID = 625853864429729560L; - private PropertyChangeSupport s; - private Map map; - private String propertyName; + private final PropertyChangeSupport s; + private final Map map; + private final String propertyName; public PropertyChangeMapListener(PropertyChangeSupport s, Map map, String propertyName) { this.s = s; @@ -49,8 +49,8 @@ public class PropertyChangeMapListener implements MapListener { public static abstract class MapEvent extends PropertyChangeEvent { private static final long serialVersionUID = -651568020675693544L; - private Map map; - private K key; + private final Map map; + private final K key; public MapEvent(Object source, String propertyName, Map map, K key) { super(source, propertyName, null, null); @@ -77,7 +77,7 @@ public class PropertyChangeMapListener implements MapListener { public static class MapPutEvent extends MapEvent { private static final long serialVersionUID = 6006291474676939650L; - private V newElement; + private final V newElement; public MapPutEvent(Object source, String propertyName, Map map, K key, V newElement) { super(source, propertyName, map, key); @@ -92,7 +92,8 @@ public class PropertyChangeMapListener implements MapListener { public static class MapSetEvent extends MapEvent { private static final long serialVersionUID = -2419438379909500079L; - private V oldElement, newElement; + private final V oldElement; + private final V newElement; public MapSetEvent(Object source, String propertyName, Map map, K key, V oldElement, V newElement) { super(source, propertyName, map, key); @@ -112,7 +113,7 @@ public class PropertyChangeMapListener implements MapListener { public static class MapRemoveEvent extends MapEvent { private static final long serialVersionUID = -2644879706878221895L; - private V oldElement; + private final V oldElement; public MapRemoveEvent(Object source, String propertyName, Map map, K key, V oldElement) { super(source, propertyName, map, key); diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/beans/properties/bound/PropertyChangeSetListener.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/beans/properties/bound/PropertyChangeSetListener.java index f6b0effff5f..6d23fd4361d 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/beans/properties/bound/PropertyChangeSetListener.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/beans/properties/bound/PropertyChangeSetListener.java @@ -24,9 +24,9 @@ import org.mage.plugins.card.dl.beans.collections.ListenableCollections.SetListe public class PropertyChangeSetListener implements SetListener { private static final long serialVersionUID = 625853864429729560L; - private PropertyChangeSupport s; - private Set set; - private String propertyName; + private final PropertyChangeSupport s; + private final Set set; + private final String propertyName; public PropertyChangeSetListener(PropertyChangeSupport s, Set set, String propertyName) { this.s = s; @@ -45,7 +45,7 @@ public class PropertyChangeSetListener implements SetListener { public static abstract class SetEvent extends PropertyChangeEvent { private static final long serialVersionUID = -651568020675693544L; - private Set set; + private final Set set; public SetEvent(Object source, String propertyName, Set set) { super(source, propertyName, null, null); @@ -67,7 +67,7 @@ public class PropertyChangeSetListener implements SetListener { public static class SetAddEvent extends SetEvent { private static final long serialVersionUID = 9041766866796759871L; - private E newElement; + private final E newElement; public SetAddEvent(Object source, String propertyName, Set set, E newElement) { super(source, propertyName, set); @@ -82,7 +82,7 @@ public class PropertyChangeSetListener implements SetListener { public static class SetRemoveEvent extends SetEvent { private static final long serialVersionUID = -1315342339926392385L; - private E oldElement; + private final E oldElement; public SetRemoveEvent(Object source, String propertyName, Set set, E oldElement) { super(source, propertyName, set); diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/lm/AbstractLaternaBean.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/lm/AbstractLaternaBean.java index 946560902bb..be462e18296 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/lm/AbstractLaternaBean.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/lm/AbstractLaternaBean.java @@ -22,6 +22,6 @@ import org.mage.plugins.card.dl.beans.properties.bound.BoundProperties; */ public class AbstractLaternaBean extends AbstractBoundBean { protected static final Logger log = Logger.getLogger(AbstractLaternaBean.class); - protected Properties properties = new BoundProperties(s); + protected final Properties properties = new BoundProperties(s); protected EventListenerList listeners = new EventListenerList(); } diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/AltMtgOnlTokensImageSource.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/AltMtgOnlTokensImageSource.java index af143a800d7..a52cc67102b 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/AltMtgOnlTokensImageSource.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/AltMtgOnlTokensImageSource.java @@ -28,11 +28,9 @@ package org.mage.plugins.card.dl.sources; import java.io.IOException; -import java.net.URL; import java.util.HashMap; import org.apache.log4j.Logger; import org.mage.plugins.card.images.CardDownloadData; -import org.mage.plugins.card.images.DownloadPictures; /** * diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/GrabbagImageSource.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/GrabbagImageSource.java index ee7e6afd3c3..e123be2ece8 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/GrabbagImageSource.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/GrabbagImageSource.java @@ -27,7 +27,6 @@ */ package org.mage.plugins.card.dl.sources; -import java.io.File; import java.io.IOException; import java.util.HashMap; import org.apache.log4j.Logger; diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/MtgOnlTokensImageSource.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/MtgOnlTokensImageSource.java index 630e0001671..e6493b3d2cc 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/MtgOnlTokensImageSource.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/MtgOnlTokensImageSource.java @@ -28,11 +28,9 @@ package org.mage.plugins.card.dl.sources; import java.io.IOException; -import java.net.URL; import java.util.HashMap; import org.apache.log4j.Logger; import org.mage.plugins.card.images.CardDownloadData; -import org.mage.plugins.card.images.DownloadPictures; /** * diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/MythicspoilerComSource.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/MythicspoilerComSource.java index 3611c81a633..23d3275ab45 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/MythicspoilerComSource.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/MythicspoilerComSource.java @@ -177,7 +177,6 @@ public class MythicspoilerComSource implements CardImageSource { cardName = cardLink.substring(6, cardLink.length() - 4); } else if (aliasesStart.contains(cardLink)) { cardName = cardLink.substring(0, cardLink.length() - 4); - ; } if (cardName != null && !cardName.isEmpty()) { if (cardNameAliases.containsKey(cardSet + "-" + cardName)) { @@ -209,11 +208,7 @@ public class MythicspoilerComSource implements CardImageSource { if (card.isFlippedSide()) { //doesn't support rotated images return null; } - Map setLinks = sets.get(cardSet); - if (setLinks == null) { - setLinks = getSetLinks(cardSet); - sets.put(cardSet, setLinks); - } + Map setLinks = sets.computeIfAbsent(cardSet, k -> getSetLinks(cardSet)); String searchName = card.getDownloadName().toLowerCase() .replaceAll(" ", "") .replaceAll("-", "") diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/WizardCardsImageSource.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/WizardCardsImageSource.java index 69b6386ff6e..e0b2b7c9fed 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/WizardCardsImageSource.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/WizardCardsImageSource.java @@ -440,11 +440,7 @@ public class WizardCardsImageSource implements CardImageSource { } String setNames = setsAliases.get(cardSet); if (setNames != null) { - Map setLinks = sets.get(cardSet); - if (setLinks == null) { - setLinks = getSetLinks(cardSet); - sets.put(cardSet, setLinks); - } + Map setLinks = sets.computeIfAbsent(cardSet, k -> getSetLinks(cardSet)); String link = setLinks.get(card.getDownloadName().toLowerCase()); if (link == null) { int length = collectorId.length(); diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/images/CardDownloadData.java b/Mage.Client/src/main/java/org/mage/plugins/card/images/CardDownloadData.java index 4130addaf59..f63e2e0bfa2 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/images/CardDownloadData.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/images/CardDownloadData.java @@ -14,15 +14,15 @@ public class CardDownloadData { private String set; private String tokenSetCode; private String tokenDescriptor; - private String collectorId; - private Integer type; + private final String collectorId; + private final Integer type; private boolean token; - private boolean twoFacedCard; - private boolean secondSide; + private final boolean twoFacedCard; + private final boolean secondSide; private boolean flipCard; private boolean flippedSide; private boolean splitCard; - private boolean usesVariousArt; + private final boolean usesVariousArt; private boolean isType2; public CardDownloadData(String name, String set, String collectorId, boolean usesVariousArt, Integer type, String tokenSetCode, String tokenDescriptor) { diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/images/DownloadPictures.java b/Mage.Client/src/main/java/org/mage/plugins/card/images/DownloadPictures.java index 07ae2dd24f0..0405a759c86 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/images/DownloadPictures.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/images/DownloadPictures.java @@ -3,8 +3,6 @@ package org.mage.plugins.card.images; import java.awt.Component; import java.awt.Dimension; import java.awt.Graphics2D; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; import java.awt.image.BufferedImage; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; @@ -69,11 +67,11 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab private static final Logger logger = Logger.getLogger(DownloadPictures.class); - private JProgressBar bar; + private final JProgressBar bar; private final JOptionPane dlg; private boolean cancel; private final JButton closeButton; - private JButton startDownloadButton; + private final JButton startDownloadButton; private int cardIndex; private List cards; private List type2cards; @@ -111,12 +109,7 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab String title = "Downloading"; final JDialog dialog = this.dlg.createDialog(frame, title); - closeButton.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - dialog.setVisible(false); - } - }); + closeButton.addActionListener(e -> dialog.setVisible(false)); return dialog; } @@ -159,51 +152,45 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab jComboBox1.setModel(jComboBox1Model); jComboBox1.setAlignmentX(Component.LEFT_ALIGNMENT); - jComboBox1.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - JComboBox cb = (JComboBox) e.getSource(); - switch (cb.getSelectedIndex()) { - case 0: - cardImageSource = MagicCardsImageSource.getInstance(); - break; - case 1: - cardImageSource = WizardCardsImageSource.getInstance(); - break; - case 2: - cardImageSource = MythicspoilerComSource.getInstance(); - break; - case 3: - cardImageSource = TokensMtgImageSource.getInstance(); - break; - case 4: - cardImageSource = MtgOnlTokensImageSource.getInstance(); - break; - case 5: - cardImageSource = AltMtgOnlTokensImageSource.getInstance(); - break; - case 6: - cardImageSource = GrabbagImageSource.getInstance(); - break; - case 7: - cardImageSource = MagidexImageSource.getInstance(); - break; - } - updateCardsToDownload(); + jComboBox1.addActionListener(e -> { + JComboBox cb = (JComboBox) e.getSource(); + switch (cb.getSelectedIndex()) { + case 0: + cardImageSource = MagicCardsImageSource.getInstance(); + break; + case 1: + cardImageSource = WizardCardsImageSource.getInstance(); + break; + case 2: + cardImageSource = MythicspoilerComSource.getInstance(); + break; + case 3: + cardImageSource = TokensMtgImageSource.getInstance(); + break; + case 4: + cardImageSource = MtgOnlTokensImageSource.getInstance(); + break; + case 5: + cardImageSource = AltMtgOnlTokensImageSource.getInstance(); + break; + case 6: + cardImageSource = GrabbagImageSource.getInstance(); + break; + case 7: + cardImageSource = MagidexImageSource.getInstance(); + break; } + updateCardsToDownload(); }); p0.add(jComboBox1); p0.add(Box.createVerticalStrut(5)); // Start startDownloadButton = new JButton("Start download"); - startDownloadButton.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - new Thread(DownloadPictures.this).start(); - startDownloadButton.setEnabled(false); - checkBox.setEnabled(false); - } + startDownloadButton.addActionListener(e -> { + new Thread(DownloadPictures.this).start(); + startDownloadButton.setEnabled(false); + checkBox.setEnabled(false); }); p0.add(Box.createVerticalStrut(5)); @@ -223,12 +210,7 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab p0.add(checkBox); p0.add(Box.createVerticalStrut(5)); - checkBox.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - updateCardsToDownload(); - } - }); + checkBox.addActionListener(e -> updateCardsToDownload()); // JOptionPane Object[] options = {startDownloadButton, closeButton = new JButton("Cancel")}; @@ -669,7 +651,7 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab if (responseCode == 200 || useTempFile) { if (!useTempFile) { - try (BufferedInputStream in = new BufferedInputStream(((HttpURLConnection) httpConn).getInputStream())) { + try (BufferedInputStream in = new BufferedInputStream(httpConn.getInputStream())) { //try (BufferedInputStream in = new BufferedInputStream(url.openConnection(p).getInputStream())) { out = new BufferedOutputStream(new TFileOutputStream(temporaryFile)); byte[] buf = new byte[1024]; diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/info/CardInfoPaneImpl.java b/Mage.Client/src/main/java/org/mage/plugins/card/info/CardInfoPaneImpl.java index 00ee89e34b5..869dc31bdcf 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/info/CardInfoPaneImpl.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/info/CardInfoPaneImpl.java @@ -63,18 +63,15 @@ public class CardInfoPaneImpl extends JEditorPane implements CardInfoPane { return; } - SwingUtilities.invokeLater(new Runnable() { - @Override - public void run() { - if (!card.equals(currentCard)) { - return; - } - TextLines textLines = GuiDisplayUtil.getTextLinesfromCardView(card); - StringBuilder buffer = GuiDisplayUtil.getRulefromCardView(card, textLines); - resizeTooltipIfNeeded(container, textLines.basicTextLength, textLines.lines.size()); - setText(buffer.toString()); - setCaretPosition(0); + SwingUtilities.invokeLater(() -> { + if (!card.equals(currentCard)) { + return; } + TextLines textLines = GuiDisplayUtil.getTextLinesfromCardView(card); + StringBuilder buffer = GuiDisplayUtil.getRulefromCardView(card, textLines); + resizeTooltipIfNeeded(container, textLines.basicTextLength, textLines.lines.size()); + setText(buffer.toString()); + setCaretPosition(0); }); } catch (Exception e) { diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/utils/Transparency.java b/Mage.Client/src/main/java/org/mage/plugins/card/utils/Transparency.java index e5f449d5d5e..4a62f270256 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/utils/Transparency.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/utils/Transparency.java @@ -15,7 +15,7 @@ public class Transparency { public static Image makeColorTransparent(Image im, final Color color) { ImageFilter filter = new RGBImageFilter() { // the color we are looking for... Alpha bits are set to opaque - public int markerRGB = color.getRGB() | 0xFF000000; + public final int markerRGB = color.getRGB() | 0xFF000000; @Override public final int filterRGB(int x, int y, int rgb) { diff --git a/Mage.Client/src/main/java/org/mage/plugins/theme/ThemePluginImpl.java b/Mage.Client/src/main/java/org/mage/plugins/theme/ThemePluginImpl.java index aec6180610b..f6587272d9a 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/theme/ThemePluginImpl.java +++ b/Mage.Client/src/main/java/org/mage/plugins/theme/ThemePluginImpl.java @@ -22,8 +22,8 @@ public class ThemePluginImpl implements ThemePlugin { private static final Logger log = Logger.getLogger(ThemePluginImpl.class); private static BufferedImage background; - private List flist = new List(); - private String BackgroundDir = "backgrounds" + File.separator; + private final List flist = new List(); + private final String BackgroundDir = "backgrounds" + File.separator; @Init public void init() { diff --git a/Mage.Common/src/mage/utils/DeckBuilder.java b/Mage.Common/src/mage/utils/DeckBuilder.java index 525049b4fdd..0d4b4482adc 100644 --- a/Mage.Common/src/mage/utils/DeckBuilder.java +++ b/Mage.Common/src/mage/utils/DeckBuilder.java @@ -7,7 +7,7 @@ import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; -import java.util.Random; + import mage.Mana; import mage.cards.Card; import mage.cards.decks.Deck; diff --git a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/AusHighlander.java b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/AusHighlander.java index 7aa707894ce..d4f46323959 100644 --- a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/AusHighlander.java +++ b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/AusHighlander.java @@ -32,14 +32,12 @@ import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; -import mage.cards.Card; + import mage.cards.ExpansionSet; import mage.cards.Sets; import mage.cards.decks.Constructed; import mage.cards.decks.Deck; -import mage.constants.CardType; import mage.constants.SetType; -import mage.util.CardUtil; /** * diff --git a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ComputerPlayer6.java b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ComputerPlayer6.java index fff24fdf6bd..908ae33f087 100644 --- a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ComputerPlayer6.java +++ b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ComputerPlayer6.java @@ -36,7 +36,6 @@ import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.Map; -import java.util.Random; import java.util.Scanner; import java.util.Set; import java.util.UUID; diff --git a/Mage.Server.Plugins/Mage.Player.AIMCTS/src/mage/player/ai/SimulatedPlayerMCTS.java b/Mage.Server.Plugins/Mage.Player.AIMCTS/src/mage/player/ai/SimulatedPlayerMCTS.java index 8a315878f18..2c015d350c7 100644 --- a/Mage.Server.Plugins/Mage.Player.AIMCTS/src/mage/player/ai/SimulatedPlayerMCTS.java +++ b/Mage.Server.Plugins/Mage.Player.AIMCTS/src/mage/player/ai/SimulatedPlayerMCTS.java @@ -31,7 +31,6 @@ import java.io.Serializable; import java.util.Iterator; import java.util.List; import java.util.Map; -import java.util.Random; import java.util.Set; import java.util.UUID; import mage.abilities.Ability; diff --git a/Mage.Server.Plugins/Mage.Tournament.BoosterDraft/src/mage/tournament/cubes/CubeFromDeck.java b/Mage.Server.Plugins/Mage.Tournament.BoosterDraft/src/mage/tournament/cubes/CubeFromDeck.java index b4212eb3693..ef34d70b6e8 100644 --- a/Mage.Server.Plugins/Mage.Tournament.BoosterDraft/src/mage/tournament/cubes/CubeFromDeck.java +++ b/Mage.Server.Plugins/Mage.Tournament.BoosterDraft/src/mage/tournament/cubes/CubeFromDeck.java @@ -30,7 +30,6 @@ package mage.tournament.cubes; import mage.cards.decks.Deck; import mage.cards.decks.DeckCardInfo; import mage.cards.decks.DeckCardLists; -import mage.cards.decks.importer.DeckImporterUtil; import mage.game.draft.DraftCube.CardIdentity; import mage.game.draft.DraftCube; diff --git a/Mage.Sets/src/mage/cards/a/ActOfAggression.java b/Mage.Sets/src/mage/cards/a/ActOfAggression.java index 84da3a7dce3..dbfbafa4e18 100644 --- a/Mage.Sets/src/mage/cards/a/ActOfAggression.java +++ b/Mage.Sets/src/mage/cards/a/ActOfAggression.java @@ -30,7 +30,6 @@ package mage.cards.a; import java.util.UUID; import mage.constants.CardType; import mage.constants.Duration; -import mage.constants.Rarity; import mage.abilities.effects.common.UntapTargetEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.effects.common.continuous.GainControlTargetEffect; diff --git a/Mage.Sets/src/mage/cards/a/AdrianaCaptainOfTheGuard.java b/Mage.Sets/src/mage/cards/a/AdrianaCaptainOfTheGuard.java index e05d317b97f..7fd967d6764 100644 --- a/Mage.Sets/src/mage/cards/a/AdrianaCaptainOfTheGuard.java +++ b/Mage.Sets/src/mage/cards/a/AdrianaCaptainOfTheGuard.java @@ -31,7 +31,6 @@ import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; -import mage.abilities.keyword.DeathtouchAbility; import mage.abilities.keyword.MeleeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; diff --git a/Mage.Sets/src/mage/cards/a/AlphaStatus.java b/Mage.Sets/src/mage/cards/a/AlphaStatus.java index eb158a88028..40e1b2c1513 100644 --- a/Mage.Sets/src/mage/cards/a/AlphaStatus.java +++ b/Mage.Sets/src/mage/cards/a/AlphaStatus.java @@ -40,7 +40,6 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Outcome; -import mage.constants.Rarity; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; diff --git a/Mage.Sets/src/mage/cards/a/AxebaneGuardian.java b/Mage.Sets/src/mage/cards/a/AxebaneGuardian.java index 38469e3dcd6..0f52894c221 100644 --- a/Mage.Sets/src/mage/cards/a/AxebaneGuardian.java +++ b/Mage.Sets/src/mage/cards/a/AxebaneGuardian.java @@ -30,7 +30,6 @@ package mage.cards.a; import java.util.UUID; import mage.MageInt; import mage.Mana; -import mage.abilities.costs.common.TapSourceCost; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.keyword.DefenderAbility; import mage.abilities.mana.DynamicManaAbility; diff --git a/Mage.Sets/src/mage/cards/b/BlindWorship.java b/Mage.Sets/src/mage/cards/b/BlindWorship.java index 63f8fdf3999..567e38f8e53 100644 --- a/Mage.Sets/src/mage/cards/b/BlindWorship.java +++ b/Mage.Sets/src/mage/cards/b/BlindWorship.java @@ -46,7 +46,6 @@ import mage.constants.Duration; import mage.constants.Outcome; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; -import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; diff --git a/Mage.Sets/src/mage/cards/b/BorosFuryShield.java b/Mage.Sets/src/mage/cards/b/BorosFuryShield.java index 1af0c9598a6..fcd96342cf7 100644 --- a/Mage.Sets/src/mage/cards/b/BorosFuryShield.java +++ b/Mage.Sets/src/mage/cards/b/BorosFuryShield.java @@ -34,7 +34,6 @@ import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.Effect; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.PreventDamageByTargetEffect; -import mage.abilities.effects.common.UntapAllControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -42,7 +41,6 @@ import mage.constants.ColoredManaSymbol; import mage.constants.Duration; import mage.constants.Outcome; import mage.filter.common.FilterAttackingOrBlockingCreature; -import mage.filter.common.FilterControlledCreaturePermanent; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; diff --git a/Mage.Sets/src/mage/cards/b/BurdenOfGreed.java b/Mage.Sets/src/mage/cards/b/BurdenOfGreed.java index 234e13493f7..19a9ff4f991 100644 --- a/Mage.Sets/src/mage/cards/b/BurdenOfGreed.java +++ b/Mage.Sets/src/mage/cards/b/BurdenOfGreed.java @@ -30,15 +30,12 @@ package mage.cards.b; import java.util.UUID; import mage.abilities.Ability; import mage.abilities.dynamicvalue.DynamicValue; -import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; -import mage.abilities.dynamicvalue.common.PermanentsTargetOpponentControlsCount; import mage.abilities.effects.Effect; import mage.abilities.effects.common.LoseLifeTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterArtifactPermanent; -import mage.filter.predicate.other.OwnerIdPredicate; import mage.filter.predicate.permanent.ControllerIdPredicate; import mage.filter.predicate.permanent.TappedPredicate; import mage.game.Game; diff --git a/Mage.Sets/src/mage/cards/c/CapriciousEfreet.java b/Mage.Sets/src/mage/cards/c/CapriciousEfreet.java index 096c1ee7f70..c9b0a4a91d6 100644 --- a/Mage.Sets/src/mage/cards/c/CapriciousEfreet.java +++ b/Mage.Sets/src/mage/cards/c/CapriciousEfreet.java @@ -28,7 +28,6 @@ package mage.cards.c; import java.util.ArrayList; -import java.util.Random; import java.util.UUID; import mage.constants.CardType; import mage.constants.Outcome; diff --git a/Mage.Sets/src/mage/cards/c/CeruleanWyvern.java b/Mage.Sets/src/mage/cards/c/CeruleanWyvern.java index 1edb7163dae..6d78503a13a 100644 --- a/Mage.Sets/src/mage/cards/c/CeruleanWyvern.java +++ b/Mage.Sets/src/mage/cards/c/CeruleanWyvern.java @@ -35,8 +35,6 @@ import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.FilterCard; -import mage.filter.predicate.mageobject.ColorPredicate; /** * diff --git a/Mage.Sets/src/mage/cards/c/ChargingCinderhorn.java b/Mage.Sets/src/mage/cards/c/ChargingCinderhorn.java index 3b83b66ce6c..6a6c6610270 100644 --- a/Mage.Sets/src/mage/cards/c/ChargingCinderhorn.java +++ b/Mage.Sets/src/mage/cards/c/ChargingCinderhorn.java @@ -31,7 +31,6 @@ import java.util.Set; import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.Mode; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; import mage.abilities.condition.Condition; import mage.abilities.dynamicvalue.DynamicValue; diff --git a/Mage.Sets/src/mage/cards/c/CharmbreakerDevils.java b/Mage.Sets/src/mage/cards/c/CharmbreakerDevils.java index a3f518e02dd..da6a675bf85 100644 --- a/Mage.Sets/src/mage/cards/c/CharmbreakerDevils.java +++ b/Mage.Sets/src/mage/cards/c/CharmbreakerDevils.java @@ -27,7 +27,6 @@ */ package mage.cards.c; -import java.util.Random; import java.util.UUID; import mage.constants.CardType; import mage.constants.Duration; diff --git a/Mage.Sets/src/mage/cards/c/ChiefOfTheEdge.java b/Mage.Sets/src/mage/cards/c/ChiefOfTheEdge.java index b9bbb0a2190..6419764cc32 100644 --- a/Mage.Sets/src/mage/cards/c/ChiefOfTheEdge.java +++ b/Mage.Sets/src/mage/cards/c/ChiefOfTheEdge.java @@ -35,7 +35,6 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; -import mage.constants.Rarity; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; diff --git a/Mage.Sets/src/mage/cards/c/ChiefOfTheScale.java b/Mage.Sets/src/mage/cards/c/ChiefOfTheScale.java index 81c75b30d1b..474a2fb5ca5 100644 --- a/Mage.Sets/src/mage/cards/c/ChiefOfTheScale.java +++ b/Mage.Sets/src/mage/cards/c/ChiefOfTheScale.java @@ -35,7 +35,6 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; -import mage.constants.Rarity; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; diff --git a/Mage.Sets/src/mage/cards/c/ChitteringHost.java b/Mage.Sets/src/mage/cards/c/ChitteringHost.java index 5dd2b7d9687..483cd5585a6 100644 --- a/Mage.Sets/src/mage/cards/c/ChitteringHost.java +++ b/Mage.Sets/src/mage/cards/c/ChitteringHost.java @@ -39,7 +39,6 @@ import mage.cards.CardSetInfo; import mage.cards.MeldCard; import mage.constants.CardType; import mage.constants.Duration; -import mage.constants.Rarity; import mage.filter.common.FilterControlledCreaturePermanent; import java.util.UUID; diff --git a/Mage.Sets/src/mage/cards/c/CloakOfInvisibility.java b/Mage.Sets/src/mage/cards/c/CloakOfInvisibility.java index 6b5bcb08377..826c6203345 100644 --- a/Mage.Sets/src/mage/cards/c/CloakOfInvisibility.java +++ b/Mage.Sets/src/mage/cards/c/CloakOfInvisibility.java @@ -30,7 +30,6 @@ package mage.cards.c; import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.RestrictionEffect; import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.combat.CantBeBlockedByCreaturesAttachedEffect; import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; @@ -46,8 +45,6 @@ import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; -import mage.game.Game; -import mage.game.permanent.Permanent; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; diff --git a/Mage.Sets/src/mage/cards/c/CoalGolem.java b/Mage.Sets/src/mage/cards/c/CoalGolem.java index 16aca1ace66..dbb9a1e40ab 100644 --- a/Mage.Sets/src/mage/cards/c/CoalGolem.java +++ b/Mage.Sets/src/mage/cards/c/CoalGolem.java @@ -33,7 +33,6 @@ import mage.Mana; import mage.abilities.Ability; import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.costs.mana.GenericManaCost; -import mage.abilities.effects.common.BasicManaEffect; import mage.abilities.mana.SimpleManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; diff --git a/Mage.Sets/src/mage/cards/c/Curfew.java b/Mage.Sets/src/mage/cards/c/Curfew.java index 169bfcb3b74..11c06ac8c42 100644 --- a/Mage.Sets/src/mage/cards/c/Curfew.java +++ b/Mage.Sets/src/mage/cards/c/Curfew.java @@ -39,14 +39,10 @@ import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.common.FilterControlledPermanent; import mage.game.Game; -import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetControlledCreaturePermanent; -import mage.target.common.TargetControlledPermanent; -import mage.target.common.TargetCreaturePermanent; /** * diff --git a/Mage.Sets/src/mage/cards/d/DisruptingShoal.java b/Mage.Sets/src/mage/cards/d/DisruptingShoal.java index 7ea8a7d49be..135d930f682 100644 --- a/Mage.Sets/src/mage/cards/d/DisruptingShoal.java +++ b/Mage.Sets/src/mage/cards/d/DisruptingShoal.java @@ -38,7 +38,6 @@ import mage.abilities.effects.OneShotEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.cards.CardSetInfo; import mage.cards.SplitCard; import mage.constants.CardType; import mage.constants.Outcome; diff --git a/Mage.Sets/src/mage/cards/d/DistemperOfTheBlood.java b/Mage.Sets/src/mage/cards/d/DistemperOfTheBlood.java index fa67866e62e..abff2196f66 100644 --- a/Mage.Sets/src/mage/cards/d/DistemperOfTheBlood.java +++ b/Mage.Sets/src/mage/cards/d/DistemperOfTheBlood.java @@ -30,7 +30,6 @@ package mage.cards.d; import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.Effect; -import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.MadnessAbility; diff --git a/Mage.Sets/src/mage/cards/d/DreamLeash.java b/Mage.Sets/src/mage/cards/d/DreamLeash.java index 80e9e8fdbbc..809e8d331ce 100644 --- a/Mage.Sets/src/mage/cards/d/DreamLeash.java +++ b/Mage.Sets/src/mage/cards/d/DreamLeash.java @@ -39,12 +39,9 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; -import mage.filter.FilterPermanent; -import mage.filter.predicate.permanent.TappedPredicate; import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.TargetPermanent; -import mage.target.common.TargetCreaturePermanent; /** * diff --git a/Mage.Sets/src/mage/cards/d/DrillSkimmer.java b/Mage.Sets/src/mage/cards/d/DrillSkimmer.java index 5f81a89f6fe..39724be4189 100644 --- a/Mage.Sets/src/mage/cards/d/DrillSkimmer.java +++ b/Mage.Sets/src/mage/cards/d/DrillSkimmer.java @@ -29,25 +29,20 @@ package mage.cards.d; import java.util.UUID; import mage.MageInt; -import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.decorator.ConditionalContinuousEffect; import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.FlyingAbility; -import mage.abilities.keyword.LifelinkAbility; import mage.abilities.keyword.ShroudAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Zone; -import mage.filter.common.FilterControlledArtifactPermanent; import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.common.FilterControlledPlaneswalkerPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; -import mage.filter.predicate.mageobject.ColorPredicate; import mage.filter.predicate.permanent.AnotherPredicate; /** diff --git a/Mage.Sets/src/mage/cards/d/DwarvenLandslide.java b/Mage.Sets/src/mage/cards/d/DwarvenLandslide.java index 85b7b706680..cae767d2f2f 100644 --- a/Mage.Sets/src/mage/cards/d/DwarvenLandslide.java +++ b/Mage.Sets/src/mage/cards/d/DwarvenLandslide.java @@ -42,7 +42,6 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterControlledLandPermanent; -import mage.filter.common.FilterLandPermanent; import mage.game.Game; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetLandPermanent; diff --git a/Mage.Sets/src/mage/cards/e/EerieInterlude.java b/Mage.Sets/src/mage/cards/e/EerieInterlude.java index a71b6bf0657..2d5c954b8ac 100644 --- a/Mage.Sets/src/mage/cards/e/EerieInterlude.java +++ b/Mage.Sets/src/mage/cards/e/EerieInterlude.java @@ -38,7 +38,6 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.ReturnToBattlefieldUnderOwnerControlTargetEffect; import mage.cards.Card; import mage.cards.CardImpl; -import mage.cards.CardSetInfo; import mage.cards.Cards; import mage.cards.CardsImpl; import mage.cards.CardSetInfo; diff --git a/Mage.Sets/src/mage/cards/e/EmbodimentOfFury.java b/Mage.Sets/src/mage/cards/e/EmbodimentOfFury.java index b3978962446..37ad396db97 100644 --- a/Mage.Sets/src/mage/cards/e/EmbodimentOfFury.java +++ b/Mage.Sets/src/mage/cards/e/EmbodimentOfFury.java @@ -40,16 +40,12 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; -import mage.constants.TargetController; import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.common.FilterControlledLandPermanent; -import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; -import mage.filter.predicate.permanent.ControllerPredicate; import mage.game.permanent.token.Token; import mage.target.TargetPermanent; -import mage.target.common.TargetLandPermanent; /** * diff --git a/Mage.Sets/src/mage/cards/e/EnlightenedAscetic.java b/Mage.Sets/src/mage/cards/e/EnlightenedAscetic.java index 3e349dcfe84..482932feecc 100644 --- a/Mage.Sets/src/mage/cards/e/EnlightenedAscetic.java +++ b/Mage.Sets/src/mage/cards/e/EnlightenedAscetic.java @@ -35,9 +35,6 @@ import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.common.FilterEnchantmentPermanent; -import mage.target.Target; -import mage.target.TargetPermanent; import mage.target.common.TargetEnchantmentPermanent; /** diff --git a/Mage.Sets/src/mage/cards/e/EssenceFlux.java b/Mage.Sets/src/mage/cards/e/EssenceFlux.java index 9f017c9c24b..d40cc6e44d1 100644 --- a/Mage.Sets/src/mage/cards/e/EssenceFlux.java +++ b/Mage.Sets/src/mage/cards/e/EssenceFlux.java @@ -35,7 +35,6 @@ import mage.abilities.effects.common.ExileTargetForSourceEffect; import mage.abilities.effects.common.counter.AddCountersTargetEffect; import mage.cards.Card; import mage.cards.CardImpl; -import mage.cards.CardSetInfo; import mage.cards.Cards; import mage.cards.CardsImpl; import mage.cards.CardSetInfo; diff --git a/Mage.Sets/src/mage/cards/g/GearshiftAce.java b/Mage.Sets/src/mage/cards/g/GearshiftAce.java index c6595507cb5..0b2355c60b4 100644 --- a/Mage.Sets/src/mage/cards/g/GearshiftAce.java +++ b/Mage.Sets/src/mage/cards/g/GearshiftAce.java @@ -29,8 +29,6 @@ package mage.cards.g; import java.util.UUID; import mage.MageInt; -import mage.abilities.TriggeredAbilityImpl; -import mage.abilities.effects.Effect; import mage.abilities.effects.common.CrewsVehicleSourceTriggeredAbility; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.FirstStrikeAbility; @@ -38,10 +36,6 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; -import mage.constants.Zone; -import mage.game.Game; -import mage.game.events.GameEvent; -import mage.target.targetpointer.FixedTarget; /** * diff --git a/Mage.Sets/src/mage/cards/g/Ghoulraiser.java b/Mage.Sets/src/mage/cards/g/Ghoulraiser.java index 29a348e05b9..c1c4a36b084 100644 --- a/Mage.Sets/src/mage/cards/g/Ghoulraiser.java +++ b/Mage.Sets/src/mage/cards/g/Ghoulraiser.java @@ -27,7 +27,6 @@ */ package mage.cards.g; -import java.util.Random; import java.util.UUID; import mage.constants.CardType; import mage.constants.Outcome; diff --git a/Mage.Sets/src/mage/cards/g/GrimoireThief.java b/Mage.Sets/src/mage/cards/g/GrimoireThief.java index 02eae14e35a..2a52958e34b 100644 --- a/Mage.Sets/src/mage/cards/g/GrimoireThief.java +++ b/Mage.Sets/src/mage/cards/g/GrimoireThief.java @@ -43,7 +43,6 @@ import mage.abilities.effects.AsThoughEffectImpl; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; import mage.cards.CardImpl; -import mage.cards.CardSetInfo; import mage.cards.Cards; import mage.cards.CardsImpl; import mage.cards.CardSetInfo; diff --git a/Mage.Sets/src/mage/cards/g/GruulCharm.java b/Mage.Sets/src/mage/cards/g/GruulCharm.java index 1f2d0095e44..c174bd326f6 100644 --- a/Mage.Sets/src/mage/cards/g/GruulCharm.java +++ b/Mage.Sets/src/mage/cards/g/GruulCharm.java @@ -29,7 +29,6 @@ package mage.cards.g; import java.util.UUID; -import mage.constants.CardType; import mage.constants.*; import mage.abilities.Mode; import mage.abilities.effects.common.combat.CantBlockAllEffect; diff --git a/Mage.Sets/src/mage/cards/h/HanweirTheWrithingTownship.java b/Mage.Sets/src/mage/cards/h/HanweirTheWrithingTownship.java index c48d2d2be49..744467610c8 100644 --- a/Mage.Sets/src/mage/cards/h/HanweirTheWrithingTownship.java +++ b/Mage.Sets/src/mage/cards/h/HanweirTheWrithingTownship.java @@ -35,7 +35,6 @@ import mage.abilities.keyword.TrampleAbility; import mage.cards.CardSetInfo; import mage.cards.MeldCard; import mage.constants.CardType; -import mage.constants.Rarity; import mage.game.permanent.token.EldraziHorrorToken; import java.util.UUID; diff --git a/Mage.Sets/src/mage/cards/h/HarshJudgment.java b/Mage.Sets/src/mage/cards/h/HarshJudgment.java index e4bd384823e..e0937bcaeed 100755 --- a/Mage.Sets/src/mage/cards/h/HarshJudgment.java +++ b/Mage.Sets/src/mage/cards/h/HarshJudgment.java @@ -33,9 +33,7 @@ import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.common.AsEntersBattlefieldAbility; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.RedirectionEffect; -import mage.abilities.effects.ReplacementEffectImpl; import mage.abilities.effects.common.ChooseColorEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -43,10 +41,8 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Outcome; import mage.constants.Zone; -import mage.filter.FilterInPlay; import mage.filter.common.FilterInstantOrSorceryCard; import mage.game.Game; -import mage.game.events.DamagePlayerEvent; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.game.stack.Spell; diff --git a/Mage.Sets/src/mage/cards/h/HauntedFengraf.java b/Mage.Sets/src/mage/cards/h/HauntedFengraf.java index e6c09da2c4c..d6213b12e57 100644 --- a/Mage.Sets/src/mage/cards/h/HauntedFengraf.java +++ b/Mage.Sets/src/mage/cards/h/HauntedFengraf.java @@ -27,7 +27,6 @@ */ package mage.cards.h; -import java.util.Random; import java.util.UUID; import mage.constants.CardType; diff --git a/Mage.Sets/src/mage/cards/i/Invisibility.java b/Mage.Sets/src/mage/cards/i/Invisibility.java index 5aac55003e2..02e929a53d9 100644 --- a/Mage.Sets/src/mage/cards/i/Invisibility.java +++ b/Mage.Sets/src/mage/cards/i/Invisibility.java @@ -30,7 +30,6 @@ package mage.cards.i; import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.RestrictionEffect; import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.combat.CantBeBlockedByCreaturesAttachedEffect; import mage.abilities.keyword.EnchantAbility; @@ -40,8 +39,6 @@ import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.SubtypePredicate; -import mage.game.Game; -import mage.game.permanent.Permanent; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; diff --git a/Mage.Sets/src/mage/cards/i/IvoryCup.java b/Mage.Sets/src/mage/cards/i/IvoryCup.java index 079672c67f7..8c512a9724e 100644 --- a/Mage.Sets/src/mage/cards/i/IvoryCup.java +++ b/Mage.Sets/src/mage/cards/i/IvoryCup.java @@ -28,7 +28,7 @@ package mage.cards.i; import java.util.UUID; -import mage.ObjectColor; + import mage.abilities.TriggeredAbilityImpl; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.DoIfCostPaid; diff --git a/Mage.Sets/src/mage/cards/j/JabbaTheHutt.java b/Mage.Sets/src/mage/cards/j/JabbaTheHutt.java index eefd733e328..bd38d7661ea 100644 --- a/Mage.Sets/src/mage/cards/j/JabbaTheHutt.java +++ b/Mage.Sets/src/mage/cards/j/JabbaTheHutt.java @@ -42,7 +42,6 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; -import mage.constants.TimingRule; import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterOpponentsCreaturePermanent; diff --git a/Mage.Sets/src/mage/cards/j/JestersScepter.java b/Mage.Sets/src/mage/cards/j/JestersScepter.java index 35412800277..cdf0ba8a8ae 100644 --- a/Mage.Sets/src/mage/cards/j/JestersScepter.java +++ b/Mage.Sets/src/mage/cards/j/JestersScepter.java @@ -42,7 +42,6 @@ import mage.abilities.effects.AsThoughEffectImpl; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; import mage.cards.CardImpl; -import mage.cards.CardSetInfo; import mage.cards.Cards; import mage.cards.CardSetInfo; import mage.cards.SplitCard; diff --git a/Mage.Sets/src/mage/cards/k/KrarksThumb.java b/Mage.Sets/src/mage/cards/k/KrarksThumb.java index 9543b349c94..eac2364d634 100644 --- a/Mage.Sets/src/mage/cards/k/KrarksThumb.java +++ b/Mage.Sets/src/mage/cards/k/KrarksThumb.java @@ -27,7 +27,6 @@ */ package mage.cards.k; -import java.util.Random; import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; diff --git a/Mage.Sets/src/mage/cards/k/KrosanWayfarer.java b/Mage.Sets/src/mage/cards/k/KrosanWayfarer.java index 514b76319ba..0faba446263 100644 --- a/Mage.Sets/src/mage/cards/k/KrosanWayfarer.java +++ b/Mage.Sets/src/mage/cards/k/KrosanWayfarer.java @@ -29,7 +29,6 @@ package mage.cards.k; import java.util.UUID; import mage.MageInt; -import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.effects.common.PutLandFromHandOntoBattlefieldEffect; diff --git a/Mage.Sets/src/mage/cards/l/Legerdemain.java b/Mage.Sets/src/mage/cards/l/Legerdemain.java index b33a93d273d..fa5093df707 100644 --- a/Mage.Sets/src/mage/cards/l/Legerdemain.java +++ b/Mage.Sets/src/mage/cards/l/Legerdemain.java @@ -29,7 +29,6 @@ package mage.cards.l; import java.util.UUID; import mage.MageItem; -import mage.abilities.Ability; import mage.abilities.effects.common.continuous.ExchangeControlTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; diff --git a/Mage.Sets/src/mage/cards/l/LifecraftCavalry.java b/Mage.Sets/src/mage/cards/l/LifecraftCavalry.java index abd8b5d9823..b3962f78ec5 100644 --- a/Mage.Sets/src/mage/cards/l/LifecraftCavalry.java +++ b/Mage.Sets/src/mage/cards/l/LifecraftCavalry.java @@ -29,10 +29,8 @@ package mage.cards.l; import java.util.UUID; import mage.MageInt; -import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.common.RevoltCondition; -import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; diff --git a/Mage.Sets/src/mage/cards/l/LiquidFire.java b/Mage.Sets/src/mage/cards/l/LiquidFire.java index 22d0c4961c9..c58cb222da0 100644 --- a/Mage.Sets/src/mage/cards/l/LiquidFire.java +++ b/Mage.Sets/src/mage/cards/l/LiquidFire.java @@ -30,7 +30,6 @@ package mage.cards.l; import java.util.UUID; import mage.abilities.Ability; import mage.abilities.costs.Cost; -import mage.abilities.costs.CostImpl; import mage.abilities.costs.VariableCostImpl; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.common.GetXValue; diff --git a/Mage.Sets/src/mage/cards/l/LivingTerrain.java b/Mage.Sets/src/mage/cards/l/LivingTerrain.java index 4cf5431f838..3500b36697b 100644 --- a/Mage.Sets/src/mage/cards/l/LivingTerrain.java +++ b/Mage.Sets/src/mage/cards/l/LivingTerrain.java @@ -38,7 +38,6 @@ import mage.abilities.effects.common.continuous.BecomesCreatureAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.filter.common.FilterLandPermanent; import mage.game.permanent.token.Token; import mage.target.TargetPermanent; import mage.target.common.TargetLandPermanent; diff --git a/Mage.Sets/src/mage/cards/l/LongRoadHome.java b/Mage.Sets/src/mage/cards/l/LongRoadHome.java index 5f39b599ece..a3632cf939c 100644 --- a/Mage.Sets/src/mage/cards/l/LongRoadHome.java +++ b/Mage.Sets/src/mage/cards/l/LongRoadHome.java @@ -36,7 +36,6 @@ import mage.abilities.effects.ReplacementEffectImpl; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.cards.CardSetInfo; import mage.cards.MeldCard; import mage.constants.CardType; import mage.constants.Duration; diff --git a/Mage.Sets/src/mage/cards/l/LurkingInformant.java b/Mage.Sets/src/mage/cards/l/LurkingInformant.java index 3b979295172..d112253f106 100644 --- a/Mage.Sets/src/mage/cards/l/LurkingInformant.java +++ b/Mage.Sets/src/mage/cards/l/LurkingInformant.java @@ -33,18 +33,11 @@ import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.GenericManaCost; -import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.LookLibraryTopCardTargetPlayerEffect; -import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; import mage.constants.CardType; -import mage.constants.Outcome; import mage.constants.Zone; -import mage.game.Game; -import mage.players.Player; import mage.target.TargetPlayer; /** diff --git a/Mage.Sets/src/mage/cards/m/MinamosMeddling.java b/Mage.Sets/src/mage/cards/m/MinamosMeddling.java index d14d9728496..565026bc112 100644 --- a/Mage.Sets/src/mage/cards/m/MinamosMeddling.java +++ b/Mage.Sets/src/mage/cards/m/MinamosMeddling.java @@ -27,7 +27,6 @@ */ package mage.cards.m; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.SpellAbility; diff --git a/Mage.Sets/src/mage/cards/m/Mindreaver.java b/Mage.Sets/src/mage/cards/m/Mindreaver.java index 653f7a71f4c..6de80efc193 100644 --- a/Mage.Sets/src/mage/cards/m/Mindreaver.java +++ b/Mage.Sets/src/mage/cards/m/Mindreaver.java @@ -42,7 +42,6 @@ import mage.abilities.keyword.HeroicAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.cards.CardSetInfo; import mage.cards.SplitCard; import mage.constants.CardType; import mage.constants.Outcome; diff --git a/Mage.Sets/src/mage/cards/m/MoldgrafMonstrosity.java b/Mage.Sets/src/mage/cards/m/MoldgrafMonstrosity.java index 65e94c25865..73a5b10e7b6 100644 --- a/Mage.Sets/src/mage/cards/m/MoldgrafMonstrosity.java +++ b/Mage.Sets/src/mage/cards/m/MoldgrafMonstrosity.java @@ -27,7 +27,6 @@ */ package mage.cards.m; -import java.util.Random; import java.util.Set; import java.util.UUID; import mage.constants.CardType; diff --git a/Mage.Sets/src/mage/cards/m/MoltenBirth.java b/Mage.Sets/src/mage/cards/m/MoltenBirth.java index 92a41be61e2..1e91c9a2f2f 100644 --- a/Mage.Sets/src/mage/cards/m/MoltenBirth.java +++ b/Mage.Sets/src/mage/cards/m/MoltenBirth.java @@ -27,7 +27,6 @@ */ package mage.cards.m; -import java.util.Random; import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; diff --git a/Mage.Sets/src/mage/cards/m/MurderousSpoils.java b/Mage.Sets/src/mage/cards/m/MurderousSpoils.java index 46546608f63..e2a7f29e7a4 100644 --- a/Mage.Sets/src/mage/cards/m/MurderousSpoils.java +++ b/Mage.Sets/src/mage/cards/m/MurderousSpoils.java @@ -34,7 +34,6 @@ import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.OneShotEffect; -import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.continuous.GainControlTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -43,7 +42,6 @@ import mage.constants.Duration; import mage.constants.Outcome; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; -import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.ColorPredicate; import mage.game.Game; import mage.game.permanent.Permanent; diff --git a/Mage.Sets/src/mage/cards/n/NoxiousGearhulk.java b/Mage.Sets/src/mage/cards/n/NoxiousGearhulk.java index 6e2145b911c..e035fd72a75 100644 --- a/Mage.Sets/src/mage/cards/n/NoxiousGearhulk.java +++ b/Mage.Sets/src/mage/cards/n/NoxiousGearhulk.java @@ -37,7 +37,6 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; -import mage.constants.Rarity; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.game.Game; diff --git a/Mage.Sets/src/mage/cards/p/PanopticMirror.java b/Mage.Sets/src/mage/cards/p/PanopticMirror.java index cb206ed2706..aea3ef21da8 100644 --- a/Mage.Sets/src/mage/cards/p/PanopticMirror.java +++ b/Mage.Sets/src/mage/cards/p/PanopticMirror.java @@ -36,7 +36,6 @@ import mage.abilities.costs.mana.VariableManaCost; import mage.abilities.effects.OneShotEffect; import mage.cards.Card; import mage.cards.CardImpl; -import mage.cards.CardSetInfo; import mage.cards.CardsImpl; import mage.cards.CardSetInfo; import mage.cards.SplitCard; diff --git a/Mage.Sets/src/mage/cards/p/ParallelEvolution.java b/Mage.Sets/src/mage/cards/p/ParallelEvolution.java index 9923541227c..9d086f02094 100644 --- a/Mage.Sets/src/mage/cards/p/ParallelEvolution.java +++ b/Mage.Sets/src/mage/cards/p/ParallelEvolution.java @@ -28,7 +28,7 @@ package mage.cards.p; import java.util.UUID; -import mage.MageInt; + import mage.abilities.Ability; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; @@ -44,7 +44,6 @@ import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.permanent.TokenPredicate; import mage.game.Game; import mage.game.permanent.Permanent; -import mage.game.permanent.token.Token; import mage.target.targetpointer.FixedTarget; /** diff --git a/Mage.Sets/src/mage/cards/p/PriestOfYawgmoth.java b/Mage.Sets/src/mage/cards/p/PriestOfYawgmoth.java index d1d142459f7..6d87fed7300 100644 --- a/Mage.Sets/src/mage/cards/p/PriestOfYawgmoth.java +++ b/Mage.Sets/src/mage/cards/p/PriestOfYawgmoth.java @@ -32,7 +32,6 @@ import mage.MageInt; import mage.Mana; import mage.abilities.Ability; import mage.abilities.costs.common.SacrificeTargetCost; -import mage.abilities.costs.common.TapSourceCost; import mage.abilities.dynamicvalue.common.SacrificeCostConvertedMana; import mage.abilities.mana.DynamicManaAbility; import mage.cards.CardImpl; diff --git a/Mage.Sets/src/mage/cards/p/PsychicPossession.java b/Mage.Sets/src/mage/cards/p/PsychicPossession.java index 41d889c27d9..adfefd8af85 100644 --- a/Mage.Sets/src/mage/cards/p/PsychicPossession.java +++ b/Mage.Sets/src/mage/cards/p/PsychicPossession.java @@ -46,7 +46,6 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetPlayer; import mage.target.common.TargetOpponent; -import mage.target.targetpointer.FixedTarget; /** * diff --git a/Mage.Sets/src/mage/cards/p/PulseOfTheTangle.java b/Mage.Sets/src/mage/cards/p/PulseOfTheTangle.java index 7345c5a9e21..01aa908d507 100644 --- a/Mage.Sets/src/mage/cards/p/PulseOfTheTangle.java +++ b/Mage.Sets/src/mage/cards/p/PulseOfTheTangle.java @@ -44,8 +44,6 @@ import mage.filter.predicate.permanent.ControllerIdPredicate; import mage.game.Game; import mage.game.permanent.token.BeastToken; import mage.players.Player; -import mage.target.TargetPlayer; -import mage.target.common.TargetOpponent; /** * diff --git a/Mage.Sets/src/mage/cards/r/RavingDead.java b/Mage.Sets/src/mage/cards/r/RavingDead.java index 072681badcd..31cbab970bf 100644 --- a/Mage.Sets/src/mage/cards/r/RavingDead.java +++ b/Mage.Sets/src/mage/cards/r/RavingDead.java @@ -27,30 +27,21 @@ */ package mage.cards.r; -import java.util.ArrayList; -import java.util.List; -import java.util.Random; import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfCombatTriggeredAbility; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; -import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.OneShotEffect; -import mage.abilities.effects.RequirementEffect; import mage.abilities.effects.common.combat.AttackIfAbleTargetRandomOpponentSourceEffect; import mage.abilities.keyword.DeathtouchAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.constants.Duration; import mage.constants.Outcome; import mage.constants.TargetController; import mage.game.Game; -import mage.game.permanent.Permanent; import mage.players.Player; -import mage.target.targetpointer.FixedTarget; -import mage.util.RandomUtil; /** * diff --git a/Mage.Sets/src/mage/cards/r/RestorationSpecialist.java b/Mage.Sets/src/mage/cards/r/RestorationSpecialist.java index 0fc7bf501fd..6f9db5e0f26 100644 --- a/Mage.Sets/src/mage/cards/r/RestorationSpecialist.java +++ b/Mage.Sets/src/mage/cards/r/RestorationSpecialist.java @@ -34,7 +34,6 @@ import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.Effect; -import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; diff --git a/Mage.Sets/src/mage/cards/r/RunnersBane.java b/Mage.Sets/src/mage/cards/r/RunnersBane.java index da95240dc90..12fea6114ea 100644 --- a/Mage.Sets/src/mage/cards/r/RunnersBane.java +++ b/Mage.Sets/src/mage/cards/r/RunnersBane.java @@ -35,7 +35,6 @@ import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.DontUntapInControllersUntapStepEnchantedEffect; import mage.abilities.keyword.EnchantAbility; @@ -45,8 +44,6 @@ import mage.constants.Outcome; import mage.filter.Filter; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.PowerPredicate; -import mage.game.Game; -import mage.game.permanent.Permanent; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; diff --git a/Mage.Sets/src/mage/cards/r/RushingRiver.java b/Mage.Sets/src/mage/cards/r/RushingRiver.java index 8125908332b..2fe97fb671c 100644 --- a/Mage.Sets/src/mage/cards/r/RushingRiver.java +++ b/Mage.Sets/src/mage/cards/r/RushingRiver.java @@ -40,7 +40,6 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterControlledLandPermanent; -import mage.filter.common.FilterNonlandPermanent; import mage.game.Game; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetNonlandPermanent; diff --git a/Mage.Sets/src/mage/cards/s/SalvageTitan.java b/Mage.Sets/src/mage/cards/s/SalvageTitan.java index 8ff401cd3ef..569865e9ee2 100644 --- a/Mage.Sets/src/mage/cards/s/SalvageTitan.java +++ b/Mage.Sets/src/mage/cards/s/SalvageTitan.java @@ -40,8 +40,6 @@ import mage.constants.CardType; import mage.constants.Zone; import mage.filter.common.FilterArtifactCard; import mage.filter.common.FilterControlledArtifactPermanent; -import mage.filter.common.FilterControlledPermanent; -import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetCardInYourGraveyard; import mage.target.common.TargetControlledPermanent; diff --git a/Mage.Sets/src/mage/cards/s/SanctumPrelate.java b/Mage.Sets/src/mage/cards/s/SanctumPrelate.java index e015da5b0aa..b79ecd0e4ec 100644 --- a/Mage.Sets/src/mage/cards/s/SanctumPrelate.java +++ b/Mage.Sets/src/mage/cards/s/SanctumPrelate.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.HashSet; import java.util.UUID; import mage.MageInt; import mage.MageObject; @@ -36,18 +35,14 @@ import mage.abilities.common.AsEntersBattlefieldAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.ContinuousRuleModifyingEffectImpl; import mage.abilities.effects.OneShotEffect; -import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.choices.Choice; -import mage.choices.ChoiceImpl; import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.game.stack.Spell; import mage.players.Player; -import org.apache.log4j.Logger; /** * diff --git a/Mage.Sets/src/mage/cards/s/SatyrHedonist.java b/Mage.Sets/src/mage/cards/s/SatyrHedonist.java index f8427000673..9c7f479d6ca 100644 --- a/Mage.Sets/src/mage/cards/s/SatyrHedonist.java +++ b/Mage.Sets/src/mage/cards/s/SatyrHedonist.java @@ -30,11 +30,8 @@ package mage.cards.s; import java.util.UUID; import mage.MageInt; import mage.Mana; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.BasicManaEffect; import mage.abilities.mana.SimpleManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; diff --git a/Mage.Sets/src/mage/cards/s/Scrambleverse.java b/Mage.Sets/src/mage/cards/s/Scrambleverse.java index 1c7c0fe8446..27f7a7bf2a5 100644 --- a/Mage.Sets/src/mage/cards/s/Scrambleverse.java +++ b/Mage.Sets/src/mage/cards/s/Scrambleverse.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.Random; import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.ContinuousEffect; diff --git a/Mage.Sets/src/mage/cards/s/SigardaHostOfHerons.java b/Mage.Sets/src/mage/cards/s/SigardaHostOfHerons.java index c80bd1d1ee6..3c262f6af9d 100644 --- a/Mage.Sets/src/mage/cards/s/SigardaHostOfHerons.java +++ b/Mage.Sets/src/mage/cards/s/SigardaHostOfHerons.java @@ -42,7 +42,6 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Outcome; import mage.constants.Zone; -import mage.game.Controllable; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.PermanentCard; diff --git a/Mage.Sets/src/mage/cards/s/SithMindseer.java b/Mage.Sets/src/mage/cards/s/SithMindseer.java index 9728c33c105..dca94015943 100644 --- a/Mage.Sets/src/mage/cards/s/SithMindseer.java +++ b/Mage.Sets/src/mage/cards/s/SithMindseer.java @@ -33,7 +33,6 @@ import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.HateCondition; import mage.abilities.decorator.ConditionalTriggeredAbility; -import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.continuous.GainControlTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; diff --git a/Mage.Sets/src/mage/cards/s/SkyshroudRanger.java b/Mage.Sets/src/mage/cards/s/SkyshroudRanger.java index 338f5174500..826d43ccf74 100644 --- a/Mage.Sets/src/mage/cards/s/SkyshroudRanger.java +++ b/Mage.Sets/src/mage/cards/s/SkyshroudRanger.java @@ -29,7 +29,6 @@ package mage.cards.s; import java.util.UUID; import mage.MageInt; -import mage.abilities.Ability; import mage.abilities.common.ActivateAsSorceryActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.PutLandFromHandOntoBattlefieldEffect; @@ -37,8 +36,6 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.common.FilterLandCard; -import mage.target.common.TargetCardInHand; /** * diff --git a/Mage.Sets/src/mage/cards/s/SoldeviAdnate.java b/Mage.Sets/src/mage/cards/s/SoldeviAdnate.java index b4bf165e04d..0b725032f9b 100644 --- a/Mage.Sets/src/mage/cards/s/SoldeviAdnate.java +++ b/Mage.Sets/src/mage/cards/s/SoldeviAdnate.java @@ -33,7 +33,6 @@ import mage.Mana; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.costs.common.SacrificeTargetCost; -import mage.abilities.costs.common.TapSourceCost; import mage.abilities.dynamicvalue.common.SacrificeCostConvertedMana; import mage.abilities.mana.DynamicManaAbility; import mage.cards.CardImpl; diff --git a/Mage.Sets/src/mage/cards/s/SoulChanneling.java b/Mage.Sets/src/mage/cards/s/SoulChanneling.java index fa8af93a404..94d2a476c03 100644 --- a/Mage.Sets/src/mage/cards/s/SoulChanneling.java +++ b/Mage.Sets/src/mage/cards/s/SoulChanneling.java @@ -35,8 +35,6 @@ import mage.abilities.effects.common.AttachEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Outcome; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; import mage.abilities.common.SimpleActivatedAbility; diff --git a/Mage.Sets/src/mage/cards/s/SoulExchange.java b/Mage.Sets/src/mage/cards/s/SoulExchange.java index fcb574390c6..5544de14447 100644 --- a/Mage.Sets/src/mage/cards/s/SoulExchange.java +++ b/Mage.Sets/src/mage/cards/s/SoulExchange.java @@ -33,7 +33,6 @@ import mage.abilities.costs.Cost; import mage.abilities.costs.common.ExileTargetCost; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; -import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; diff --git a/Mage.Sets/src/mage/cards/s/StasisSnare.java b/Mage.Sets/src/mage/cards/s/StasisSnare.java index 7e7bd31f7f9..a0272ed4c29 100644 --- a/Mage.Sets/src/mage/cards/s/StasisSnare.java +++ b/Mage.Sets/src/mage/cards/s/StasisSnare.java @@ -31,22 +31,16 @@ import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.delayed.OnLeaveReturnExiledToBattlefieldAbility; -import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect; -import mage.abilities.effects.common.ExileTargetEffect; import mage.abilities.effects.common.ExileUntilSourceLeavesEffect; import mage.abilities.keyword.FlashAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.constants.Outcome; import mage.constants.TargetController; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; -import mage.game.Game; -import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; -import mage.util.CardUtil; /** * diff --git a/Mage.Sets/src/mage/cards/s/StrikeTeamCommando.java b/Mage.Sets/src/mage/cards/s/StrikeTeamCommando.java index d08d7c262b0..f3d05847f45 100644 --- a/Mage.Sets/src/mage/cards/s/StrikeTeamCommando.java +++ b/Mage.Sets/src/mage/cards/s/StrikeTeamCommando.java @@ -37,7 +37,6 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterArtifactPermanent; -import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.target.common.TargetArtifactPermanent; diff --git a/Mage.Sets/src/mage/cards/s/SurrealMemoir.java b/Mage.Sets/src/mage/cards/s/SurrealMemoir.java index a6d3de96a0a..f2139852864 100644 --- a/Mage.Sets/src/mage/cards/s/SurrealMemoir.java +++ b/Mage.Sets/src/mage/cards/s/SurrealMemoir.java @@ -27,7 +27,6 @@ */ package mage.cards.s; -import java.util.Random; import java.util.UUID; import mage.constants.CardType; import mage.constants.Outcome; diff --git a/Mage.Sets/src/mage/cards/t/Tatterkite.java b/Mage.Sets/src/mage/cards/t/Tatterkite.java index f1e2935353a..b5f27404e71 100644 --- a/Mage.Sets/src/mage/cards/t/Tatterkite.java +++ b/Mage.Sets/src/mage/cards/t/Tatterkite.java @@ -35,7 +35,6 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.constants.Duration; import mage.constants.Zone; /** diff --git a/Mage.Sets/src/mage/cards/t/TerrainGenerator.java b/Mage.Sets/src/mage/cards/t/TerrainGenerator.java index 69084a04be6..0b8e9dfa61d 100644 --- a/Mage.Sets/src/mage/cards/t/TerrainGenerator.java +++ b/Mage.Sets/src/mage/cards/t/TerrainGenerator.java @@ -32,24 +32,13 @@ import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.PutLandFromHandOntoBattlefieldEffect; import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.constants.Outcome; import mage.constants.Zone; -import mage.filter.FilterCard; import mage.filter.common.FilterLandCard; -import mage.filter.predicate.Predicates; -import mage.filter.predicate.mageobject.CardTypePredicate; -import mage.filter.predicate.mageobject.SupertypePredicate; -import mage.game.Game; -import mage.game.permanent.Permanent; -import mage.players.Player; -import mage.target.common.TargetCardInHand; /** * diff --git a/Mage.Sets/src/mage/cards/t/TimberpackWolf.java b/Mage.Sets/src/mage/cards/t/TimberpackWolf.java index 2fc39158191..a8f7ca7e8c7 100644 --- a/Mage.Sets/src/mage/cards/t/TimberpackWolf.java +++ b/Mage.Sets/src/mage/cards/t/TimberpackWolf.java @@ -29,7 +29,6 @@ package mage.cards.t; import java.util.UUID; -import mage.constants.CardType; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; diff --git a/Mage.Sets/src/mage/cards/u/UlvenwaldTracker.java b/Mage.Sets/src/mage/cards/u/UlvenwaldTracker.java index 0ceae40e3bd..414c3bf6d58 100644 --- a/Mage.Sets/src/mage/cards/u/UlvenwaldTracker.java +++ b/Mage.Sets/src/mage/cards/u/UlvenwaldTracker.java @@ -40,7 +40,6 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AnotherTargetPredicate; -import mage.game.Game; import mage.target.Target; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; diff --git a/Mage.Sets/src/mage/cards/v/VesselOfVolatility.java b/Mage.Sets/src/mage/cards/v/VesselOfVolatility.java index d8bae15eac7..e94f41448de 100644 --- a/Mage.Sets/src/mage/cards/v/VesselOfVolatility.java +++ b/Mage.Sets/src/mage/cards/v/VesselOfVolatility.java @@ -30,10 +30,8 @@ package mage.cards.v; import java.util.UUID; import mage.Mana; import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.BasicManaEffect; import mage.abilities.mana.SimpleManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; diff --git a/Mage.Sets/src/mage/cards/v/VeteranMotorist.java b/Mage.Sets/src/mage/cards/v/VeteranMotorist.java index cae062aebd3..2f5cc2275b2 100644 --- a/Mage.Sets/src/mage/cards/v/VeteranMotorist.java +++ b/Mage.Sets/src/mage/cards/v/VeteranMotorist.java @@ -29,7 +29,6 @@ package mage.cards.v; import java.util.UUID; import mage.MageInt; -import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.common.CrewsVehicleSourceTriggeredAbility; @@ -39,10 +38,6 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; -import mage.constants.Zone; -import mage.game.Game; -import mage.game.events.GameEvent; -import mage.target.targetpointer.FixedTarget; /** * diff --git a/Mage.Sets/src/mage/cards/v/Vex.java b/Mage.Sets/src/mage/cards/v/Vex.java index fe99a6347cf..633ff381561 100644 --- a/Mage.Sets/src/mage/cards/v/Vex.java +++ b/Mage.Sets/src/mage/cards/v/Vex.java @@ -30,17 +30,12 @@ package mage.cards.v; import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; -import mage.abilities.effects.common.CounterTargetEffect; -import mage.abilities.effects.common.DrawCardSourceControllerEffect; -import mage.abilities.effects.common.DrawCardTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; import mage.game.Game; -import mage.game.stack.Spell; import mage.players.Player; -import mage.target.Target; import mage.target.TargetSpell; /** diff --git a/Mage.Sets/src/mage/cards/w/WalkingAtlas.java b/Mage.Sets/src/mage/cards/w/WalkingAtlas.java index 8e24c7fd032..39aeb0ed3be 100644 --- a/Mage.Sets/src/mage/cards/w/WalkingAtlas.java +++ b/Mage.Sets/src/mage/cards/w/WalkingAtlas.java @@ -30,7 +30,6 @@ package mage.cards.w; import java.util.UUID; import mage.MageInt; -import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.PutLandFromHandOntoBattlefieldEffect; @@ -38,8 +37,6 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.common.FilterLandCard; -import mage.target.common.TargetCardInHand; /** * diff --git a/Mage.Sets/src/mage/cards/w/WharfInfiltrator.java b/Mage.Sets/src/mage/cards/w/WharfInfiltrator.java index 954cb405ad0..aca4497450c 100644 --- a/Mage.Sets/src/mage/cards/w/WharfInfiltrator.java +++ b/Mage.Sets/src/mage/cards/w/WharfInfiltrator.java @@ -46,7 +46,6 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.game.permanent.token.EldraziHorrorToken; -import mage.game.permanent.token.Token; /** * diff --git a/Mage.Sets/src/mage/cards/w/WhimsOfTheFates.java b/Mage.Sets/src/mage/cards/w/WhimsOfTheFates.java index 519463a1551..30f70be1adc 100644 --- a/Mage.Sets/src/mage/cards/w/WhimsOfTheFates.java +++ b/Mage.Sets/src/mage/cards/w/WhimsOfTheFates.java @@ -31,7 +31,6 @@ import java.util.HashMap; import java.util.LinkedHashMap; import java.util.LinkedHashSet; import java.util.Map; -import java.util.Random; import java.util.Set; import java.util.UUID; import mage.abilities.Ability; diff --git a/Mage.Sets/src/mage/cards/w/WildSwing.java b/Mage.Sets/src/mage/cards/w/WildSwing.java index 2698324a39c..7127ad03a34 100644 --- a/Mage.Sets/src/mage/cards/w/WildSwing.java +++ b/Mage.Sets/src/mage/cards/w/WildSwing.java @@ -27,7 +27,6 @@ */ package mage.cards.w; -import java.util.Random; import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; diff --git a/Mage.Sets/src/mage/cards/w/WispweaverAngel.java b/Mage.Sets/src/mage/cards/w/WispweaverAngel.java index d2136081efc..780763cf90f 100644 --- a/Mage.Sets/src/mage/cards/w/WispweaverAngel.java +++ b/Mage.Sets/src/mage/cards/w/WispweaverAngel.java @@ -37,7 +37,6 @@ import mage.abilities.effects.common.ExileTargetForSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.Card; import mage.cards.CardImpl; -import mage.cards.CardSetInfo; import mage.cards.Cards; import mage.cards.CardsImpl; import mage.cards.CardSetInfo; diff --git a/Mage.Sets/src/mage/cards/w/WoodlandSleuth.java b/Mage.Sets/src/mage/cards/w/WoodlandSleuth.java index c53f5874555..c2f58a76bee 100644 --- a/Mage.Sets/src/mage/cards/w/WoodlandSleuth.java +++ b/Mage.Sets/src/mage/cards/w/WoodlandSleuth.java @@ -27,7 +27,6 @@ */ package mage.cards.w; -import java.util.Random; import java.util.UUID; import mage.constants.CardType; import mage.constants.Outcome; diff --git a/Mage.Sets/src/mage/cards/y/YWing.java b/Mage.Sets/src/mage/cards/y/YWing.java index b1474a3e3d0..16fb13ac866 100644 --- a/Mage.Sets/src/mage/cards/y/YWing.java +++ b/Mage.Sets/src/mage/cards/y/YWing.java @@ -38,10 +38,6 @@ import mage.abilities.keyword.SpaceflightAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.constants.TargetController; -import mage.filter.common.FilterCreaturePermanent; -import mage.filter.predicate.permanent.ControllerPredicate; -import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetOpponentsCreaturePermanent; /** diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/TransformTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/TransformTest.java index 0aec7dc3634..f44e232307b 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/TransformTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/TransformTest.java @@ -27,7 +27,6 @@ */ package org.mage.test.cards.abilities.keywords; -import mage.abilities.keyword.IndestructibleAbility; import mage.constants.CardType; import mage.constants.PhaseStep; import mage.constants.Zone; diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/control/DebtOfLoyaltyTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/control/DebtOfLoyaltyTest.java index 9e1072e6eb0..1f0e244f09f 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/control/DebtOfLoyaltyTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/control/DebtOfLoyaltyTest.java @@ -27,7 +27,6 @@ */ package org.mage.test.cards.control; -import org.mage.test.cards.prevention.*; import mage.constants.PhaseStep; import mage.constants.Zone; import mage.game.permanent.Permanent; diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/copy/PhantasmalImageTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/copy/PhantasmalImageTest.java index c04f1da5341..2439033d1b2 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/copy/PhantasmalImageTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/copy/PhantasmalImageTest.java @@ -6,29 +6,10 @@ import mage.constants.PhaseStep; import mage.constants.Zone; import mage.game.permanent.Permanent; import org.junit.Assert; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; + import org.junit.Test; import org.mage.test.serverside.base.CardTestPlayerBase; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; + import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/filters/IvoryGuardiansTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/filters/IvoryGuardiansTest.java index f805e9ca83d..22a0dcc2285 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/filters/IvoryGuardiansTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/filters/IvoryGuardiansTest.java @@ -2,8 +2,6 @@ package org.mage.test.cards.filters; import mage.constants.PhaseStep; import mage.constants.Zone; -import mage.game.permanent.Permanent; -import org.junit.Assert; import org.junit.Test; import org.mage.test.serverside.base.CardTestPlayerBase; diff --git a/Mage.Tests/src/test/java/org/mage/test/utils/DeckBuilderTest.java b/Mage.Tests/src/test/java/org/mage/test/utils/DeckBuilderTest.java index d5a81b73907..2f7cf076724 100644 --- a/Mage.Tests/src/test/java/org/mage/test/utils/DeckBuilderTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/utils/DeckBuilderTest.java @@ -5,8 +5,6 @@ import mage.cards.CardSetInfo; import mage.cards.basiclands.Island; import mage.cards.Card; import mage.cards.CardImpl; -import mage.cards.repository.CardInfo; -import mage.cards.repository.CardRepository; import mage.constants.CardType; import mage.constants.ColoredManaSymbol; import mage.constants.Rarity; diff --git a/Mage/src/main/java/mage/abilities/costs/common/SacrificeAllCost.java b/Mage/src/main/java/mage/abilities/costs/common/SacrificeAllCost.java index 58f767345e2..415692e7ced 100644 --- a/Mage/src/main/java/mage/abilities/costs/common/SacrificeAllCost.java +++ b/Mage/src/main/java/mage/abilities/costs/common/SacrificeAllCost.java @@ -38,7 +38,6 @@ import mage.constants.AbilityType; import mage.filter.FilterPermanent; import mage.game.Game; import mage.game.permanent.Permanent; -import mage.target.common.TargetControlledPermanent; /** * diff --git a/Mage/src/main/java/mage/abilities/keyword/ProtectionAbility.java b/Mage/src/main/java/mage/abilities/keyword/ProtectionAbility.java index b75bacfae7f..5db0f90de49 100644 --- a/Mage/src/main/java/mage/abilities/keyword/ProtectionAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/ProtectionAbility.java @@ -30,7 +30,6 @@ package mage.abilities.keyword; import java.util.UUID; import mage.MageObject; import mage.ObjectColor; -import mage.abilities.Ability; import mage.abilities.StaticAbility; import mage.cards.Card; import mage.constants.CardType; diff --git a/Mage/src/main/java/mage/cards/CardImpl.java b/Mage/src/main/java/mage/cards/CardImpl.java index f85dfb0c52c..10a0aa8d124 100644 --- a/Mage/src/main/java/mage/cards/CardImpl.java +++ b/Mage/src/main/java/mage/cards/CardImpl.java @@ -49,7 +49,6 @@ import mage.constants.Zone; import mage.counters.Counter; import mage.counters.Counters; import mage.game.*; -import mage.game.command.Commander; import mage.game.events.GameEvent; import mage.game.events.ZoneChangeEvent; import mage.game.permanent.Permanent; diff --git a/Mage/src/main/java/mage/game/GameImpl.java b/Mage/src/main/java/mage/game/GameImpl.java index eac5e08104c..a17832e0ee6 100644 --- a/Mage/src/main/java/mage/game/GameImpl.java +++ b/Mage/src/main/java/mage/game/GameImpl.java @@ -109,7 +109,6 @@ import mage.game.events.TableEventSource; import mage.game.permanent.Battlefield; import mage.game.permanent.Permanent; import mage.game.permanent.PermanentCard; -import mage.game.permanent.PermanentImpl; import mage.game.stack.Spell; import mage.game.stack.SpellStack; import mage.game.stack.StackObject; diff --git a/Mage/src/main/java/mage/game/permanent/token/DevilToken.java b/Mage/src/main/java/mage/game/permanent/token/DevilToken.java index 8b3e2cafccb..4b67258340a 100644 --- a/Mage/src/main/java/mage/game/permanent/token/DevilToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/DevilToken.java @@ -27,7 +27,6 @@ */ package mage.game.permanent.token; -import java.util.Arrays; import java.util.Collections; import mage.MageInt; diff --git a/Mage/src/main/java/mage/game/permanent/token/DroidToken.java b/Mage/src/main/java/mage/game/permanent/token/DroidToken.java index d9a440efad6..bf94743f5cb 100644 --- a/Mage/src/main/java/mage/game/permanent/token/DroidToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/DroidToken.java @@ -27,7 +27,6 @@ */ package mage.game.permanent.token; -import java.util.Arrays; import java.util.Collections; import mage.MageInt; diff --git a/Mage/src/main/java/mage/game/permanent/token/EldraziHorrorToken.java b/Mage/src/main/java/mage/game/permanent/token/EldraziHorrorToken.java index 1ec3623b87f..15dd2d04b0e 100644 --- a/Mage/src/main/java/mage/game/permanent/token/EldraziHorrorToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/EldraziHorrorToken.java @@ -28,7 +28,6 @@ package mage.game.permanent.token; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collections; import java.util.List; import mage.MageInt; diff --git a/Mage/src/main/java/mage/game/permanent/token/EwokToken.java b/Mage/src/main/java/mage/game/permanent/token/EwokToken.java index 1d930992c5d..740a1a58d8f 100644 --- a/Mage/src/main/java/mage/game/permanent/token/EwokToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/EwokToken.java @@ -27,7 +27,6 @@ */ package mage.game.permanent.token; -import java.util.Arrays; import java.util.Collections; import mage.constants.CardType; diff --git a/Mage/src/main/java/mage/game/permanent/token/PrismToken.java b/Mage/src/main/java/mage/game/permanent/token/PrismToken.java index b59ddd270f0..cb9f56b4485 100644 --- a/Mage/src/main/java/mage/game/permanent/token/PrismToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/PrismToken.java @@ -28,7 +28,6 @@ package mage.game.permanent.token; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collections; import java.util.List; import mage.MageInt; diff --git a/Mage/src/main/java/mage/game/permanent/token/ServoToken.java b/Mage/src/main/java/mage/game/permanent/token/ServoToken.java index 0c9db5b39f0..6be5dc0bde3 100644 --- a/Mage/src/main/java/mage/game/permanent/token/ServoToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/ServoToken.java @@ -28,7 +28,6 @@ package mage.game.permanent.token; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collections; import java.util.List; import mage.MageInt; diff --git a/Mage/src/main/java/mage/game/permanent/token/SquirrelToken.java b/Mage/src/main/java/mage/game/permanent/token/SquirrelToken.java index 77dc0fdabad..347546b0d64 100644 --- a/Mage/src/main/java/mage/game/permanent/token/SquirrelToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/SquirrelToken.java @@ -28,7 +28,6 @@ package mage.game.permanent.token; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collections; import java.util.List; import mage.MageInt; diff --git a/Mage/src/main/java/mage/game/permanent/token/ThrullToken.java b/Mage/src/main/java/mage/game/permanent/token/ThrullToken.java index 759a93d2010..ca6bd3b3e38 100644 --- a/Mage/src/main/java/mage/game/permanent/token/ThrullToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/ThrullToken.java @@ -29,7 +29,6 @@ package mage.game.permanent.token; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collections; import java.util.List; import mage.MageInt; diff --git a/Mage/src/main/java/mage/game/permanent/token/TrooperToken.java b/Mage/src/main/java/mage/game/permanent/token/TrooperToken.java index 00a5b43e450..3270d6b0b71 100644 --- a/Mage/src/main/java/mage/game/permanent/token/TrooperToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/TrooperToken.java @@ -27,7 +27,6 @@ */ package mage.game.permanent.token; -import java.util.Arrays; import java.util.Collections; import mage.MageInt; diff --git a/Mage/src/main/java/mage/target/common/TargetOpponent.java b/Mage/src/main/java/mage/target/common/TargetOpponent.java index 91d813c6c85..4c4eb6d623c 100644 --- a/Mage/src/main/java/mage/target/common/TargetOpponent.java +++ b/Mage/src/main/java/mage/target/common/TargetOpponent.java @@ -27,12 +27,9 @@ */ package mage.target.common; -import java.util.UUID; import mage.constants.TargetController; -import mage.abilities.Ability; import mage.filter.FilterPlayer; import mage.filter.predicate.other.PlayerPredicate; -import mage.game.Game; import mage.target.TargetPlayer; /** From 46d369c8ed3975623b08cbb79afbe147d074f845 Mon Sep 17 00:00:00 2001 From: vraskulin Date: Mon, 9 Jan 2017 19:47:03 +0300 Subject: [PATCH 2/2] Big refactoring (server) I used Intellij IDEA to automatically refactor code to achive 3 goals. 1) get rid of anonymouse classes, and replace the with lamba to get more readeable and clean code (like in TableWaitingDialog). 2) make effectively final variables actually final to avoid inadvertent changes on it in further releases and keep objects as immutable, as possible. 3) Get rid of unused imports (most of the changes) in whole project classes. --- Mage.Server/pom.xml | 4 +- .../mage/server/AuthorizedUserRepository.java | 2 +- .../main/java/mage/server/ChatManager.java | 4 +- .../java/mage/server/DisconnectReason.java | 2 +- .../java/mage/server/ExtensionPackage.java | 6 +- .../main/java/mage/server/MageServerImpl.java | 491 +++++++----------- .../src/main/java/mage/server/Main.java | 9 +- .../java/mage/server/TableController.java | 30 +- .../main/java/mage/server/TableManager.java | 15 +- .../src/main/java/mage/server/User.java | 2 +- .../main/java/mage/server/UserManager.java | 47 +- .../java/mage/server/draft/CubeFactory.java | 10 +- .../mage/server/draft/DraftController.java | 17 +- .../java/mage/server/draft/DraftSession.java | 15 +- .../server/game/DeckValidatorFactory.java | 4 +- .../java/mage/server/game/GameController.java | 428 ++++++--------- .../java/mage/server/game/GameFactory.java | 4 +- .../java/mage/server/game/GameReplay.java | 10 +- .../mage/server/game/GameSessionPlayer.java | 45 +- .../mage/server/game/GameSessionWatcher.java | 6 +- .../java/mage/server/game/GamesRoomImpl.java | 19 +- .../java/mage/server/game/PlayerFactory.java | 4 +- .../java/mage/server/game/ReplaySession.java | 2 +- .../server/record/TableRecordRepository.java | 2 +- .../server/record/UserStatsRepository.java | 2 +- .../services/impl/FeedbackServiceImpl.java | 2 +- .../tournament/TournamentController.java | 117 ++--- .../server/tournament/TournamentFactory.java | 4 +- .../server/tournament/TournamentSession.java | 17 +- .../mage/server/util/ServerMessagesUtil.java | 7 +- .../java/mage/server/util/SystemUtil.java | 5 +- 31 files changed, 510 insertions(+), 822 deletions(-) diff --git a/Mage.Server/pom.xml b/Mage.Server/pom.xml index fbd5e364628..7aa1add141e 100644 --- a/Mage.Server/pom.xml +++ b/Mage.Server/pom.xml @@ -229,8 +229,8 @@ org.apache.maven.plugins maven-compiler-plugin - 1.7 - 1.7 + 1.8 + 1.8 diff --git a/Mage.Server/src/main/java/mage/server/AuthorizedUserRepository.java b/Mage.Server/src/main/java/mage/server/AuthorizedUserRepository.java index 4829a2fbdfc..a0817049441 100644 --- a/Mage.Server/src/main/java/mage/server/AuthorizedUserRepository.java +++ b/Mage.Server/src/main/java/mage/server/AuthorizedUserRepository.java @@ -33,7 +33,7 @@ public enum AuthorizedUserRepository { private Dao dao; - private AuthorizedUserRepository() { + AuthorizedUserRepository() { File file = new File("db"); if (!file.exists()) { file.mkdirs(); diff --git a/Mage.Server/src/main/java/mage/server/ChatManager.java b/Mage.Server/src/main/java/mage/server/ChatManager.java index 6ee8435d10e..d9581e0cc76 100644 --- a/Mage.Server/src/main/java/mage/server/ChatManager.java +++ b/Mage.Server/src/main/java/mage/server/ChatManager.java @@ -50,7 +50,7 @@ import org.apache.log4j.Logger; public class ChatManager { private static final Logger logger = Logger.getLogger(ChatManager.class); - private static HashMap userMessages = new HashMap<>(); + private static final HashMap userMessages = new HashMap<>(); private static final ChatManager INSTANCE = new ChatManager(); @@ -117,7 +117,7 @@ public class ChatManager { return false; } - Pattern cardNamePattern = Pattern.compile("\\[(.*?)\\]"); + final Pattern cardNamePattern = Pattern.compile("\\[(.*?)\\]"); public void broadcast(UUID chatId, String userName, String message, MessageColor color, boolean withTime, MessageType messageType, SoundToPlay soundToPlay) { ChatSession chatSession = chatSessions.get(chatId); diff --git a/Mage.Server/src/main/java/mage/server/DisconnectReason.java b/Mage.Server/src/main/java/mage/server/DisconnectReason.java index 8f1bf126f21..c751814f7bb 100644 --- a/Mage.Server/src/main/java/mage/server/DisconnectReason.java +++ b/Mage.Server/src/main/java/mage/server/DisconnectReason.java @@ -6,5 +6,5 @@ package mage.server; */ public enum DisconnectReason { - LostConnection, Disconnected, CleaningUp, ConnectingOtherInstance, AdminDisconnect, SessionExpired, Undefined; + LostConnection, Disconnected, CleaningUp, ConnectingOtherInstance, AdminDisconnect, SessionExpired, Undefined } diff --git a/Mage.Server/src/main/java/mage/server/ExtensionPackage.java b/Mage.Server/src/main/java/mage/server/ExtensionPackage.java index 1d49c39c5b6..1a9d0c4c5ca 100644 --- a/Mage.Server/src/main/java/mage/server/ExtensionPackage.java +++ b/Mage.Server/src/main/java/mage/server/ExtensionPackage.java @@ -40,9 +40,9 @@ import java.util.Map; * @author Lymia */ public abstract class ExtensionPackage { - protected List expansions = new ArrayList<>(); - protected Map deckTypes = new HashMap<>(); - protected Map draftCubes = new HashMap<>(); + protected final List expansions = new ArrayList<>(); + protected final Map deckTypes = new HashMap<>(); + protected final Map draftCubes = new HashMap<>(); /** * @return A list of expansions included in this custom set package. diff --git a/Mage.Server/src/main/java/mage/server/MageServerImpl.java b/Mage.Server/src/main/java/mage/server/MageServerImpl.java index 7b77141f304..5e14476ce60 100644 --- a/Mage.Server/src/main/java/mage/server/MageServerImpl.java +++ b/Mage.Server/src/main/java/mage/server/MageServerImpl.java @@ -314,12 +314,9 @@ public class MageServerImpl implements MageServer { @Override public void removeTable(final String sessionId, final UUID roomId, final UUID tableId) throws MageException { - execute("removeTable", sessionId, new Action() { - @Override - public void execute() { - UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId(); - TableManager.getInstance().removeTable(userId, tableId); - } + execute("removeTable", sessionId, () -> { + UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId(); + TableManager.getInstance().removeTable(userId, tableId); }); } @@ -377,13 +374,10 @@ public class MageServerImpl implements MageServer { @Override public void updateDeck(final String sessionId, final UUID tableId, final DeckCardLists deckList) throws MageException, GameException { - execute("updateDeck", sessionId, new Action() { - @Override - public void execute() throws MageException { - UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId(); - TableManager.getInstance().updateDeck(userId, tableId, deckList); - logger.trace("Session " + sessionId + " updated deck"); - } + execute("updateDeck", sessionId, () -> { + UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId(); + TableManager.getInstance().updateDeck(userId, tableId, deckList); + logger.trace("Session " + sessionId + " updated deck"); }); } @@ -470,12 +464,9 @@ public class MageServerImpl implements MageServer { if (!TableManager.getInstance().getController(tableId).changeTableStateToStarting()) { return false; } - execute("startMatch", sessionId, new Action() { - @Override - public void execute() { - UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId(); - TableManager.getInstance().startMatch(userId, roomId, tableId); - } + execute("startMatch", sessionId, () -> { + UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId(); + TableManager.getInstance().startMatch(userId, roomId, tableId); }); return true; } @@ -495,12 +486,9 @@ public class MageServerImpl implements MageServer { if (!TableManager.getInstance().getController(tableId).changeTableStateToStarting()) { return false; } - execute("startTournament", sessionId, new Action() { - @Override - public void execute() { - UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId(); - TableManager.getInstance().startTournament(userId, roomId, tableId); - } + execute("startTournament", sessionId, () -> { + UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId(); + TableManager.getInstance().startTournament(userId, roomId, tableId); }); return true; } @@ -521,12 +509,7 @@ public class MageServerImpl implements MageServer { public void sendChatMessage(final UUID chatId, final String userName, final String message) throws MageException { try { callExecutor.execute( - new Runnable() { - @Override - public void run() { - ChatManager.getInstance().broadcast(chatId, userName, StringEscapeUtils.escapeHtml4(message), MessageColor.BLUE, true, ChatMessage.MessageType.TALK, null); - } - } + () -> ChatManager.getInstance().broadcast(chatId, userName, StringEscapeUtils.escapeHtml4(message), MessageColor.BLUE, true, ChatMessage.MessageType.TALK, null) ); } catch (Exception ex) { handleException(ex); @@ -535,26 +518,20 @@ public class MageServerImpl implements MageServer { @Override public void joinChat(final UUID chatId, final String sessionId, final String userName) throws MageException { - execute("joinChat", sessionId, new Action() { - @Override - public void execute() { - UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId(); - ChatManager.getInstance().joinChat(chatId, userId); - } + execute("joinChat", sessionId, () -> { + UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId(); + ChatManager.getInstance().joinChat(chatId, userId); }); } @Override public void leaveChat(final UUID chatId, final String sessionId) throws MageException { - execute("leaveChat", sessionId, new Action() { - @Override - public void execute() { - if (chatId != null) { - UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId(); - ChatManager.getInstance().leaveChat(chatId, userId); - } else { - logger.warn("The chatId is null. sessionId = " + sessionId); - } + execute("leaveChat", sessionId, () -> { + if (chatId != null) { + UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId(); + ChatManager.getInstance().leaveChat(chatId, userId); + } else { + logger.warn("The chatId is null. sessionId = " + sessionId); } }); } @@ -594,12 +571,9 @@ public class MageServerImpl implements MageServer { @Override public void swapSeats(final String sessionId, final UUID roomId, final UUID tableId, final int seatNum1, final int seatNum2) throws MageException { - execute("swapSeats", sessionId, new Action() { - @Override - public void execute() { - UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId(); - TableManager.getInstance().swapSeats(tableId, userId, seatNum1, seatNum2); - } + execute("swapSeats", sessionId, () -> { + UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId(); + TableManager.getInstance().swapSeats(tableId, userId, seatNum1, seatNum2); }); } @@ -610,12 +584,9 @@ public class MageServerImpl implements MageServer { // table was already started, so player can't leave anymore now return false; } - execute("leaveTable", sessionId, new Action() { - @Override - public void execute() { - UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId(); - GamesRoomManager.getInstance().getRoom(roomId).leaveTable(userId, tableId); - } + execute("leaveTable", sessionId, () -> { + UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId(); + GamesRoomManager.getInstance().getRoom(roomId).leaveTable(userId, tableId); }); return true; } @@ -633,34 +604,25 @@ public class MageServerImpl implements MageServer { @Override public void joinGame(final UUID gameId, final String sessionId) throws MageException { - execute("joinGame", sessionId, new Action() { - @Override - public void execute() { - UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId(); - GameManager.getInstance().joinGame(gameId, userId); - } + execute("joinGame", sessionId, () -> { + UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId(); + GameManager.getInstance().joinGame(gameId, userId); }); } @Override public void joinDraft(final UUID draftId, final String sessionId) throws MageException { - execute("joinDraft", sessionId, new Action() { - @Override - public void execute() { - UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId(); - DraftManager.getInstance().joinDraft(draftId, userId); - } + execute("joinDraft", sessionId, () -> { + UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId(); + DraftManager.getInstance().joinDraft(draftId, userId); }); } @Override public void joinTournament(final UUID tournamentId, final String sessionId) throws MageException { - execute("joinTournament", sessionId, new Action() { - @Override - public void execute() { - UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId(); - TournamentManager.getInstance().joinTournament(tournamentId, userId); - } + execute("joinTournament", sessionId, () -> { + UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId(); + TournamentManager.getInstance().joinTournament(tournamentId, userId); }); } @@ -688,76 +650,61 @@ public class MageServerImpl implements MageServer { @Override public void sendPlayerUUID(final UUID gameId, final String sessionId, final UUID data) throws MageException { - execute("sendPlayerUUID", sessionId, new Action() { - @Override - public void execute() { - User user = SessionManager.getInstance().getUser(sessionId); - if (user != null) { + execute("sendPlayerUUID", sessionId, () -> { + User user = SessionManager.getInstance().getUser(sessionId); + if (user != null) { // logger.warn("sendPlayerUUID gameId=" + gameId + " sessionId=" + sessionId + " username=" + user.getName()); - user.sendPlayerUUID(gameId, data); - } else { - logger.warn("Your session expired: gameId=" + gameId + ", sessionId=" + sessionId); - } + user.sendPlayerUUID(gameId, data); + } else { + logger.warn("Your session expired: gameId=" + gameId + ", sessionId=" + sessionId); } }); } @Override public void sendPlayerString(final UUID gameId, final String sessionId, final String data) throws MageException { - execute("sendPlayerString", sessionId, new Action() { - @Override - public void execute() { - User user = SessionManager.getInstance().getUser(sessionId); - if (user != null) { - user.sendPlayerString(gameId, data); - } else { - logger.warn("Your session expired: gameId=" + gameId + ", sessionId=" + sessionId); - } + execute("sendPlayerString", sessionId, () -> { + User user = SessionManager.getInstance().getUser(sessionId); + if (user != null) { + user.sendPlayerString(gameId, data); + } else { + logger.warn("Your session expired: gameId=" + gameId + ", sessionId=" + sessionId); } }); } @Override public void sendPlayerManaType(final UUID gameId, final UUID playerId, final String sessionId, final ManaType data) throws MageException { - execute("sendPlayerManaType", sessionId, new Action() { - @Override - public void execute() { - User user = SessionManager.getInstance().getUser(sessionId); - if (user != null) { - user.sendPlayerManaType(gameId, playerId, data); - } else { - logger.warn("Your session expired: gameId=" + gameId + ", sessionId=" + sessionId); - } + execute("sendPlayerManaType", sessionId, () -> { + User user = SessionManager.getInstance().getUser(sessionId); + if (user != null) { + user.sendPlayerManaType(gameId, playerId, data); + } else { + logger.warn("Your session expired: gameId=" + gameId + ", sessionId=" + sessionId); } }); } @Override public void sendPlayerBoolean(final UUID gameId, final String sessionId, final Boolean data) throws MageException { - execute("sendPlayerBoolean", sessionId, new Action() { - @Override - public void execute() { - User user = SessionManager.getInstance().getUser(sessionId); - if (user != null) { - user.sendPlayerBoolean(gameId, data); - } else { - logger.warn("Your session expired: gameId=" + gameId + ", sessionId=" + sessionId); - } + execute("sendPlayerBoolean", sessionId, () -> { + User user = SessionManager.getInstance().getUser(sessionId); + if (user != null) { + user.sendPlayerBoolean(gameId, data); + } else { + logger.warn("Your session expired: gameId=" + gameId + ", sessionId=" + sessionId); } }); } @Override public void sendPlayerInteger(final UUID gameId, final String sessionId, final Integer data) throws MageException { - execute("sendPlayerInteger", sessionId, new Action() { - @Override - public void execute() { - User user = SessionManager.getInstance().getUser(sessionId); - if (user != null) { - user.sendPlayerInteger(gameId, data); - } else { - logger.warn("Your session expired: gameId=" + gameId + ", sessionId=" + sessionId); - } + execute("sendPlayerInteger", sessionId, () -> { + User user = SessionManager.getInstance().getUser(sessionId); + if (user != null) { + user.sendPlayerInteger(gameId, data); + } else { + logger.warn("Your session expired: gameId=" + gameId + ", sessionId=" + sessionId); } }); } @@ -780,81 +727,66 @@ public class MageServerImpl implements MageServer { @Override public void sendCardMark(final UUID draftId, final String sessionId, final UUID cardPick) throws MageException { - execute("sendCardMark", sessionId, new Action() { - @Override - public void execute() { - Session session = SessionManager.getInstance().getSession(sessionId); - if (session != null) { - DraftManager.getInstance().sendCardMark(draftId, session.getUserId(), cardPick); - } else { - logger.error("Session not found sessionId: " + sessionId + " draftId:" + draftId); - } + execute("sendCardMark", sessionId, () -> { + Session session = SessionManager.getInstance().getSession(sessionId); + if (session != null) { + DraftManager.getInstance().sendCardMark(draftId, session.getUserId(), cardPick); + } else { + logger.error("Session not found sessionId: " + sessionId + " draftId:" + draftId); } }); } @Override public void quitMatch(final UUID gameId, final String sessionId) throws MageException { - execute("quitMatch", sessionId, new Action() { - @Override - public void execute() { - Session session = SessionManager.getInstance().getSession(sessionId); - if (session != null) { - GameManager.getInstance().quitMatch(gameId, session.getUserId()); - } else { - logger.error("Session not found sessionId: " + sessionId + " gameId:" + gameId); - } + execute("quitMatch", sessionId, () -> { + Session session = SessionManager.getInstance().getSession(sessionId); + if (session != null) { + GameManager.getInstance().quitMatch(gameId, session.getUserId()); + } else { + logger.error("Session not found sessionId: " + sessionId + " gameId:" + gameId); } }); } @Override public void quitTournament(final UUID tournamentId, final String sessionId) throws MageException { - execute("quitTournament", sessionId, new Action() { - @Override - public void execute() { - Session session = SessionManager.getInstance().getSession(sessionId); - if (session != null) { - TournamentManager.getInstance().quit(tournamentId, session.getUserId()); - } else { - logger.error("Session not found sessionId: " + sessionId + " tournamentId:" + tournamentId); - } + execute("quitTournament", sessionId, () -> { + Session session = SessionManager.getInstance().getSession(sessionId); + if (session != null) { + TournamentManager.getInstance().quit(tournamentId, session.getUserId()); + } else { + logger.error("Session not found sessionId: " + sessionId + " tournamentId:" + tournamentId); } }); } @Override public void quitDraft(final UUID draftId, final String sessionId) throws MageException { - execute("quitDraft", sessionId, new Action() { - @Override - public void execute() { - Session session = SessionManager.getInstance().getSession(sessionId); - if (session == null) { - logger.error("Session not found sessionId: " + sessionId + " draftId:" + draftId); - return; - } - UUID tableId = DraftManager.getInstance().getControllerByDraftId(draftId).getTableId(); - Table table = TableManager.getInstance().getTable(tableId); - if (table.isTournament()) { - UUID tournamentId = table.getTournament().getId(); - TournamentManager.getInstance().quit(tournamentId, session.getUserId()); - } + execute("quitDraft", sessionId, () -> { + Session session = SessionManager.getInstance().getSession(sessionId); + if (session == null) { + logger.error("Session not found sessionId: " + sessionId + " draftId:" + draftId); + return; + } + UUID tableId = DraftManager.getInstance().getControllerByDraftId(draftId).getTableId(); + Table table = TableManager.getInstance().getTable(tableId); + if (table.isTournament()) { + UUID tournamentId = table.getTournament().getId(); + TournamentManager.getInstance().quit(tournamentId, session.getUserId()); } }); } @Override public void sendPlayerAction(final PlayerAction playerAction, final UUID gameId, final String sessionId, final Object data) throws MageException { - execute("sendPlayerAction", sessionId, new Action() { - @Override - public void execute() { - Session session = SessionManager.getInstance().getSession(sessionId); - if (session == null) { - logger.error("Session not found sessionId: " + sessionId + " gameId:" + gameId); - return; - } - GameManager.getInstance().sendPlayerAction(playerAction, gameId, session.getUserId(), data); + execute("sendPlayerAction", sessionId, () -> { + Session session = SessionManager.getInstance().getSession(sessionId); + if (session == null) { + logger.error("Session not found sessionId: " + sessionId + " gameId:" + gameId); + return; } + GameManager.getInstance().sendPlayerAction(playerAction, gameId, session.getUserId(), data); }); } @@ -882,94 +814,70 @@ public class MageServerImpl implements MageServer { @Override public void watchGame(final UUID gameId, final String sessionId) throws MageException { - execute("watchGame", sessionId, new Action() { - @Override - public void execute() { - UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId(); - GameManager.getInstance().watchGame(gameId, userId); - } + execute("watchGame", sessionId, () -> { + UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId(); + GameManager.getInstance().watchGame(gameId, userId); }); } @Override public void stopWatching(final UUID gameId, final String sessionId) throws MageException { - execute("stopWatching", sessionId, new Action() { - @Override - public void execute() { - UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId(); - User user = UserManager.getInstance().getUser(userId); - if (user != null) { - GameManager.getInstance().stopWatching(gameId, userId); - user.removeGameWatchInfo(gameId); - } - + execute("stopWatching", sessionId, () -> { + UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId(); + User user = UserManager.getInstance().getUser(userId); + if (user != null) { + GameManager.getInstance().stopWatching(gameId, userId); + user.removeGameWatchInfo(gameId); } + }); } @Override public void replayGame(final UUID gameId, final String sessionId) throws MageException { - execute("replayGame", sessionId, new Action() { - @Override - public void execute() { - UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId(); - ReplayManager.getInstance().replayGame(gameId, userId); - } + execute("replayGame", sessionId, () -> { + UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId(); + ReplayManager.getInstance().replayGame(gameId, userId); }); } @Override public void startReplay(final UUID gameId, final String sessionId) throws MageException { - execute("startReplay", sessionId, new Action() { - @Override - public void execute() { - UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId(); - ReplayManager.getInstance().startReplay(gameId, userId); - } + execute("startReplay", sessionId, () -> { + UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId(); + ReplayManager.getInstance().startReplay(gameId, userId); }); } @Override public void stopReplay(final UUID gameId, final String sessionId) throws MageException { - execute("stopReplay", sessionId, new Action() { - @Override - public void execute() { - UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId(); - ReplayManager.getInstance().stopReplay(gameId, userId); - } + execute("stopReplay", sessionId, () -> { + UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId(); + ReplayManager.getInstance().stopReplay(gameId, userId); }); } @Override public void nextPlay(final UUID gameId, final String sessionId) throws MageException { - execute("nextPlay", sessionId, new Action() { - @Override - public void execute() { - UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId(); - ReplayManager.getInstance().nextPlay(gameId, userId); - } + execute("nextPlay", sessionId, () -> { + UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId(); + ReplayManager.getInstance().nextPlay(gameId, userId); }); } @Override public void previousPlay(final UUID gameId, final String sessionId) throws MageException { - execute("previousPlay", sessionId, new Action() { - @Override - public void execute() { - UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId(); - ReplayManager.getInstance().previousPlay(gameId, userId); - } + execute("previousPlay", sessionId, () -> { + UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId(); + ReplayManager.getInstance().previousPlay(gameId, userId); }); } @Override public void skipForward(final UUID gameId, final String sessionId, final int moves) throws MageException { - execute("skipForward", sessionId, new Action() { - @Override - public void execute() { - UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId(); - ReplayManager.getInstance().skipForward(gameId, userId, moves); - } + execute("skipForward", sessionId, () -> { + UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId(); + ReplayManager.getInstance().skipForward(gameId, userId, moves); }); } @@ -996,13 +904,10 @@ public class MageServerImpl implements MageServer { @Override public void cheat(final UUID gameId, final String sessionId, final UUID playerId, final DeckCardLists deckList) throws MageException { - execute("cheat", sessionId, new Action() { - @Override - public void execute() { - if (testMode) { - UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId(); - GameManager.getInstance().cheat(gameId, userId, playerId, deckList); - } + execute("cheat", sessionId, () -> { + if (testMode) { + UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId(); + GameManager.getInstance().cheat(gameId, userId, playerId, deckList); } }); } @@ -1071,74 +976,55 @@ public class MageServerImpl implements MageServer { @Override public void disconnectUser(final String sessionId, final String userSessionId) throws MageException { - execute("disconnectUser", sessionId, new Action() { - @Override - public void execute() { - SessionManager.getInstance().disconnectUser(sessionId, userSessionId); - } - }); + execute("disconnectUser", sessionId, () -> SessionManager.getInstance().disconnectUser(sessionId, userSessionId)); } @Override public void muteUser(final String sessionId, final String userName, final long durationMinutes) throws MageException { - execute("muteUser", sessionId, new Action() { - @Override - public void execute() { - User user = UserManager.getInstance().getUserByName(userName); - if (user != null) { - Date muteUntil = new Date(Calendar.getInstance().getTimeInMillis() + (durationMinutes * Timer.ONE_MINUTE)); - user.showUserMessage("Admin info", "You were muted for chat messages until " + SystemUtil.dateFormat.format(muteUntil) + "."); - user.setChatLockedUntil(muteUntil); - } - + execute("muteUser", sessionId, () -> { + User user = UserManager.getInstance().getUserByName(userName); + if (user != null) { + Date muteUntil = new Date(Calendar.getInstance().getTimeInMillis() + (durationMinutes * Timer.ONE_MINUTE)); + user.showUserMessage("Admin info", "You were muted for chat messages until " + SystemUtil.dateFormat.format(muteUntil) + "."); + user.setChatLockedUntil(muteUntil); } + }); } @Override public void lockUser(final String sessionId, final String userName, final long durationMinutes) throws MageException { - execute("lockUser", sessionId, new Action() { - @Override - public void execute() { - User user = UserManager.getInstance().getUserByName(userName); - if (user != null) { - Date lockUntil = new Date(Calendar.getInstance().getTimeInMillis() + (durationMinutes * Timer.ONE_MINUTE)); - user.showUserMessage("Admin info", "Your user profile was locked until " + SystemUtil.dateFormat.format(lockUntil) + "."); - user.setLockedUntil(lockUntil); - if (user.isConnected()) { - SessionManager.getInstance().disconnectUser(sessionId, user.getSessionId()); - } + execute("lockUser", sessionId, () -> { + User user = UserManager.getInstance().getUserByName(userName); + if (user != null) { + Date lockUntil = new Date(Calendar.getInstance().getTimeInMillis() + (durationMinutes * Timer.ONE_MINUTE)); + user.showUserMessage("Admin info", "Your user profile was locked until " + SystemUtil.dateFormat.format(lockUntil) + "."); + user.setLockedUntil(lockUntil); + if (user.isConnected()) { + SessionManager.getInstance().disconnectUser(sessionId, user.getSessionId()); } - } + }); } @Override public void toggleActivation(final String sessionId, final String userName) throws MageException { - execute("toggleActivation", sessionId, new Action() { - @Override - public void execute() { - User user = UserManager.getInstance().getUserByName(userName); - if (user != null) { - user.setActive(!user.isActive()); - if (!user.isActive() && user.isConnected()) { - SessionManager.getInstance().disconnectUser(sessionId, user.getSessionId()); - } + execute("toggleActivation", sessionId, () -> { + User user = UserManager.getInstance().getUserByName(userName); + if (user != null) { + user.setActive(!user.isActive()); + if (!user.isActive() && user.isConnected()) { + SessionManager.getInstance().disconnectUser(sessionId, user.getSessionId()); } - } + }); } @Override public void endUserSession(final String sessionId, final String userSessionId) throws MageException { - execute("endUserSession", sessionId, new Action() { - @Override - public void execute() { - SessionManager.getInstance().endUserSession(sessionId, userSessionId); - } - }); + execute("endUserSession", sessionId, () -> SessionManager.getInstance().endUserSession(sessionId, userSessionId)); } /** @@ -1150,12 +1036,9 @@ public class MageServerImpl implements MageServer { */ @Override public void removeTable(final String sessionId, final UUID tableId) throws MageException { - execute("removeTable", sessionId, new Action() { - @Override - public void execute() { - UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId(); - TableManager.getInstance().removeTable(userId, tableId); - } + execute("removeTable", sessionId, () -> { + UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId(); + TableManager.getInstance().removeTable(userId, tableId); }); } @@ -1172,12 +1055,9 @@ public class MageServerImpl implements MageServer { @Override public void sendFeedbackMessage(final String sessionId, final String username, final String title, final String type, final String message, final String email) throws MageException { if (title != null && message != null) { - execute("sendFeedbackMessage", sessionId, new Action() { - @Override - public void execute() { - String host = SessionManager.getInstance().getSession(sessionId).getHost(); - FeedbackServiceImpl.instance.feedback(username, title, type, message, email, host); - } + execute("sendFeedbackMessage", sessionId, () -> { + String host = SessionManager.getInstance().getSession(sessionId).getHost(); + FeedbackServiceImpl.instance.feedback(username, title, type, message, email, host); }); } } @@ -1185,15 +1065,12 @@ public class MageServerImpl implements MageServer { @Override public void sendBroadcastMessage(final String sessionId, final String message) throws MageException { if (message != null) { - execute("sendBroadcastMessage", sessionId, new Action() { - @Override - public void execute() { - for (User user : UserManager.getInstance().getUsers()) { - if (message.toLowerCase(Locale.ENGLISH).startsWith("warn")) { - user.fireCallback(new ClientCallback("serverMessage", null, new ChatMessage("SERVER", message, null, MessageColor.RED))); - } else { - user.fireCallback(new ClientCallback("serverMessage", null, new ChatMessage("SERVER", message, null, MessageColor.BLUE))); - } + execute("sendBroadcastMessage", sessionId, () -> { + for (User user : UserManager.getInstance().getUsers()) { + if (message.toLowerCase(Locale.ENGLISH).startsWith("warn")) { + user.fireCallback(new ClientCallback("serverMessage", null, new ChatMessage("SERVER", message, null, MessageColor.RED))); + } else { + user.fireCallback(new ClientCallback("serverMessage", null, new ChatMessage("SERVER", message, null, MessageColor.BLUE))); } } }, true); @@ -1201,12 +1078,7 @@ public class MageServerImpl implements MageServer { } private void sendErrorMessageToClient(final String sessionId, final String message) throws MageException { - execute("sendErrorMessageToClient", sessionId, new Action() { - @Override - public void execute() { - SessionManager.getInstance().sendErrorMessageToClient(sessionId, message); - } - }); + execute("sendErrorMessageToClient", sessionId, () -> SessionManager.getInstance().sendErrorMessageToClient(sessionId, message)); } protected void execute(final String actionName, final String sessionId, final Action action, boolean checkAdminRights) throws MageException { @@ -1222,18 +1094,15 @@ public class MageServerImpl implements MageServer { if (SessionManager.getInstance().isValidSession(sessionId)) { try { callExecutor.execute( - new Runnable() { - @Override - public void run() { - if (SessionManager.getInstance().isValidSession(sessionId)) { - try { - action.execute(); - } catch (MageException me) { - throw new RuntimeException(me); + () -> { + if (SessionManager.getInstance().isValidSession(sessionId)) { + try { + action.execute(); + } catch (MageException me) { + throw new RuntimeException(me); + } } } - } - } ); } catch (Exception ex) { handleException(ex); diff --git a/Mage.Server/src/main/java/mage/server/Main.java b/Mage.Server/src/main/java/mage/server/Main.java index 0da06d742ab..9c13dfb7aa3 100644 --- a/Mage.Server/src/main/java/mage/server/Main.java +++ b/Mage.Server/src/main/java/mage/server/Main.java @@ -92,7 +92,7 @@ public class Main { private static final File pluginFolder = new File("plugins"); private static final File extensionFolder = new File("extensions"); - public static PluginClassLoader classLoader = new PluginClassLoader(); + public static final PluginClassLoader classLoader = new PluginClassLoader(); public static TransporterServer server; protected static boolean testMode; protected static boolean fastDbMode; @@ -437,12 +437,7 @@ public class Main { directory.mkdirs(); } File[] files = directory.listFiles( - new FilenameFilter() { - @Override - public boolean accept(File dir, String name) { - return name.endsWith(".game"); - } - } + (dir, name) -> name.endsWith(".game") ); for (File file : files) { file.delete(); diff --git a/Mage.Server/src/main/java/mage/server/TableController.java b/Mage.Server/src/main/java/mage/server/TableController.java index 6b1704182fc..e19dfefc478 100644 --- a/Mage.Server/src/main/java/mage/server/TableController.java +++ b/Mage.Server/src/main/java/mage/server/TableController.java @@ -90,7 +90,7 @@ public class TableController { private Tournament tournament; private ScheduledFuture futureTimeout; - protected static ScheduledExecutorService timeoutExecutor = ThreadExecutor.getInstance().getTimeoutExecutor(); + protected static final ScheduledExecutorService timeoutExecutor = ThreadExecutor.getInstance().getTimeoutExecutor(); public TableController(UUID roomId, UUID userId, MatchOptions options) { this.userId = userId; @@ -128,20 +128,17 @@ public class TableController { private void init() { match.addTableEventListener( - new Listener() { - @Override - public void event(TableEvent event) { - try { - switch (event.getEventType()) { - case SIDEBOARD: - sideboard(event.getPlayerId(), event.getDeck()); - break; + (Listener) event -> { + try { + switch (event.getEventType()) { + case SIDEBOARD: + sideboard(event.getPlayerId(), event.getDeck()); + break; + } + } catch (MageException ex) { + logger.fatal("Table event listener error", ex); } - } catch (MageException ex) { - logger.fatal("Table event listener error", ex); } - } - } ); } @@ -814,12 +811,7 @@ public class TableController { cancelTimeout(); if (seconds > 0) { futureTimeout = timeoutExecutor.schedule( - new Runnable() { - @Override - public void run() { - autoSideboard(); - } - }, + () -> autoSideboard(), seconds, TimeUnit.SECONDS ); } diff --git a/Mage.Server/src/main/java/mage/server/TableManager.java b/Mage.Server/src/main/java/mage/server/TableManager.java index 1ba1e242b4e..155ffdf59bb 100644 --- a/Mage.Server/src/main/java/mage/server/TableManager.java +++ b/Mage.Server/src/main/java/mage/server/TableManager.java @@ -64,7 +64,7 @@ import org.apache.log4j.Logger; */ public class TableManager { - protected static ScheduledExecutorService expireExecutor = Executors.newSingleThreadScheduledExecutor(); + protected static final ScheduledExecutorService expireExecutor = Executors.newSingleThreadScheduledExecutor(); // protected static ScheduledExecutorService expireExecutor = ThreadExecutor.getInstance().getExpireExecutor(); @@ -87,14 +87,11 @@ public class TableManager { } private TableManager() { - expireExecutor.scheduleAtFixedRate(new Runnable() { - @Override - public void run() { - try { - checkTableHealthState(); - } catch(Exception ex) { - logger.fatal("Check table health state job error:", ex); - } + expireExecutor.scheduleAtFixedRate(() -> { + try { + checkTableHealthState(); + } catch(Exception ex) { + logger.fatal("Check table health state job error:", ex); } }, EXPIRE_CHECK_PERIOD, EXPIRE_CHECK_PERIOD, TimeUnit.MINUTES); } diff --git a/Mage.Server/src/main/java/mage/server/User.java b/Mage.Server/src/main/java/mage/server/User.java index af9677dec55..ef37a1e07b1 100644 --- a/Mage.Server/src/main/java/mage/server/User.java +++ b/Mage.Server/src/main/java/mage/server/User.java @@ -70,7 +70,7 @@ public class User { public enum UserState { - Created, Connected, Disconnected, Reconnected, Expired; + Created, Connected, Disconnected, Reconnected, Expired } private final UUID userId; diff --git a/Mage.Server/src/main/java/mage/server/UserManager.java b/Mage.Server/src/main/java/mage/server/UserManager.java index 867a17c25b5..aadf74bc92c 100644 --- a/Mage.Server/src/main/java/mage/server/UserManager.java +++ b/Mage.Server/src/main/java/mage/server/UserManager.java @@ -52,7 +52,7 @@ import org.apache.log4j.Logger; */ public class UserManager { - protected static ScheduledExecutorService expireExecutor = Executors.newSingleThreadScheduledExecutor(); + protected static final ScheduledExecutorService expireExecutor = Executors.newSingleThreadScheduledExecutor(); private static final Logger LOGGER = Logger.getLogger(UserManager.class); @@ -68,12 +68,7 @@ public class UserManager { } private UserManager() { - expireExecutor.scheduleAtFixedRate(new Runnable() { - @Override - public void run() { - checkExpired(); - } - }, 60, 60, TimeUnit.SECONDS); + expireExecutor.scheduleAtFixedRate(() -> checkExpired(), 60, 60, TimeUnit.SECONDS); } public User createUser(String userName, String host, AuthorizedUser authorizedUser) { @@ -137,21 +132,18 @@ public class UserManager { final User user = users.get(userId); if (user != null) { USER_EXECUTOR.execute( - new Runnable() { - @Override - public void run() { - try { - LOGGER.info("USER REMOVE - " + user.getName() + " (" + reason.toString() + ") userId: " + userId + " [" + user.getGameInfo() + "]"); - user.remove(reason); - LOGGER.debug("USER REMOVE END - " + user.getName()); - } catch (Exception ex) { - handleException(ex); - } finally { - users.remove(userId); - usersByName.remove(user.getName()); + () -> { + try { + LOGGER.info("USER REMOVE - " + user.getName() + " (" + reason.toString() + ") userId: " + userId + " [" + user.getGameInfo() + "]"); + user.remove(reason); + LOGGER.debug("USER REMOVE END - " + user.getName()); + } catch (Exception ex) { + handleException(ex); + } finally { + users.remove(userId); + usersByName.remove(user.getName()); + } } - } - } ); } else { LOGGER.warn("Trying to remove userId: " + userId + " - but it does not exist."); @@ -212,14 +204,11 @@ public class UserManager { } public void updateUserHistory() { - USER_EXECUTOR.execute(new Runnable() { - @Override - public void run() { - for (String updatedUser : UserStatsRepository.instance.updateUserStats()) { - User user = getUserByName(updatedUser); - if (user != null) { - user.resetUserStats(); - } + USER_EXECUTOR.execute(() -> { + for (String updatedUser : UserStatsRepository.instance.updateUserStats()) { + User user = getUserByName(updatedUser); + if (user != null) { + user.resetUserStats(); } } }); diff --git a/Mage.Server/src/main/java/mage/server/draft/CubeFactory.java b/Mage.Server/src/main/java/mage/server/draft/CubeFactory.java index ad10a8b3fc3..d38208c1c52 100644 --- a/Mage.Server/src/main/java/mage/server/draft/CubeFactory.java +++ b/Mage.Server/src/main/java/mage/server/draft/CubeFactory.java @@ -44,7 +44,7 @@ public class CubeFactory { private static final CubeFactory INSTANCE = new CubeFactory(); private static final Logger logger = Logger.getLogger(CubeFactory.class); - private Map draftCubes = new LinkedHashMap(); + private final Map draftCubes = new LinkedHashMap(); public static CubeFactory getInstance() { return INSTANCE; @@ -57,8 +57,8 @@ public class CubeFactory { DraftCube draftCube; Constructor con; try { - con = draftCubes.get(draftCubeName).getConstructor(new Class[]{}); - draftCube = (DraftCube)con.newInstance(new Object[] {}); + con = draftCubes.get(draftCubeName).getConstructor(); + draftCube = (DraftCube)con.newInstance(); } catch (Exception ex) { logger.fatal("CubeFactory error", ex); return null; @@ -73,8 +73,8 @@ public class CubeFactory { DraftCube draftCube; Constructor con; try { - con = draftCubes.get(draftCubeName).getConstructor(new Class[]{Deck.class}); - draftCube = (DraftCube)con.newInstance(new Object[] {cubeFromDeck}); + con = draftCubes.get(draftCubeName).getConstructor(Deck.class); + draftCube = (DraftCube)con.newInstance(cubeFromDeck); } catch (Exception ex) { logger.fatal("CubeFactory error", ex); return null; diff --git a/Mage.Server/src/main/java/mage/server/draft/DraftController.java b/Mage.Server/src/main/java/mage/server/draft/DraftController.java index b96417b6798..02e45110a8a 100644 --- a/Mage.Server/src/main/java/mage/server/draft/DraftController.java +++ b/Mage.Server/src/main/java/mage/server/draft/DraftController.java @@ -74,9 +74,7 @@ public class DraftController { private void init() { draft.addTableEventListener( - new Listener () { - @Override - public void event(TableEvent event) { + (Listener) event -> { try { switch (event.getEventType()) { case UPDATE: @@ -91,12 +89,9 @@ public class DraftController { logger.fatal("Table event listener error", ex); } } - } ); draft.addPlayerQueryEventListener( - new Listener () { - @Override - public void event(PlayerQueryEvent event) { + (Listener) event -> { try { switch (event.getQueryType()) { case PICK_CARD: @@ -108,7 +103,6 @@ public class DraftController { logger.fatal("Table event listener error", ex); } } - } ); for (DraftPlayer player: draft.getPlayers()) { if (!player.getPlayer().isHuman()) { @@ -156,12 +150,7 @@ public class DraftController { if (!draft.isStarted() && allJoined()) { draft.setStarted(); ThreadExecutor.getInstance().getCallExecutor().execute( - new Runnable() { - @Override - public void run() { - startDraft(); - } - }); + () -> startDraft()); } } diff --git a/Mage.Server/src/main/java/mage/server/draft/DraftSession.java b/Mage.Server/src/main/java/mage/server/draft/DraftSession.java index 7a7d045fc1d..068d58c04db 100644 --- a/Mage.Server/src/main/java/mage/server/draft/DraftSession.java +++ b/Mage.Server/src/main/java/mage/server/draft/DraftSession.java @@ -52,14 +52,14 @@ public class DraftSession { protected final static Logger logger = Logger.getLogger(DraftSession.class); - protected UUID userId; - protected UUID playerId; - protected Draft draft; + protected final UUID userId; + protected final UUID playerId; + protected final Draft draft; protected boolean killed = false; protected UUID markedCard; private ScheduledFuture futureTimeout; - protected static ScheduledExecutorService timeoutExecutor = ThreadExecutor.getInstance().getTimeoutExecutor(); + protected static final ScheduledExecutorService timeoutExecutor = ThreadExecutor.getInstance().getTimeoutExecutor(); public DraftSession(Draft draft, UUID userId, UUID playerId) { this.userId = userId; @@ -125,12 +125,7 @@ public class DraftSession { cancelTimeout(); if (seconds > 0) { futureTimeout = timeoutExecutor.schedule( - new Runnable() { - @Override - public void run() { - DraftManager.getInstance().timeout(draft.getId(), userId); - } - }, + () -> DraftManager.getInstance().timeout(draft.getId(), userId), seconds, TimeUnit.SECONDS ); } diff --git a/Mage.Server/src/main/java/mage/server/game/DeckValidatorFactory.java b/Mage.Server/src/main/java/mage/server/game/DeckValidatorFactory.java index 4a693cbc661..ceff42329a1 100644 --- a/Mage.Server/src/main/java/mage/server/game/DeckValidatorFactory.java +++ b/Mage.Server/src/main/java/mage/server/game/DeckValidatorFactory.java @@ -57,8 +57,8 @@ public class DeckValidatorFactory { DeckValidator validator; Constructor con; try { - con = deckTypes.get(deckType).getConstructor(new Class[]{}); - validator = (DeckValidator)con.newInstance(new Object[] {}); + con = deckTypes.get(deckType).getConstructor(); + validator = (DeckValidator)con.newInstance(); } catch (Exception ex) { logger.fatal("DeckValidatorFactory error", ex); return null; diff --git a/Mage.Server/src/main/java/mage/server/game/GameController.java b/Mage.Server/src/main/java/mage/server/game/GameController.java index 8794de5b56a..79a9d63cdfd 100644 --- a/Mage.Server/src/main/java/mage/server/game/GameController.java +++ b/Mage.Server/src/main/java/mage/server/game/GameController.java @@ -99,24 +99,24 @@ public class GameController implements GameCallback { private static final ExecutorService gameExecutor = ThreadExecutor.getInstance().getGameExecutor(); private static final Logger logger = Logger.getLogger(GameController.class); - protected ScheduledExecutorService joinWaitingExecutor = Executors.newSingleThreadScheduledExecutor(); + protected final ScheduledExecutorService joinWaitingExecutor = Executors.newSingleThreadScheduledExecutor(); private ScheduledFuture futureTimeout; - protected static ScheduledExecutorService timeoutIdleExecutor = ThreadExecutor.getInstance().getTimeoutIdleExecutor(); + protected static final ScheduledExecutorService timeoutIdleExecutor = ThreadExecutor.getInstance().getTimeoutIdleExecutor(); - private ConcurrentHashMap gameSessions = new ConcurrentHashMap<>(); - private ConcurrentHashMap watchers = new ConcurrentHashMap<>(); - private ConcurrentHashMap timers = new ConcurrentHashMap<>(); + private final ConcurrentHashMap gameSessions = new ConcurrentHashMap<>(); + private final ConcurrentHashMap watchers = new ConcurrentHashMap<>(); + private final ConcurrentHashMap timers = new ConcurrentHashMap<>(); - private ConcurrentHashMap userPlayerMap; - private UUID gameSessionId; - private Game game; - private UUID chatId; - private UUID tableId; - private UUID choosingPlayerId; + private final ConcurrentHashMap userPlayerMap; + private final UUID gameSessionId; + private final Game game; + private final UUID chatId; + private final UUID tableId; + private final UUID choosingPlayerId; private Future gameFuture; private boolean useTimeout = true; - private GameOptions gameOptions; + private final GameOptions gameOptions; private UUID userReqestingRollback; private int turnsToRollback; @@ -155,133 +155,124 @@ public class GameController implements GameCallback { private void init() { game.addTableEventListener( - new Listener() { - @Override - public void event(TableEvent event) { - try { - PriorityTimer timer; - UUID playerId; - switch (event.getEventType()) { - case UPDATE: - updateGame(); - break; - case INFO: - ChatManager.getInstance().broadcast(chatId, "", event.getMessage(), MessageColor.BLACK, true, ChatMessage.MessageType.GAME, null); - logger.trace(game.getId() + " " + event.getMessage()); - break; - case STATUS: - ChatManager.getInstance().broadcast(chatId, "", event.getMessage(), MessageColor.ORANGE, event.getWithTime(), ChatMessage.MessageType.GAME, null); - logger.trace(game.getId() + " " + event.getMessage()); - break; - case ERROR: - error(event.getMessage(), event.getException()); - break; - case END_GAME_INFO: - endGameInfo(); - break; - case INIT_TIMER: - final UUID initPlayerId = event.getPlayerId(); - if (initPlayerId == null) { - throw new MageException("INIT_TIMER: playerId can't be null"); - } - createPlayerTimer(event.getPlayerId(), game.getPriorityTime()); - break; - case RESUME_TIMER: - playerId = event.getPlayerId(); - if (playerId == null) { - throw new MageException("RESUME_TIMER: playerId can't be null"); - } - timer = timers.get(playerId); - if (timer == null) { - Player player = game.getState().getPlayer(playerId); - if (player != null) { - timer = createPlayerTimer(event.getPlayerId(), player.getPriorityTimeLeft()); - } else { - throw new MageException("RESUME_TIMER: player can't be null"); + (Listener) event -> { + try { + PriorityTimer timer; + UUID playerId; + switch (event.getEventType()) { + case UPDATE: + updateGame(); + break; + case INFO: + ChatManager.getInstance().broadcast(chatId, "", event.getMessage(), MessageColor.BLACK, true, MessageType.GAME, null); + logger.trace(game.getId() + " " + event.getMessage()); + break; + case STATUS: + ChatManager.getInstance().broadcast(chatId, "", event.getMessage(), MessageColor.ORANGE, event.getWithTime(), MessageType.GAME, null); + logger.trace(game.getId() + " " + event.getMessage()); + break; + case ERROR: + error(event.getMessage(), event.getException()); + break; + case END_GAME_INFO: + endGameInfo(); + break; + case INIT_TIMER: + final UUID initPlayerId = event.getPlayerId(); + if (initPlayerId == null) { + throw new MageException("INIT_TIMER: playerId can't be null"); } - } - timer.resume(); - break; - case PAUSE_TIMER: - playerId = event.getPlayerId(); - if (playerId == null) { - throw new MageException("PAUSE_TIMER: playerId can't be null"); - } - timer = timers.get(playerId); - if (timer == null) { - throw new MageException("PAUSE_TIMER: couldn't find timer for player: " + playerId); - } - timer.pause(); - break; + createPlayerTimer(event.getPlayerId(), game.getPriorityTime()); + break; + case RESUME_TIMER: + playerId = event.getPlayerId(); + if (playerId == null) { + throw new MageException("RESUME_TIMER: playerId can't be null"); + } + timer = timers.get(playerId); + if (timer == null) { + Player player = game.getState().getPlayer(playerId); + if (player != null) { + timer = createPlayerTimer(event.getPlayerId(), player.getPriorityTimeLeft()); + } else { + throw new MageException("RESUME_TIMER: player can't be null"); + } + } + timer.resume(); + break; + case PAUSE_TIMER: + playerId = event.getPlayerId(); + if (playerId == null) { + throw new MageException("PAUSE_TIMER: playerId can't be null"); + } + timer = timers.get(playerId); + if (timer == null) { + throw new MageException("PAUSE_TIMER: couldn't find timer for player: " + playerId); + } + timer.pause(); + break; + } + } catch (MageException ex) { + logger.fatal("Table event listener error ", ex); } - } catch (MageException ex) { - logger.fatal("Table event listener error ", ex); } - } - } ); game.addPlayerQueryEventListener( - new Listener() { - @Override - public void event(PlayerQueryEvent event) { - logger.trace(new StringBuilder(event.getPlayerId().toString()).append("--").append(event.getQueryType()).append("--").append(event.getMessage()).toString()); - try { - switch (event.getQueryType()) { - case ASK: - ask(event.getPlayerId(), event.getMessage(), event.getOptions()); - break; - case PICK_TARGET: - target(event.getPlayerId(), event.getMessage(), event.getCards(), event.getPerms(), event.getTargets(), event.isRequired(), event.getOptions()); - break; - case PICK_ABILITY: - target(event.getPlayerId(), event.getMessage(), event.getAbilities(), event.isRequired(), event.getOptions()); - break; - case SELECT: - select(event.getPlayerId(), event.getMessage(), event.getOptions()); - break; - case PLAY_MANA: - playMana(event.getPlayerId(), event.getMessage(), event.getOptions()); - break; - case PLAY_X_MANA: - playXMana(event.getPlayerId(), event.getMessage()); - break; - case CHOOSE_ABILITY: - String objectName = null; - if (event.getChoices() != null && event.getChoices().size() > 0) { - objectName = event.getChoices().iterator().next(); - } - chooseAbility(event.getPlayerId(), objectName, event.getAbilities()); - break; - case CHOOSE_PILE: - choosePile(event.getPlayerId(), event.getMessage(), event.getPile1(), event.getPile2()); - break; - case CHOOSE_MODE: - chooseMode(event.getPlayerId(), event.getModes()); - break; - case CHOOSE_CHOICE: - chooseChoice(event.getPlayerId(), event.getChoice()); - break; - case AMOUNT: - amount(event.getPlayerId(), event.getMessage(), event.getMin(), event.getMax()); - break; - case PERSONAL_MESSAGE: - informPersonal(event.getPlayerId(), event.getMessage()); - break; + (Listener) event -> { + logger.trace(new StringBuilder(event.getPlayerId().toString()).append("--").append(event.getQueryType()).append("--").append(event.getMessage()).toString()); + try { + switch (event.getQueryType()) { + case ASK: + ask(event.getPlayerId(), event.getMessage(), event.getOptions()); + break; + case PICK_TARGET: + target(event.getPlayerId(), event.getMessage(), event.getCards(), event.getPerms(), event.getTargets(), event.isRequired(), event.getOptions()); + break; + case PICK_ABILITY: + target(event.getPlayerId(), event.getMessage(), event.getAbilities(), event.isRequired(), event.getOptions()); + break; + case SELECT: + select(event.getPlayerId(), event.getMessage(), event.getOptions()); + break; + case PLAY_MANA: + playMana(event.getPlayerId(), event.getMessage(), event.getOptions()); + break; + case PLAY_X_MANA: + playXMana(event.getPlayerId(), event.getMessage()); + break; + case CHOOSE_ABILITY: + String objectName = null; + if (event.getChoices() != null && event.getChoices().size() > 0) { + objectName = event.getChoices().iterator().next(); + } + chooseAbility(event.getPlayerId(), objectName, event.getAbilities()); + break; + case CHOOSE_PILE: + choosePile(event.getPlayerId(), event.getMessage(), event.getPile1(), event.getPile2()); + break; + case CHOOSE_MODE: + chooseMode(event.getPlayerId(), event.getModes()); + break; + case CHOOSE_CHOICE: + chooseChoice(event.getPlayerId(), event.getChoice()); + break; + case AMOUNT: + amount(event.getPlayerId(), event.getMessage(), event.getMin(), event.getMax()); + break; + case PERSONAL_MESSAGE: + informPersonal(event.getPlayerId(), event.getMessage()); + break; + } + } catch (MageException ex) { + logger.fatal("Player event listener error ", ex); } - } catch (MageException ex) { - logger.fatal("Player event listener error ", ex); } - } - } ); - joinWaitingExecutor.scheduleAtFixedRate(new Runnable() { - @Override - public void run() { - try { - sendInfoAboutPlayersNotJoinedYet(); - } catch (Exception ex) { - logger.fatal("Send info about player not joined yet:", ex); - } + joinWaitingExecutor.scheduleAtFixedRate(() -> { + try { + sendInfoAboutPlayersNotJoinedYet(); + } catch (Exception ex) { + logger.fatal("Send info about player not joined yet:", ex); } }, 15, 15, TimeUnit.SECONDS); checkStart(); @@ -303,12 +294,9 @@ public class GameController implements GameCallback { final UUID initPlayerId = playerId; long delayMs = 250L; // run each 250 ms - Action executeOnNoTimeLeft = new Action() { - @Override - public void execute() throws MageException { - game.timerTimeout(initPlayerId); - logger.debug("Player has no time left to end the match: " + initPlayerId + ". Conceding."); - } + Action executeOnNoTimeLeft = () -> { + game.timerTimeout(initPlayerId); + logger.debug("Player has no time left to end the match: " + initPlayerId + ". Conceding."); }; PriorityTimer timer = new PriorityTimer(count, delayMs, executeOnNoTimeLeft); @@ -402,12 +390,7 @@ public class GameController implements GameCallback { if (allJoined()) { joinWaitingExecutor.shutdownNow(); ThreadExecutor.getInstance().getCallExecutor().execute( - new Runnable() { - @Override - public void run() { - startGame(); - } - }); + () -> startGame()); } } @@ -703,49 +686,24 @@ public class GameController implements GameCallback { } public void sendPlayerUUID(UUID userId, final UUID data) { - sendMessage(userId, new Command() { - @Override - public void execute(UUID playerId) { - getGameSession(playerId).sendPlayerUUID(data); - } - }); + sendMessage(userId, playerId -> getGameSession(playerId).sendPlayerUUID(data)); } public void sendPlayerString(UUID userId, final String data) { - sendMessage(userId, new Command() { - @Override - public void execute(UUID playerId) { - getGameSession(playerId).sendPlayerString(data); - } - }); + sendMessage(userId, playerId -> getGameSession(playerId).sendPlayerString(data)); } public void sendPlayerManaType(UUID userId, final UUID manaTypePlayerId, final ManaType data) { - sendMessage(userId, new Command() { - @Override - public void execute(UUID playerId) { - getGameSession(playerId).sendPlayerManaType(data, manaTypePlayerId); - } - }); + sendMessage(userId, playerId -> getGameSession(playerId).sendPlayerManaType(data, manaTypePlayerId)); } public void sendPlayerBoolean(UUID userId, final Boolean data) { - sendMessage(userId, new Command() { - @Override - public void execute(UUID playerId) { - getGameSession(playerId).sendPlayerBoolean(data); - } - }); + sendMessage(userId, playerId -> getGameSession(playerId).sendPlayerBoolean(data)); } public void sendPlayerInteger(UUID userId, final Integer data) { - sendMessage(userId, new Command() { - @Override - public void execute(UUID playerId) { - getGameSession(playerId).sendPlayerInteger(data); - } - }); + sendMessage(userId, playerId -> getGameSession(playerId).sendPlayerInteger(data)); } @@ -779,120 +737,69 @@ public class GameController implements GameCallback { } private synchronized void ask(UUID playerId, final String question, final Map options) throws MageException { - perform(playerId, new Command() { - @Override - public void execute(UUID playerId) { - getGameSession(playerId).ask(question, options); - } - }); + perform(playerId, playerId1 -> getGameSession(playerId1).ask(question, options)); } private synchronized void chooseAbility(UUID playerId, final String objectName, final List choices) throws MageException { - perform(playerId, new Command() { - @Override - public void execute(UUID playerId) { - getGameSession(playerId).chooseAbility(new AbilityPickerView(objectName, choices)); - } - }); + perform(playerId, playerId1 -> getGameSession(playerId1).chooseAbility(new AbilityPickerView(objectName, choices))); } private synchronized void choosePile(UUID playerId, final String message, final List pile1, final List pile2) throws MageException { - perform(playerId, new Command() { - @Override - public void execute(UUID playerId) { - getGameSession(playerId).choosePile(message, new CardsView(pile1), new CardsView(pile2)); - } - }); + perform(playerId, playerId1 -> getGameSession(playerId1).choosePile(message, new CardsView(pile1), new CardsView(pile2))); } private synchronized void chooseMode(UUID playerId, final Map modes) throws MageException { - perform(playerId, new Command() { - @Override - public void execute(UUID playerId) { - getGameSession(playerId).chooseAbility(new AbilityPickerView(modes)); - } - }); + perform(playerId, playerId1 -> getGameSession(playerId1).chooseAbility(new AbilityPickerView(modes))); } private synchronized void chooseChoice(UUID playerId, final Choice choice) throws MageException { - perform(playerId, new Command() { - @Override - public void execute(UUID playerId) { - getGameSession(playerId).chooseChoice(choice); - } - }); + perform(playerId, playerId1 -> getGameSession(playerId1).chooseChoice(choice)); } private synchronized void target(UUID playerId, final String question, final Cards cards, final List perms, final Set targets, final boolean required, final Map options) throws MageException { - perform(playerId, new Command() { - @Override - public void execute(UUID playerId) { - if (cards != null) { - // Zone targetZone = (Zone) options.get("targetZone"); - // Are there really situations where a player selects from a list of face down cards? - // So always show face up for selection - // boolean showFaceDown = targetZone != null && targetZone.equals(Zone.PICK); - boolean showFaceDown = true; - getGameSession(playerId).target(question, new CardsView(game, cards.getCards(game), showFaceDown, true), targets, required, options); - } else if (perms != null) { - CardsView permsView = new CardsView(); - for (Permanent perm : perms) { - permsView.put(perm.getId(), new PermanentView(perm, game.getCard(perm.getId()), playerId, game)); - } - getGameSession(playerId).target(question, permsView, targets, required, options); - } else { - getGameSession(playerId).target(question, new CardsView(), targets, required, options); + perform(playerId, playerId1 -> { + if (cards != null) { + // Zone targetZone = (Zone) options.get("targetZone"); + // Are there really situations where a player selects from a list of face down cards? + // So always show face up for selection + // boolean showFaceDown = targetZone != null && targetZone.equals(Zone.PICK); + boolean showFaceDown = true; + getGameSession(playerId1).target(question, new CardsView(game, cards.getCards(game), showFaceDown, true), targets, required, options); + } else if (perms != null) { + CardsView permsView = new CardsView(); + for (Permanent perm : perms) { + permsView.put(perm.getId(), new PermanentView(perm, game.getCard(perm.getId()), playerId1, game)); } + getGameSession(playerId1).target(question, permsView, targets, required, options); + } else { + getGameSession(playerId1).target(question, new CardsView(), targets, required, options); } }); } private synchronized void target(UUID playerId, final String question, final Collection abilities, final boolean required, final Map options) throws MageException { - perform(playerId, new Command() { - @Override - public void execute(UUID playerId) { - CardsView cardsView = new CardsView(abilities, game); - getGameSession(playerId).target(question, cardsView, null, required, options); - } + perform(playerId, playerId1 -> { + CardsView cardsView = new CardsView(abilities, game); + getGameSession(playerId1).target(question, cardsView, null, required, options); }); } private synchronized void select(final UUID playerId, final String message, final Map options) throws MageException { - perform(playerId, new Command() { - @Override - public void execute(UUID playerId) { - getGameSession(playerId).select(message, options); - } - }); + perform(playerId, playerId1 -> getGameSession(playerId1).select(message, options)); } private synchronized void playMana(UUID playerId, final String message, final Map options) throws MageException { - perform(playerId, new Command() { - @Override - public void execute(UUID playerId) { - getGameSession(playerId).playMana(message, options); - } - }); + perform(playerId, playerId1 -> getGameSession(playerId1).playMana(message, options)); } private synchronized void playXMana(UUID playerId, final String message) throws MageException { - perform(playerId, new Command() { - @Override - public void execute(UUID playerId) { - getGameSession(playerId).playXMana(message); - } - }); + perform(playerId, playerId1 -> getGameSession(playerId1).playXMana(message)); } private synchronized void amount(UUID playerId, final String message, final int min, final int max) throws MageException { - perform(playerId, new Command() { - @Override - public void execute(UUID playerId) { - getGameSession(playerId).getAmount(message, min, max); - } - }); + perform(playerId, playerId1 -> getGameSession(playerId1).getAmount(message, min, max)); } private void informOthers(UUID playerId) throws MageException { @@ -939,12 +846,7 @@ public class GameController implements GameCallback { } private synchronized void informPersonal(UUID playerId, final String message) throws MageException { - perform(playerId, new Command() { - @Override - public void execute(UUID playerId) { - getGameSession(playerId).informPersonal(message); - } - }); + perform(playerId, playerId1 -> getGameSession(playerId1).informPersonal(message)); } private void error(String message, Exception ex) { @@ -977,12 +879,9 @@ public class GameController implements GameCallback { try { OutputStream file = new FileOutputStream("saved/" + game.getId().toString() + ".game"); OutputStream buffer = new BufferedOutputStream(file); - ObjectOutput output = new ObjectOutputStream(new GZIPOutputStream(buffer)); - try { + try (ObjectOutput output = new ObjectOutputStream(new GZIPOutputStream(buffer))) { output.writeObject(game); output.writeObject(game.getGameStates()); - } finally { - output.close(); } logger.debug("Saved game:" + game.getId()); return true; @@ -1074,12 +973,7 @@ public class GameController implements GameCallback { } cancelTimeout(); futureTimeout = timeoutIdleExecutor.schedule( - new Runnable() { - @Override - public void run() { - idleTimeout(playerId); - } - }, + () -> idleTimeout(playerId), Main.isTestMode() ? 3600 : ConfigSettings.getInstance().getMaxSecondsIdle(), TimeUnit.SECONDS ); diff --git a/Mage.Server/src/main/java/mage/server/game/GameFactory.java b/Mage.Server/src/main/java/mage/server/game/GameFactory.java index fe13cb3dd92..c3a22eb59b1 100644 --- a/Mage.Server/src/main/java/mage/server/game/GameFactory.java +++ b/Mage.Server/src/main/java/mage/server/game/GameFactory.java @@ -64,8 +64,8 @@ public class GameFactory { Match match; Constructor con; try { - con = games.get(gameType).getConstructor(new Class[]{MatchOptions.class}); - match = con.newInstance(new Object[] {options}); + con = games.get(gameType).getConstructor(MatchOptions.class); + match = con.newInstance(options); } catch (Exception ex) { logger.fatal("Error creating match - " + gameType, ex); return null; diff --git a/Mage.Server/src/main/java/mage/server/game/GameReplay.java b/Mage.Server/src/main/java/mage/server/game/GameReplay.java index d6e8b961584..820bc9a6d32 100644 --- a/Mage.Server/src/main/java/mage/server/game/GameReplay.java +++ b/Mage.Server/src/main/java/mage/server/game/GameReplay.java @@ -87,16 +87,12 @@ public class GameReplay { try{ InputStream file = new FileInputStream("saved/" + gameId.toString() + ".game"); InputStream buffer = new BufferedInputStream(file); - ObjectInput input = new CopierObjectInputStream(Main.classLoader, new GZIPInputStream(buffer)); - try { - Game loadGame = (Game)input.readObject(); - GameStates states = (GameStates)input.readObject(); + try (ObjectInput input = new CopierObjectInputStream(Main.classLoader, new GZIPInputStream(buffer))) { + Game loadGame = (Game) input.readObject(); + GameStates states = (GameStates) input.readObject(); loadGame.loadGameStates(states); return loadGame; } - finally { - input.close(); - } } catch(ClassNotFoundException ex) { logger.fatal("Cannot load game. Class not found.", ex); diff --git a/Mage.Server/src/main/java/mage/server/game/GameSessionPlayer.java b/Mage.Server/src/main/java/mage/server/game/GameSessionPlayer.java index c9273f401dc..76137efcca3 100644 --- a/Mage.Server/src/main/java/mage/server/game/GameSessionPlayer.java +++ b/Mage.Server/src/main/java/mage/server/game/GameSessionPlayer.java @@ -282,34 +282,31 @@ public class GameSessionPlayer extends GameSessionWatcher { final Player player = game.getPlayer(playerId); if (player != null && player.isInGame()) { callExecutor.execute( - new Runnable() { - @Override - public void run() { - try { - if (game.getStartTime() == null) { - // gameController is still waiting to start the game - player.leave(); - } else { - // game was already started - player.quit(game); - } - - } catch (Exception ex) { - if (ex != null) { - // It seems this can happen if two threads try to end the game at the exact same time (one wins and one ends here) - logger.fatal("Game session game quit exception " + (ex.getMessage() == null ? "null" : ex.getMessage())); - logger.debug("- gameId:" + game.getId() + " playerId: " + playerId); - if (ex.getCause() != null) { - logger.debug("- Cause: " + (ex.getCause().getMessage() == null ? "null" : ex.getCause().getMessage()), ex); + () -> { + try { + if (game.getStartTime() == null) { + // gameController is still waiting to start the game + player.leave(); } else { - logger.debug("- ex: " + ex.toString(), ex); + // game was already started + player.quit(game); + } + + } catch (Exception ex) { + if (ex != null) { + // It seems this can happen if two threads try to end the game at the exact same time (one wins and one ends here) + logger.fatal("Game session game quit exception " + (ex.getMessage() == null ? "null" : ex.getMessage())); + logger.debug("- gameId:" + game.getId() + " playerId: " + playerId); + if (ex.getCause() != null) { + logger.debug("- Cause: " + (ex.getCause().getMessage() == null ? "null" : ex.getCause().getMessage()), ex); + } else { + logger.debug("- ex: " + ex.toString(), ex); + } + } else { + logger.fatal("Game session game quit exception - null gameId:" + game.getId() + " playerId: " + playerId); } - } else { - logger.fatal("Game session game quit exception - null gameId:" + game.getId() + " playerId: " + playerId); } } - } - } ); } diff --git a/Mage.Server/src/main/java/mage/server/game/GameSessionWatcher.java b/Mage.Server/src/main/java/mage/server/game/GameSessionWatcher.java index 134899e36b9..e1cd8bf9d1f 100644 --- a/Mage.Server/src/main/java/mage/server/game/GameSessionWatcher.java +++ b/Mage.Server/src/main/java/mage/server/game/GameSessionWatcher.java @@ -51,10 +51,10 @@ public class GameSessionWatcher { protected final static Logger logger = Logger.getLogger(GameSessionWatcher.class); - protected UUID userId; - protected Game game; + protected final UUID userId; + protected final Game game; protected boolean killed = false; - protected boolean isPlayer; + protected final boolean isPlayer; public GameSessionWatcher(UUID userId, Game game, boolean isPlayer) { this.userId = userId; diff --git a/Mage.Server/src/main/java/mage/server/game/GamesRoomImpl.java b/Mage.Server/src/main/java/mage/server/game/GamesRoomImpl.java index e7f218b88ec..521b770a0d0 100644 --- a/Mage.Server/src/main/java/mage/server/game/GamesRoomImpl.java +++ b/Mage.Server/src/main/java/mage/server/game/GamesRoomImpl.java @@ -73,16 +73,13 @@ public class GamesRoomImpl extends RoomImpl implements GamesRoom, Serializable { private final ConcurrentHashMap tables = new ConcurrentHashMap<>(); public GamesRoomImpl() { - UPDATE_EXECUTOR.scheduleAtFixedRate(new Runnable() { - @Override - public void run() { - try { - update(); - } catch (Exception ex) { - LOGGER.fatal("Games room update exception! " + ex.toString(), ex); - } - + UPDATE_EXECUTOR.scheduleAtFixedRate(() -> { + try { + update(); + } catch (Exception ex) { + LOGGER.fatal("Games room update exception! " + ex.toString(), ex); } + }, 2, 2, TimeUnit.SECONDS); } @@ -95,7 +92,7 @@ public class GamesRoomImpl extends RoomImpl implements GamesRoom, Serializable { ArrayList tableList = new ArrayList<>(); ArrayList matchList = new ArrayList<>(); List allTables = new ArrayList<>(tables.values()); - Collections.sort(allTables, new TableListSorter()); + allTables.sort(new TableListSorter()); for (Table table : allTables) { if (table.getState() != TableState.FINISHED) { tableList.add(new TableView(table)); @@ -136,7 +133,7 @@ public class GamesRoomImpl extends RoomImpl implements GamesRoom, Serializable { } } - Collections.sort(users, new UserNameSorter()); + users.sort(new UserNameSorter()); List roomUserInfo = new ArrayList<>(); roomUserInfo.add(new RoomUsersView(users, GameManager.getInstance().getNumberActiveGames(), diff --git a/Mage.Server/src/main/java/mage/server/game/PlayerFactory.java b/Mage.Server/src/main/java/mage/server/game/PlayerFactory.java index 2bee468263a..9d9581aa837 100644 --- a/Mage.Server/src/main/java/mage/server/game/PlayerFactory.java +++ b/Mage.Server/src/main/java/mage/server/game/PlayerFactory.java @@ -59,8 +59,8 @@ public class PlayerFactory { try { Class playerTypeClass = playerTypes.get(playerType); if (playerTypeClass != null) { - con = playerTypeClass.getConstructor(new Class[]{String.class, RangeOfInfluence.class, int.class}); - player = (Player)con.newInstance(new Object[] {name, range, skill}); + con = playerTypeClass.getConstructor(String.class, RangeOfInfluence.class, int.class); + player = (Player)con.newInstance(name, range, skill); logger.trace("Player created: " + name + " - " + player.getId()); return player; } diff --git a/Mage.Server/src/main/java/mage/server/game/ReplaySession.java b/Mage.Server/src/main/java/mage/server/game/ReplaySession.java index c426fbe7db3..f7735c48b11 100644 --- a/Mage.Server/src/main/java/mage/server/game/ReplaySession.java +++ b/Mage.Server/src/main/java/mage/server/game/ReplaySession.java @@ -43,7 +43,7 @@ import mage.view.GameView; public class ReplaySession implements GameCallback { private final GameReplay replay; - protected UUID userId; + protected final UUID userId; ReplaySession(UUID gameId, UUID userId) { this.replay = new GameReplay(gameId); diff --git a/Mage.Server/src/main/java/mage/server/record/TableRecordRepository.java b/Mage.Server/src/main/java/mage/server/record/TableRecordRepository.java index 927a474c397..c5fec8d5c97 100644 --- a/Mage.Server/src/main/java/mage/server/record/TableRecordRepository.java +++ b/Mage.Server/src/main/java/mage/server/record/TableRecordRepository.java @@ -24,7 +24,7 @@ public enum TableRecordRepository { private Dao dao; - private TableRecordRepository() { + TableRecordRepository() { File file = new File("db"); if (!file.exists()) { file.mkdirs(); diff --git a/Mage.Server/src/main/java/mage/server/record/UserStatsRepository.java b/Mage.Server/src/main/java/mage/server/record/UserStatsRepository.java index 4da53b93e33..1bf6b3f4743 100644 --- a/Mage.Server/src/main/java/mage/server/record/UserStatsRepository.java +++ b/Mage.Server/src/main/java/mage/server/record/UserStatsRepository.java @@ -30,7 +30,7 @@ public enum UserStatsRepository { private Dao dao; - private UserStatsRepository() { + UserStatsRepository() { File file = new File("db"); if (!file.exists()) { file.mkdirs(); diff --git a/Mage.Server/src/main/java/mage/server/services/impl/FeedbackServiceImpl.java b/Mage.Server/src/main/java/mage/server/services/impl/FeedbackServiceImpl.java index 1f26af508fb..2f53fe21cac 100644 --- a/Mage.Server/src/main/java/mage/server/services/impl/FeedbackServiceImpl.java +++ b/Mage.Server/src/main/java/mage/server/services/impl/FeedbackServiceImpl.java @@ -12,7 +12,7 @@ import java.util.Calendar; public enum FeedbackServiceImpl implements FeedbackService { instance; - private static Logger log = Logger.getLogger(FeedbackServiceImpl.class); + private static final Logger log = Logger.getLogger(FeedbackServiceImpl.class); @Override public void feedback(String username, String title, String type, String message, String email, String host) { diff --git a/Mage.Server/src/main/java/mage/server/tournament/TournamentController.java b/Mage.Server/src/main/java/mage/server/tournament/TournamentController.java index aabe8bf37ae..c81ef1a64a2 100644 --- a/Mage.Server/src/main/java/mage/server/tournament/TournamentController.java +++ b/Mage.Server/src/main/java/mage/server/tournament/TournamentController.java @@ -88,68 +88,62 @@ public class TournamentController { private void init() { tournament.addTableEventListener( - new Listener() { - @Override - public void event(TableEvent event) { - switch (event.getEventType()) { - case CHECK_STATE_PLAYERS: - checkPlayersState(); - break; - case INFO: - ChatManager.getInstance().broadcast(chatId, "", event.getMessage(), MessageColor.BLACK, true, MessageType.STATUS, null); - logger.debug(tournament.getId() + " " + event.getMessage()); - break; - case START_DRAFT: - startDraft(event.getDraft()); - break; - case CONSTRUCT: - if (!isAbort()) { - construct(); - } else { - endTournament(); - } - break; - case START_MATCH: - if (!isAbort()) { - initTournament(); // set state - startMatch(event.getPair(), event.getMatchOptions()); - } - break; - case START_MULTIPLAYER_MATCH: - if (!isAbort()) { - initTournament(); // set state - MatchOptions matchOptions = event.getMatchOptions(); - if (matchOptions != null && event.getMultiplayerRound() != null) { - for (TournamentPlayer player : event.getMultiplayerRound().getAllPlayers()) { - matchOptions.getPlayerTypes().add(player.getPlayerType()); - } - } - - startMultiplayerMatch(event.getMultiplayerRound(), event.getMatchOptions()); - } - break; - case END: - endTournament(); - break; - } - } - } - ); - tournament.addPlayerQueryEventListener( - new Listener() { - @Override - public void event(PlayerQueryEvent event) { - try { - switch (event.getQueryType()) { + (Listener) event -> { + switch (event.getEventType()) { + case CHECK_STATE_PLAYERS: + checkPlayersState(); + break; + case INFO: + ChatManager.getInstance().broadcast(chatId, "", event.getMessage(), MessageColor.BLACK, true, MessageType.STATUS, null); + logger.debug(tournament.getId() + " " + event.getMessage()); + break; + case START_DRAFT: + startDraft(event.getDraft()); + break; case CONSTRUCT: - construct(event.getPlayerId(), event.getMax()); + if (!isAbort()) { + construct(); + } else { + endTournament(); + } + break; + case START_MATCH: + if (!isAbort()) { + initTournament(); // set state + startMatch(event.getPair(), event.getMatchOptions()); + } + break; + case START_MULTIPLAYER_MATCH: + if (!isAbort()) { + initTournament(); // set state + MatchOptions matchOptions = event.getMatchOptions(); + if (matchOptions != null && event.getMultiplayerRound() != null) { + for (TournamentPlayer player : event.getMultiplayerRound().getAllPlayers()) { + matchOptions.getPlayerTypes().add(player.getPlayerType()); + } + } + + startMultiplayerMatch(event.getMultiplayerRound(), event.getMatchOptions()); + } + break; + case END: + endTournament(); break; } - } catch (MageException ex) { - logger.fatal("Player event listener error", ex); } - } - } + ); + tournament.addPlayerQueryEventListener( + (Listener) event -> { + try { + switch (event.getQueryType()) { + case CONSTRUCT: + construct(event.getPlayerId(), event.getMax()); + break; + } + } catch (MageException ex) { + logger.fatal("Player event listener error", ex); + } + } ); for (TournamentPlayer player : tournament.getPlayers()) { if (!player.getPlayer().isHuman()) { @@ -208,12 +202,7 @@ public class TournamentController { private void checkStart() { if (!started && allJoined()) { ThreadExecutor.getInstance().getCallExecutor().execute( - new Runnable() { - @Override - public void run() { - startTournament(); - } - }); + () -> startTournament()); } } diff --git a/Mage.Server/src/main/java/mage/server/tournament/TournamentFactory.java b/Mage.Server/src/main/java/mage/server/tournament/TournamentFactory.java index ddfd7d14459..4a09cc84fe8 100644 --- a/Mage.Server/src/main/java/mage/server/tournament/TournamentFactory.java +++ b/Mage.Server/src/main/java/mage/server/tournament/TournamentFactory.java @@ -66,8 +66,8 @@ public class TournamentFactory { Tournament tournament; Constructor con; try { - con = tournaments.get(tournamentType).getConstructor(new Class[]{TournamentOptions.class}); - tournament = con.newInstance(new Object[] {options}); + con = tournaments.get(tournamentType).getConstructor(TournamentOptions.class); + tournament = con.newInstance(options); // transfer set information, create short info string for included sets tournament.setTournamentType(tournamentTypes.get(tournamentType)); if (tournament.getTournamentType().isLimited()) { diff --git a/Mage.Server/src/main/java/mage/server/tournament/TournamentSession.java b/Mage.Server/src/main/java/mage/server/tournament/TournamentSession.java index d0a16c71882..2ac77761d03 100644 --- a/Mage.Server/src/main/java/mage/server/tournament/TournamentSession.java +++ b/Mage.Server/src/main/java/mage/server/tournament/TournamentSession.java @@ -49,14 +49,14 @@ import java.util.concurrent.TimeUnit; public class TournamentSession { protected final static Logger logger = Logger.getLogger(TournamentSession.class); - protected UUID userId; - protected UUID playerId; - protected UUID tableId; - protected Tournament tournament; + protected final UUID userId; + protected final UUID playerId; + protected final UUID tableId; + protected final Tournament tournament; protected boolean killed = false; private ScheduledFuture futureTimeout; - protected static ScheduledExecutorService timeoutExecutor = ThreadExecutor.getInstance().getTimeoutExecutor(); + protected static final ScheduledExecutorService timeoutExecutor = ThreadExecutor.getInstance().getTimeoutExecutor(); public TournamentSession(Tournament tournament, UUID userId, UUID tableId, UUID playerId) { this.userId = userId; @@ -129,16 +129,13 @@ public class TournamentSession { cancelTimeout(); if (seconds > 0) { futureTimeout = timeoutExecutor.schedule( - new Runnable() { - @Override - public void run() { + () -> { try { TournamentManager.getInstance().timeout(tournament.getId(), userId); } catch (Exception e) { logger.fatal("TournamentSession error - userId " + userId + " tId " + tournament.getId(), e); } - } - }, + }, seconds, TimeUnit.SECONDS ); } diff --git a/Mage.Server/src/main/java/mage/server/util/ServerMessagesUtil.java b/Mage.Server/src/main/java/mage/server/util/ServerMessagesUtil.java index 7ba4ca5cb49..fe2e2212b21 100644 --- a/Mage.Server/src/main/java/mage/server/util/ServerMessagesUtil.java +++ b/Mage.Server/src/main/java/mage/server/util/ServerMessagesUtil.java @@ -74,12 +74,7 @@ public class ServerMessagesUtil { public ServerMessagesUtil() { updateExecutor = Executors.newSingleThreadScheduledExecutor(); - updateExecutor.scheduleAtFixedRate(new Runnable() { - @Override - public void run() { - reloadMessages(); - } - }, 5, 5 * 60, TimeUnit.SECONDS); + updateExecutor.scheduleAtFixedRate(() -> reloadMessages(), 5, 5 * 60, TimeUnit.SECONDS); } public static ServerMessagesUtil getInstance() { diff --git a/Mage.Server/src/main/java/mage/server/util/SystemUtil.java b/Mage.Server/src/main/java/mage/server/util/SystemUtil.java index d7fb2254a69..3b55b760c79 100644 --- a/Mage.Server/src/main/java/mage/server/util/SystemUtil.java +++ b/Mage.Server/src/main/java/mage/server/util/SystemUtil.java @@ -56,8 +56,7 @@ public class SystemUtil { logger.info("Parsing init.txt... "); - Scanner scanner = new Scanner(f); - try { + try (Scanner scanner = new Scanner(f)) { while (scanner.hasNextLine()) { String line = scanner.nextLine().trim(); if (line.trim().isEmpty() || line.startsWith("#")) { @@ -114,8 +113,6 @@ public class SystemUtil { swapWithAnyCard(game, player, card, gameZone); } } - } finally { - scanner.close(); } } catch (Exception e) { logger.fatal("", e);