Fixed /mmocore admin exportdata

This commit is contained in:
Jules 2023-04-07 16:34:41 +02:00
parent c94795fc89
commit 2a4e509a8b
4 changed files with 22 additions and 12 deletions

View File

@ -374,6 +374,8 @@ public class PlayerData extends OfflinePlayerData implements Closable, Experienc
@Override @Override
public void close() { public void close() {
health = getPlayer().getHealth();
// Close combat handler // Close combat handler
combat.close(); combat.close();

View File

@ -45,13 +45,13 @@ public abstract class PlayerDataManager {
*/ */
public void unregisterSafe(PlayerData playerData) { public void unregisterSafe(PlayerData playerData) {
// Save data async if required
if (playerData.isFullyLoaded())
Bukkit.getScheduler().runTaskAsynchronously(MMOCore.plugin, () -> saveData(playerData, true));
// Close and unregister data instantly if no error occured // Close and unregister data instantly if no error occured
playerData.close(); playerData.close();
data.remove(playerData.getUniqueId()); data.remove(playerData.getUniqueId());
// Save data async if required
if (playerData.isFullyLoaded())
Bukkit.getScheduler().runTaskAsynchronously(MMOCore.plugin, () -> saveData(playerData, true));
} }
/** /**

View File

@ -122,13 +122,17 @@ public class MMOCoreDataSynchronizer extends DataSynchronizer {
* These should be loaded after to make sure that the * These should be loaded after to make sure that the
* MAX_MANA, MAX_STAMINA & MAX_STELLIUM stats are already loaded. * MAX_MANA, MAX_STAMINA & MAX_STELLIUM stats are already loaded.
*/ */
data.setHealth(result.getDouble("health"));
data.setMana(result.getDouble("mana")); data.setMana(result.getDouble("mana"));
data.setStamina(result.getDouble("stamina")); data.setStamina(result.getDouble("stamina"));
data.setStellium(result.getDouble("stellium")); data.setStellium(result.getDouble("stellium"));
double health = result.getDouble("health");
if (data.isOnline()) {
double health = data.getHealth();
health = health == 0 ? data.getPlayer().getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue() : health; health = health == 0 ? data.getPlayer().getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue() : health;
health = Math.max(Math.min(health, data.getPlayer().getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue()), 0); health = Math.max(Math.min(health, data.getPlayer().getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue()), 0);
data.getPlayer().setHealth(health); data.getPlayer().setHealth(health);
}
UtilityMethods.debug(MMOCore.plugin, "SQL", String.format("{ class: %s, level: %d }", data.getProfess().getId(), data.getLevel())); UtilityMethods.debug(MMOCore.plugin, "SQL", String.format("{ class: %s, level: %d }", data.getProfess().getId(), data.getLevel()));
data.setFullyLoaded(); data.setFullyLoaded();

View File

@ -120,13 +120,17 @@ public class YAMLPlayerDataManager extends PlayerDataManager {
* These should be loaded after to make sure that the * These should be loaded after to make sure that the
* MAX_MANA, MAX_STAMINA & MAX_STELLIUM stats are already loaded. * MAX_MANA, MAX_STAMINA & MAX_STELLIUM stats are already loaded.
*/ */
data.setHealth(config.getDouble("health"));
data.setMana(config.contains("mana") ? config.getDouble("mana") : data.getStats().getStat("MAX_MANA")); data.setMana(config.contains("mana") ? config.getDouble("mana") : data.getStats().getStat("MAX_MANA"));
data.setStamina(config.contains("stamina") ? config.getDouble("stamina") : data.getStats().getStat("MAX_STAMINA")); data.setStamina(config.contains("stamina") ? config.getDouble("stamina") : data.getStats().getStat("MAX_STAMINA"));
data.setStellium(config.contains("stellium") ? config.getDouble("stellium") : data.getStats().getStat("MAX_STELLIUM")); data.setStellium(config.contains("stellium") ? config.getDouble("stellium") : data.getStats().getStat("MAX_STELLIUM"));
if (data.isOnline()) {
double health = config.contains("health") ? config.getDouble("health") : data.getStats().getStat("MAX_HEALTH"); double health = config.contains("health") ? config.getDouble("health") : data.getStats().getStat("MAX_HEALTH");
health = health == 0 ? 20 : health; health = health == 0 ? 20 : health;
health = Math.min(health, data.getPlayer().getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue()); health = Math.min(health, data.getPlayer().getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue());
data.getPlayer().setHealth(health); data.getPlayer().setHealth(health);
}
data.setFullyLoaded(); data.setFullyLoaded();
} }