mirror of
https://github.com/DieReicheErethons/Brewery.git
synced 2024-11-14 10:15:38 +01:00
When unloading world, only save if it has data
This commit is contained in:
parent
e28cd72af9
commit
9271d82eda
@ -535,6 +535,13 @@ public class BCauldron {
|
||||
return bcauldrons.remove(block) != null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Are any Cauldrons in that World
|
||||
*/
|
||||
public static boolean hasDataInWorld(String name) {
|
||||
return bcauldrons.keySet().stream().anyMatch(block -> block.getWorld().getName().equals(name));
|
||||
}
|
||||
|
||||
// unloads cauldrons that are in a unloading world
|
||||
// as they were written to file just before, this is safe to do
|
||||
public static void onUnload(String name) {
|
||||
|
@ -472,6 +472,13 @@ public class Barrel implements InventoryHolder {
|
||||
return body.getBrokenBlock(force);
|
||||
}
|
||||
|
||||
/**
|
||||
* Are any Barrels in that World
|
||||
*/
|
||||
public static boolean hasDataInWorld(String name) {
|
||||
return barrels.stream().anyMatch(barrel -> barrel.spigot.getWorld().getName().equals(name));
|
||||
}
|
||||
|
||||
/**
|
||||
* unloads barrels that are in a unloading world
|
||||
*/
|
||||
|
@ -453,7 +453,7 @@ public class BData {
|
||||
// Increment the Data Mutex if it is not -1
|
||||
while (BData.dataMutex.updateAndGet(i -> i >= 0 ? i + 1 : i) <= 0) {
|
||||
wait++;
|
||||
if (wait > 60) {
|
||||
if (!BConfig.loadDataAsync || wait > 60) {
|
||||
P.p.errorLog("Could not load World Data, Mutex: " + BData.dataMutex.get());
|
||||
return false;
|
||||
}
|
||||
|
@ -45,10 +45,13 @@ public class WorldListener implements Listener {
|
||||
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onWorldUnload(WorldUnloadEvent event) {
|
||||
DataSave.save(true);
|
||||
String worldName = event.getWorld().getName();
|
||||
Barrel.onUnload(worldName);
|
||||
BCauldron.onUnload(worldName);
|
||||
if (Barrel.hasDataInWorld(worldName) || BCauldron.hasDataInWorld(worldName)) {
|
||||
P.p.log("Saving due to data in unloading world");
|
||||
DataSave.save(true);
|
||||
Barrel.onUnload(worldName);
|
||||
BCauldron.onUnload(worldName);
|
||||
}
|
||||
Wakeup.onUnload(worldName);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user