Player data registry is now instantly flushed on logout

This commit is contained in:
Indyuce 2022-10-14 13:37:27 +02:00
parent a3c78d5352
commit dcbd92e2ee

View File

@ -2,10 +2,10 @@ package net.Indyuce.mmocore.manager.data;
import io.lumine.mythic.lib.api.player.MMOPlayerData; import io.lumine.mythic.lib.api.player.MMOPlayerData;
import net.Indyuce.mmocore.MMOCore; import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.event.AsyncPlayerDataLoadEvent; import net.Indyuce.mmocore.api.event.AsyncPlayerDataLoadEvent;
import net.Indyuce.mmocore.api.event.PlayerDataLoadEvent; import net.Indyuce.mmocore.api.event.PlayerDataLoadEvent;
import net.Indyuce.mmocore.api.player.OfflinePlayerData; import net.Indyuce.mmocore.api.player.OfflinePlayerData;
import net.Indyuce.mmocore.api.player.PlayerData;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer; import org.bukkit.OfflinePlayer;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
@ -45,19 +45,11 @@ public abstract class PlayerDataManager {
// Save data async if required // Save data async if required
if (playerData.isFullyLoaded()) if (playerData.isFullyLoaded())
Bukkit.getScheduler().runTaskAsynchronously(MMOCore.plugin, () -> { Bukkit.getScheduler().runTaskAsynchronously(MMOCore.plugin, () -> saveData(playerData));
saveData(playerData);
// Unregister once the data was saved // Close and unregister data instantly if no error occured
playerData.close(); playerData.close();
data.remove(playerData.getUniqueId()); data.remove(playerData.getUniqueId());
});
// Just unregister data without saving
else {
playerData.close();
data.remove(playerData.getUniqueId());
}
} }
/** /**