mirror of
https://gitlab.com/phoenix-dvpmt/mmocore.git
synced 2025-02-02 11:21:22 +01:00
SQL fix
This commit is contained in:
parent
c1a231e8e1
commit
fa6809b483
@ -91,7 +91,7 @@ public class ExportDataTreeNode extends CommandTreeNode {
|
||||
MMOCore.plugin.dataProvider.getDataManager().loadData(offlinePlayerData);
|
||||
|
||||
// Player data is loaded, now it gets saved through SQL
|
||||
sqlProvider.getDataManager().saveData(offlinePlayerData);
|
||||
sqlProvider.getDataManager().saveData(offlinePlayerData, true);
|
||||
} catch (RuntimeException exception) {
|
||||
errorCount++;
|
||||
exception.printStackTrace();
|
||||
|
@ -46,7 +46,7 @@ public abstract class PlayerDataManager {
|
||||
|
||||
// Save data async if required
|
||||
if (playerData.isFullyLoaded())
|
||||
Bukkit.getScheduler().runTaskAsynchronously(MMOCore.plugin, () -> saveData(playerData));
|
||||
Bukkit.getScheduler().runTaskAsynchronously(MMOCore.plugin, () -> saveData(playerData, true));
|
||||
|
||||
// Close and unregister data instantly if no error occured
|
||||
playerData.close();
|
||||
@ -122,9 +122,10 @@ public abstract class PlayerDataManager {
|
||||
* This method should always be called sync because it DOES register
|
||||
* an async task in case MySQL storage is used.
|
||||
*
|
||||
* @param data Player data to save
|
||||
* @param data Player data to save
|
||||
* @param logout When logging out, is_saved is switched back to 1. This parameter
|
||||
* must be turned off when auto-saving because the player doesn't
|
||||
* actually leave the server.
|
||||
*/
|
||||
public abstract void saveData(PlayerData data);
|
||||
|
||||
|
||||
public abstract void saveData(PlayerData data, boolean logout);
|
||||
}
|
||||
|
@ -137,12 +137,10 @@ public class MySQLPlayerDataManager extends PlayerDataManager {
|
||||
}
|
||||
|
||||
//We now change the saved status to false because the data on SQL won't be the same as in the RAM
|
||||
MySQLTableEditor sql = new MySQLTableEditor(MySQLTableEditor.Table.PLAYERDATA, data.getUniqueId(), provider);
|
||||
new MySQLTableEditor(MySQLTableEditor.Table.PLAYERDATA, data.getUniqueId(), provider).updateData("is_saved", 0);
|
||||
|
||||
//We set the saved status to false
|
||||
sql.updateData("is_saved", 0);
|
||||
this.cancel();
|
||||
data.setFullyLoaded();
|
||||
this.cancel();
|
||||
MMOCore.sqlDebug("Loaded saved data for: '" + data.getUniqueId() + "'!");
|
||||
MMOCore.sqlDebug(String.format("{ class: %s, level: %d }", data.getProfess().getId(), data.getLevel()));
|
||||
return;
|
||||
@ -160,6 +158,9 @@ public class MySQLPlayerDataManager extends PlayerDataManager {
|
||||
data.setExperience(0);
|
||||
data.getQuestData().updateBossBar();
|
||||
|
||||
//We now change the saved status to false because the data on SQL won't be the same as in the RAM
|
||||
new MySQLTableEditor(MySQLTableEditor.Table.PLAYERDATA, data.getUniqueId(), provider).updateData("is_saved", 0);
|
||||
|
||||
data.setFullyLoaded();
|
||||
this.cancel();
|
||||
MMOCore.sqlDebug("Loaded DEFAULT data for: '" + data.getUniqueId() + "' as no saved data was found.");
|
||||
@ -177,7 +178,7 @@ public class MySQLPlayerDataManager extends PlayerDataManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveData(PlayerData data) {
|
||||
public void saveData(PlayerData data, boolean logout) {
|
||||
|
||||
MySQLTableEditor sql = new MySQLTableEditor(MySQLTableEditor.Table.PLAYERDATA, data.getUniqueId(), provider);
|
||||
MMOCore.sqlDebug("Saving data for: '" + data.getUniqueId() + "'...");
|
||||
@ -211,7 +212,8 @@ public class MySQLPlayerDataManager extends PlayerDataManager {
|
||||
request.addData("professions", data.getCollectionSkills().toJsonString());
|
||||
request.addData("quests", data.getQuestData().toJsonString());
|
||||
request.addData("class_info", createClassInfoData(data).toString());
|
||||
request.addData("is_saved", 1);
|
||||
if (logout)
|
||||
request.addData("is_saved", 1);
|
||||
sql.updateData(request);
|
||||
MMOCore.sqlDebug("Saved data for: " + data.getUniqueId());
|
||||
MMOCore.sqlDebug(String.format("{ class: %s, level: %d }", data.getProfess().getId(), data.getLevel()));
|
||||
|
@ -121,7 +121,7 @@ public class YAMLPlayerDataManager extends PlayerDataManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveData(PlayerData data) {
|
||||
public void saveData(PlayerData data, boolean logout) {
|
||||
ConfigFile file = new ConfigFile(data.getUniqueId());
|
||||
FileConfiguration config = file.getConfig();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user