This commit is contained in:
Jules 2023-03-03 15:22:54 +01:00
parent 46ea648414
commit 5e73e41fa8

View File

@ -11,6 +11,7 @@ import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer; import org.bukkit.OfflinePlayer;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.*; import java.util.*;
@ -79,8 +80,11 @@ public abstract class PlayerDataManager {
public PlayerData setup(UUID uniqueId) { public PlayerData setup(UUID uniqueId) {
// Load player data if it does not exist // Load player data if it does not exist
if (!data.containsKey(uniqueId)) { final @Nullable PlayerData current = data.get(uniqueId);
PlayerData newData = new PlayerData(MMOPlayerData.get(uniqueId)); if (current != null)
return current;
final PlayerData newData = new PlayerData(MMOPlayerData.get(uniqueId));
// Schedule async data loading // Schedule async data loading
Bukkit.getScheduler().runTaskAsynchronously(MMOCore.plugin, () -> { Bukkit.getScheduler().runTaskAsynchronously(MMOCore.plugin, () -> {
@ -90,15 +94,11 @@ public abstract class PlayerDataManager {
Bukkit.getScheduler().runTask(MMOCore.plugin, () -> Bukkit.getPluginManager().callEvent(new PlayerDataLoadEvent(newData))); Bukkit.getScheduler().runTask(MMOCore.plugin, () -> Bukkit.getPluginManager().callEvent(new PlayerDataLoadEvent(newData)));
}); });
// Update data map // Update data map and return
data.put(uniqueId, newData); data.put(uniqueId, newData);
return newData; return newData;
} }
return data.get(uniqueId);
}
public DefaultPlayerData getDefaultData() { public DefaultPlayerData getDefaultData() {
return defaultData; return defaultData;
} }