diff --git a/src/main/java/de/epiceric/shopchest/ShopChest.java b/src/main/java/de/epiceric/shopchest/ShopChest.java index c269e57..cdaf9e8 100644 --- a/src/main/java/de/epiceric/shopchest/ShopChest.java +++ b/src/main/java/de/epiceric/shopchest/ShopChest.java @@ -255,11 +255,9 @@ public class ShopChest extends JavaPlugin { if (shopCreationThreadPool != null) { shopCreationThreadPool.shutdown(); } - - for (Shop shop : shopUtils.getShops()) { - shopUtils.removeShop(shop, false); - debug("Removed shop (#" + shop.getID() + ")"); - } + + shopUtils.removeShops(); + debug("Removed shops"); if (database != null && database.isInitialized()) { if (database instanceof SQLite) { diff --git a/src/main/java/de/epiceric/shopchest/utils/ShopUtils.java b/src/main/java/de/epiceric/shopchest/utils/ShopUtils.java index 46937e0..88960ee 100644 --- a/src/main/java/de/epiceric/shopchest/utils/ShopUtils.java +++ b/src/main/java/de/epiceric/shopchest/utils/ShopUtils.java @@ -132,6 +132,20 @@ public class ShopUtils { addShop(shop, addToDatabase, null); } + /** + * Removes (i.e. unloads) all currently loaded shops + */ + public void removeShops() { + shopLocation.forEach((location, shop) -> { + if (!shop.isCreated()) return; + + plugin.debug("Removing shop " + shop.getID()); + shop.removeItem(); + shop.removeHologram(); + }); + shopLocation.clear(); + } + /** Remove a shop. May not work properly if double chest doesn't exist! * @param shop Shop to remove * @param removeFromDatabase Whether the shop should also be removed from the database