From a6d6895676a376cad8f62c5a1c444fd1af929e6a Mon Sep 17 00:00:00 2001 From: tastybento Date: Mon, 1 Jun 2020 12:15:49 -0700 Subject: [PATCH] Fixes admin blueprint delete command https://github.com/BentoBoxWorld/BentoBox/issues/1382 --- .../bentobox/blueprints/Blueprint.java | 2 ++ .../bentobox/managers/BlueprintsManager.java | 27 +++++++++++-------- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/src/main/java/world/bentobox/bentobox/blueprints/Blueprint.java b/src/main/java/world/bentobox/bentobox/blueprints/Blueprint.java index 42adb3922..5d27b5c6c 100644 --- a/src/main/java/world/bentobox/bentobox/blueprints/Blueprint.java +++ b/src/main/java/world/bentobox/bentobox/blueprints/Blueprint.java @@ -49,7 +49,9 @@ public class Blueprint { /** * @return the name */ + @NonNull public String getName() { + if (name == null) name = "unnamed"; // Force lower case return name.toLowerCase(Locale.ENGLISH); } diff --git a/src/main/java/world/bentobox/bentobox/managers/BlueprintsManager.java b/src/main/java/world/bentobox/bentobox/managers/BlueprintsManager.java index 20ce87d3e..85a9bdaab 100644 --- a/src/main/java/world/bentobox/bentobox/managers/BlueprintsManager.java +++ b/src/main/java/world/bentobox/bentobox/managers/BlueprintsManager.java @@ -12,6 +12,7 @@ import java.util.Collections; import java.util.EnumMap; import java.util.HashMap; import java.util.HashSet; +import java.util.Iterator; import java.util.List; import java.util.Locale; import java.util.Map; @@ -407,18 +408,22 @@ public class BlueprintsManager { */ public void deleteBlueprint(GameModeAddon addon, String name) { List addonBlueprints = blueprints.get(addon); - addonBlueprints.stream().filter(b -> b.getName().equals(name)).forEach(b -> { - addonBlueprints.remove(b); - blueprints.put(addon, addonBlueprints); + Iterator it = addonBlueprints.iterator(); + while (it.hasNext()) { + Blueprint b = it.next(); + if (b.getName().equalsIgnoreCase(name)) { + it.remove(); + blueprints.put(addon, addonBlueprints); - File file = new File(getBlueprintsFolder(addon), name + BLUEPRINT_SUFFIX); - // Delete the file - try { - Files.deleteIfExists(file.toPath()); - } catch (IOException e) { - plugin.logError("Could not delete Blueprint " + e.getLocalizedMessage()); - } - }); + File file = new File(getBlueprintsFolder(addon), b.getName() + BLUEPRINT_SUFFIX); + // Delete the file + try { + Files.deleteIfExists(file.toPath()); + } catch (IOException e) { + plugin.logError("Could not delete Blueprint " + e.getLocalizedMessage()); + } + } + } } /**