Do not expose saving tasks to the api and change the way saving data is handled.

This commit is contained in:
Len
2024-06-18 10:40:31 +02:00
parent d1872f6e95
commit f6dd31ba33
11 changed files with 62 additions and 46 deletions
@@ -1,5 +1,6 @@
package com.alttd.essentia.user;
import com.alttd.essentia.EssentiaPlugin;
import org.bukkit.entity.Player;
import java.util.Map;
@@ -8,8 +9,14 @@ import java.util.concurrent.ConcurrentHashMap;
public class EssentiaUserManager implements UserManager {
protected final EssentiaPlugin plugin;
private final Map<UUID, User> essentiaPlayers = new ConcurrentHashMap<>();
public EssentiaUserManager(EssentiaPlugin plugin) {
this.plugin = plugin;
}
@Override
public User getUser(Player player) {
return getUser(player.getUniqueId());
@@ -50,4 +57,21 @@ public class EssentiaUserManager implements UserManager {
return new EssentiaUser.Builder().uuid(uuid).build();
}
@Override
public void saveAllUsers() {
for (User user : getUsers().values()) {
if (user instanceof EssentiaUser essentiaUser) {
try {
if (essentiaUser.saving() || !essentiaUser.needsSaving()) {
continue;
}
plugin.storageProvider().startSaving(essentiaUser);
} catch(Exception e){
essentiaUser.saving(false);
e.printStackTrace();
}
}
}
}
}