diff --git a/forge-game/src/main/java/forge/game/Game.java b/forge-game/src/main/java/forge/game/Game.java index e26f3740460..033e51a287f 100644 --- a/forge-game/src/main/java/forge/game/Game.java +++ b/forge-game/src/main/java/forge/game/Game.java @@ -593,7 +593,7 @@ public class Game { } public Zone getZoneOf(final Card card) { - return card.getLastKnownZone(); + return card == null ? null : card.getLastKnownZone(); } public synchronized CardCollectionView getCardsIn(final ZoneType zone) { diff --git a/forge-gui-desktop/src/main/java/forge/gui/framework/SRearrangingUtil.java b/forge-gui-desktop/src/main/java/forge/gui/framework/SRearrangingUtil.java index 02f634a7447..81862144fbe 100644 --- a/forge-gui-desktop/src/main/java/forge/gui/framework/SRearrangingUtil.java +++ b/forge-gui-desktop/src/main/java/forge/gui/framework/SRearrangingUtil.java @@ -291,7 +291,7 @@ public final class SRearrangingUtil { } // Remove old cell if necessary, or, enforce rough bounds on new cell. - if (cellSrc.getDocs().size() == 0) { + if (cellSrc.getDocs().isEmpty()) { fillGap(); FView.SINGLETON_INSTANCE.removeDragCell(cellSrc); } diff --git a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/CDeckEditorUI.java b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/CDeckEditorUI.java index c1069f04bd4..666f3a5faef 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/CDeckEditorUI.java +++ b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/CDeckEditorUI.java @@ -184,6 +184,10 @@ public enum CDeckEditorUI implements ICDoc { @SuppressWarnings("unchecked") public void addSelectedCards(final boolean toAlternate, final int number) { + if (childController == null || childController.getCatalogManager() == null) { + return; + } + moveSelectedItems(childController.getCatalogManager(), new _MoveAction() { @Override public void move(final Iterable> items) { ((ACEditorBase)childController).addItems(items, toAlternate); diff --git a/forge-gui-desktop/src/main/java/forge/screens/match/controllers/CCombat.java b/forge-gui-desktop/src/main/java/forge/screens/match/controllers/CCombat.java index c73013de090..0a56ec83bb9 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/match/controllers/CCombat.java +++ b/forge-gui-desktop/src/main/java/forge/screens/match/controllers/CCombat.java @@ -79,13 +79,14 @@ public class CCombat implements ICDoc { display.append("\n"); if (defender instanceof CardView) { PlayerView controller = ((CardView) defender).getController(); - if (controller == null) + if (controller == null) { //shouldn't be null but display card's + controller ie Black Knight's controller display.append(Lang.getInstance().getPossesive(defender.getName())).append(" controller"); - else + } else { display.append(Lang.getInstance().getPossesive(controller.getName())).append(" "); + } } - display.append(defender).append(" is attacked by:\n"); + display.append(defender).append(" is attacked by:\n`"); // Associate Bands, Attackers Blockers boolean previousBand = false; diff --git a/forge-gui-desktop/src/main/java/forge/screens/match/views/VCombat.java b/forge-gui-desktop/src/main/java/forge/screens/match/views/VCombat.java index bc4c911ec47..952d23ee7c2 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/match/views/VCombat.java +++ b/forge-gui-desktop/src/main/java/forge/screens/match/views/VCombat.java @@ -104,10 +104,9 @@ public class VCombat implements IVDoc { //========= Observer update methods - /** @param s0   {@link java.lang.String} */ public void updateCombat(final int cntAttackers, final String desc) { // No need to update this unless it's showing - if (!this.equals(parentCell.getSelected())) { return; } + if (parentCell == null || !this.equals(parentCell.getSelected())) { return; } tab.setText(cntAttackers > 0 ? (Localizer.getInstance().getMessage("lblCombatTab") + " : " + cntAttackers) : Localizer.getInstance().getMessage("lblCombatTab")); tar.setText(desc); diff --git a/forge-gui-desktop/src/main/java/forge/screens/match/views/VLog.java b/forge-gui-desktop/src/main/java/forge/screens/match/views/VLog.java index f5c74f11102..46ce42627b0 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/match/views/VLog.java +++ b/forge-gui-desktop/src/main/java/forge/screens/match/views/VLog.java @@ -135,7 +135,7 @@ public class VLog implements IVDoc { } private boolean isGameLogConsoleVisible() { - return parentCell.getSelected().equals(this); + return parentCell != null && parentCell.getSelected().equals(this); } private void resetDisplayIfNewGame(final GameView model) { diff --git a/forge-gui-desktop/src/main/java/forge/screens/match/views/VStack.java b/forge-gui-desktop/src/main/java/forge/screens/match/views/VStack.java index 1375f7196a3..34443a344f4 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/match/views/VStack.java +++ b/forge-gui-desktop/src/main/java/forge/screens/match/views/VStack.java @@ -123,7 +123,7 @@ public class VStack implements IVDoc { tab.setText(Localizer.getInstance().getMessage("lblStack") + " : " + items.size()); // No need to update the rest unless it's showing - if (!parentCell.getSelected().equals(this)) { return; } + if (parentCell == null || !parentCell.getSelected().equals(this)) { return; } hoveredItem = null; scroller.removeAll(); diff --git a/forge-gui-desktop/src/main/java/forge/view/arcane/CardPanelContainer.java b/forge-gui-desktop/src/main/java/forge/view/arcane/CardPanelContainer.java index 5519126c920..647314afd60 100644 --- a/forge-gui-desktop/src/main/java/forge/view/arcane/CardPanelContainer.java +++ b/forge-gui-desktop/src/main/java/forge/view/arcane/CardPanelContainer.java @@ -278,7 +278,7 @@ public abstract class CardPanelContainer extends SkinnedPanel { public final CardPanel getCardPanel(final int gameCardID) { for (final CardPanel panel : this.getCardPanels()) { - if (panel.getCard().getId() == gameCardID) { + if (panel.getCard() != null && panel.getCard().getId() == gameCardID) { return panel; } }