From 74f9d05b08db5221c141d4121937cb10f2e00c5c Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Sun, 3 Nov 2024 12:14:43 +0800 Subject: [PATCH] update NPE prevention --- .../forge/screens/match/controllers/CCombat.java | 16 +++++++++++----- .../forge/screens/match/views/VZoneDisplay.java | 9 ++++----- 2 files changed, 15 insertions(+), 10 deletions(-) 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 442de8b3021..37d614e3153 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 @@ -78,13 +78,19 @@ public class CCombat implements ICDoc { } display.append("\n"); - + PlayerView controller = null; if (defender instanceof CardView) { - final PlayerView controller = ((CardView) defender).getController(); - display.append(Lang.getInstance().getPossesive(controller.getName())).append(" "); + controller = ((CardView) defender).getController(); + 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 + display.append(Lang.getInstance().getPossesive(controller.getName())).append(" "); } - - display.append(defender).append(" is attacked by:\n"); + if (controller == null) + display.append(" is attacked by:\n"); + else + display.append(defender).append(" is attacked by:\n"); // Associate Bands, Attackers Blockers boolean previousBand = false; diff --git a/forge-gui-mobile/src/forge/screens/match/views/VZoneDisplay.java b/forge-gui-mobile/src/forge/screens/match/views/VZoneDisplay.java index f05e8a7f1b7..0f4b2b074f4 100644 --- a/forge-gui-mobile/src/forge/screens/match/views/VZoneDisplay.java +++ b/forge-gui-mobile/src/forge/screens/match/views/VZoneDisplay.java @@ -66,12 +66,11 @@ public class VZoneDisplay extends VCardDisplayArea { } private void setRevealedPanel(int idx) { - try { - revealedPanel = cardPanels().get(idx); //on network match, when zoomed and cast a card would randomly trigger the bug - } catch (Exception e) { //before it was arrayindexoutofbounds, then indexoutofbounds, so just use a general exception - //e.printStackTrace(); + if (idx >= 0 && idx < cardPanels().size()) + revealedPanel = cardPanels().get(idx); + else return; - } + clearChildren(); if (Forge.isLandscapeMode()) { //for landscape mode, just show revealed card on top