No world access on plugin disable

This commit is contained in:
Eric 2021-01-01 19:00:32 +01:00
parent 4fc8194ceb
commit 0ab51482d2
2 changed files with 17 additions and 5 deletions

View File

@ -255,11 +255,9 @@ public class ShopChest extends JavaPlugin {
if (shopCreationThreadPool != null) { if (shopCreationThreadPool != null) {
shopCreationThreadPool.shutdown(); shopCreationThreadPool.shutdown();
} }
for (Shop shop : shopUtils.getShops()) { shopUtils.removeShops();
shopUtils.removeShop(shop, false); debug("Removed shops");
debug("Removed shop (#" + shop.getID() + ")");
}
if (database != null && database.isInitialized()) { if (database != null && database.isInitialized()) {
if (database instanceof SQLite) { if (database instanceof SQLite) {

View File

@ -132,6 +132,20 @@ public class ShopUtils {
addShop(shop, addToDatabase, null); 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! /** Remove a shop. May not work properly if double chest doesn't exist!
* @param shop Shop to remove * @param shop Shop to remove
* @param removeFromDatabase Whether the shop should also be removed from the database * @param removeFromDatabase Whether the shop should also be removed from the database