Fix NPE when trying to remove card

This commit is contained in:
TRT
2021-10-27 01:12:17 +02:00
parent 5e050765a3
commit cbbdd8584c
3 changed files with 14 additions and 22 deletions

View File

@@ -339,17 +339,14 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
//hide deck header on while drafting //hide deck header on while drafting
setDeck(new Deck()); setDeck(new Deck());
deckHeader.setVisible(false); deckHeader.setVisible(false);
} } else {
else {
if (newDeck == null) { if (newDeck == null) {
editorType.getController().newModel(); editorType.getController().newModel();
} } else {
else {
editorType.getController().setDeck(newDeck); editorType.getController().setDeck(newDeck);
} }
} }
} } else {
else {
if (editorType == EditorType.Draft || editorType == EditorType.QuestDraft) { if (editorType == EditorType.Draft || editorType == EditorType.QuestDraft) {
tabPages[0].hideTab(); //hide Draft Pack page if editing existing draft deck tabPages[0].hideTab(); //hide Draft Pack page if editing existing draft deck
} }
@@ -897,8 +894,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
public void handleEvent(FEvent e) { public void handleEvent(FEvent e) {
if (max == 1) { if (max == 1) {
callback.run(max); callback.run(max);
} } else {
else {
final Localizer localizer = Localizer.getInstance(); final Localizer localizer = Localizer.getInstance();
GuiChoose.getInteger(cardManager.getSelectedItem() + " - " + verb + " " + localizer.getMessage("lblHowMany"), 1, max, 20, callback); GuiChoose.getInteger(cardManager.getSelectedItem() + " - " + verb + " " + localizer.getMessage("lblHowMany"), 1, max, 20, callback);
} }
@@ -1150,8 +1146,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
default: default:
// Do nothing // Do nothing
} }
} } else {
else {
//if a commander has been set, only show cards that match its color identity //if a commander has been set, only show cards that match its color identity
switch (editorType) { switch (editorType) {
case Commander: case Commander:
@@ -1176,8 +1171,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
default: default:
if (cardManager.getWantUnique()) { if (cardManager.getWantUnique()) {
cardManager.setPool(editorType.applyCardFilter(FModel.getUniqueCardsNoAlt(), additionalFilter), true); cardManager.setPool(editorType.applyCardFilter(FModel.getUniqueCardsNoAlt(), additionalFilter), true);
} } else {
else {
cardManager.setPool(editorType.applyCardFilter(FModel.getAllCardsNoAlt(), additionalFilter), true); cardManager.setPool(editorType.applyCardFilter(FModel.getAllCardsNoAlt(), additionalFilter), true);
} }
break; break;
@@ -1250,8 +1244,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
CardPreferences.save(); CardPreferences.save();
} }
})); }));
} } else {
else {
menu.addItem(new FMenuItem(localizer.getMessage("lblRemoveFavorites"), Forge.hdbuttons ? FSkinImage.HDSTAR_OUTLINE : FSkinImage.STAR_OUTLINE, new FEventHandler() { menu.addItem(new FMenuItem(localizer.getMessage("lblRemoveFavorites"), Forge.hdbuttons ? FSkinImage.HDSTAR_OUTLINE : FSkinImage.STAR_OUTLINE, new FEventHandler() {
@Override @Override
public void handleEvent(FEvent e) { public void handleEvent(FEvent e) {
@@ -1376,8 +1369,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
protected void updateCaption() { protected void updateCaption() {
if (deckSection == DeckSection.Commander) { if (deckSection == DeckSection.Commander) {
caption = captionPrefix; //don't display count for commander section since it won't be more than 1 caption = captionPrefix; //don't display count for commander section since it won't be more than 1
} } else {
else {
caption = captionPrefix + " (" + parentScreen.getDeck().get(deckSection).countAll() + ")"; caption = captionPrefix + " (" + parentScreen.getDeck().get(deckSection).countAll() + ")";
} }
} }
@@ -1767,8 +1759,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
if (isStored) { if (isStored) {
if (isModelInSyncWithFolder()) { if (isModelInSyncWithFolder()) {
setSaved(true); setSaved(true);
} } else {
else {
notifyModelChanged(); notifyModelChanged();
} }
} }
@@ -1779,8 +1770,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
} }
if (model != null) { if (model != null) {
editor.setDeck(model.getHumanDeck()); editor.setDeck(model.getHumanDeck());
} } else {
else {
editor.setDeck(null); editor.setDeck(null);
} }

View File

@@ -525,6 +525,9 @@ public abstract class ItemManager<T extends InventoryItem> extends FContainer im
} }
public void addItem(final T item, int qty) { public void addItem(final T item, int qty) {
if (pool == null) {
return;
}
pool.add(item, qty); pool.add(item, qty);
if (isUnfiltered()) { if (isUnfiltered()) {
model.addItem(item, qty); model.addItem(item, qty);

View File

@@ -80,8 +80,7 @@ public final class ItemManagerModel<T extends InventoryItem> {
if (data.count(item0) > 0) { if (data.count(item0) > 0) {
if (isInfinite()) { if (isInfinite()) {
data.removeAll(item0); data.removeAll(item0);
} } else {
else {
data.remove(item0, qty); data.remove(item0, qty);
} }
isListInSync = false; isListInSync = false;