initiate and disable storage providers.
This commit is contained in:
@@ -2,12 +2,11 @@ package com.alttd.essentia.storage;
|
||||
|
||||
import com.alttd.essentia.EssentiaPlugin;
|
||||
import com.alttd.essentia.storage.mysql.SQLStorageProvider;
|
||||
import com.alttd.essentia.storage.sqlite.SQLiteStorageProvider;
|
||||
import com.alttd.essentia.storage.yaml.YamlStorageProvider;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
public abstract class StorageManager {
|
||||
public class StorageManager {
|
||||
|
||||
protected final EssentiaPlugin plugin;
|
||||
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
package com.alttd.essentia.storage;
|
||||
|
||||
import com.alttd.essentia.EssentiaPlugin;
|
||||
import com.alttd.essentia.configuration.Config;
|
||||
import com.alttd.essentia.user.EssentiaUser;
|
||||
import com.alttd.essentia.user.User;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.UUID;
|
||||
@@ -10,6 +12,7 @@ import java.util.UUID;
|
||||
public abstract class StorageProvider {
|
||||
|
||||
protected final EssentiaPlugin plugin;
|
||||
private AutoSaveTask autoSaveTask;
|
||||
|
||||
public StorageProvider(EssentiaPlugin plugin) {
|
||||
this.plugin = plugin;
|
||||
@@ -24,9 +27,41 @@ public abstract class StorageProvider {
|
||||
return user;
|
||||
}
|
||||
|
||||
public void startAutoSaving() {
|
||||
if (!Config.AUTO_SAVE)
|
||||
return;
|
||||
|
||||
autoSaveTask = new AutoSaveTask();
|
||||
int delay = Config.AUTO_SAVE_DELAY * 20;
|
||||
autoSaveTask.runTaskTimerAsynchronously(plugin, delay, delay);
|
||||
}
|
||||
|
||||
public void disable() {
|
||||
// Override if some extra steps are required when disabling the plugin.
|
||||
}
|
||||
|
||||
protected abstract EssentiaUser load(UUID uuid);
|
||||
|
||||
public abstract void save(@NotNull User user) throws Exception;
|
||||
|
||||
public abstract void delete(UUID uuid) throws Exception;
|
||||
|
||||
private class AutoSaveTask extends BukkitRunnable {
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
for (User user : plugin.userManager().getUsers().values()) {
|
||||
try {
|
||||
if (user.saving()) {
|
||||
continue;
|
||||
}
|
||||
save(user);
|
||||
} catch (Exception e) {
|
||||
user.saving(false);
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -87,7 +87,8 @@ public class SQLStorageProvider extends StorageProvider {
|
||||
}
|
||||
}
|
||||
|
||||
public void unload() {
|
||||
@Override
|
||||
public void disable() {
|
||||
if (databaseQueue != null && !databaseQueue.isCancelled()) {
|
||||
databaseQueue.cancel();
|
||||
databaseQueue.runTaskQueue();
|
||||
|
||||
Reference in New Issue
Block a user