SQL & Yaml data loading/saving.

This commit is contained in:
Ka0rX 2023-07-19 21:19:26 +01:00
parent fd436a7953
commit fe1507925c
3 changed files with 14 additions and 1 deletions

View File

@ -94,6 +94,9 @@ public class MMOCoreDataSynchronizer extends SQLDataSynchronizer<PlayerData> {
MMOCoreUtils.jsonArrayToList(result.getString("friends")).forEach(str -> getData().getFriends().add(UUID.fromString(str)));
if (!isEmpty(result.getString("last_spawn_point")))
getData().setLastSpawnPointContext(new SpawnPointContext(new JsonParser().parseString(result.getString("last_spawn_point")).getAsJsonObject()));
if (!isEmpty(result.getString("last_used_spawn_point")))
getData().setLastUsedSpawnPointContext(new SpawnPointContext(new JsonParser().parseString(result.getString("last_spawn_point")).getAsJsonObject()));
getData().setShouldTeleportWhenJoin(result.getBoolean("should_teleport_when_join"));
getData().setupSpawnPoint();

View File

@ -34,6 +34,7 @@ public class SQLDataHandler extends SQLSynchronizedDataHandler<PlayerData, Offli
"stamina", "FLOAT",
"stellium", "FLOAT",
"last_spawn_point", "LONGTEXT",
"last_used_spawn_point", "LONGTEXT",
"spawn_when_join", "TINYINT"};
@Override
@ -68,6 +69,7 @@ public class SQLDataHandler extends SQLSynchronizedDataHandler<PlayerData, Offli
"unlocked_items LONGTEXT," +
"class_info LONGTEXT," +
"last_spawn_point LONGTEXT," +
"last_used_spawn_point LONGTEXT," +
"spawn_when_join TINYINT," +
"is_saved TINYINT," +
"PRIMARY KEY (uuid));");
@ -125,6 +127,7 @@ public class SQLDataHandler extends SQLSynchronizedDataHandler<PlayerData, Offli
updater.addData("quests", data.getQuestData().toJsonString());
updater.addData("class_info", createClassInfoData(data).toString());
updater.addData("last_spawn_point", data.getLastSpawnPointContext().toJson());
updater.addData("last_used_spawn_point", data.getLastUsedSpawnPointContext().toJson());
updater.addJSONArray("unlocked_items", data.getUnlockedItems());
if (!autosave)
updater.addData("is_saved", 1);

View File

@ -139,6 +139,10 @@ public class YAMLPlayerDataHandler extends YAMLSynchronizedDataHandler<PlayerDat
data.setLastSpawnPointContext(new SpawnPointContext(config.getString("last-spawn-point.id"),
Optional.ofNullable(config.getString("last-spawn-point.server"))));
}
if (config.contains("last-used-spawn-point")) {
data.setLastUsedSpawnPointContext(new SpawnPointContext(config.getString("last-used-spawn-point.id"),
Optional.ofNullable(config.getString("last-used-spawn-point.server"))));
}
data.setShouldTeleportWhenJoin(config.getBoolean("should-teleport-when-join", false));
data.setupSpawnPoint();
if (data.isOnline() && !data.getPlayer().isDead())
@ -178,7 +182,10 @@ public class YAMLPlayerDataHandler extends YAMLSynchronizedDataHandler<PlayerDat
config.set("attribute", null);
config.createSection("attribute");
data.getAttributes().save(config.getConfigurationSection("attribute"));
if (data.getLastSpawnPointContext() != null)
data.getLastUsedSpawnPointContext().save(config.createSection("last-used-spawn-point"));
if (data.getLastUsedSpawnPointContext() != null)
data.getLastUsedSpawnPointContext().save(config.createSection("last-used-spawn-point"));
config.set("profession", null);
config.createSection("profession");
data.getCollectionSkills().save(config.getConfigurationSection("profession"));