forked from Upstream/mmocore
Handling of unlockedItems on MySQLPlayerDataManager when loading/saving playerData.
This commit is contained in:
parent
1deed752f4
commit
713146d9dd
@ -1,9 +1,6 @@
|
|||||||
package net.Indyuce.mmocore.manager.data.mysql;
|
package net.Indyuce.mmocore.manager.data.mysql;
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.*;
|
||||||
import com.google.gson.JsonElement;
|
|
||||||
import com.google.gson.JsonObject;
|
|
||||||
import com.google.gson.JsonParser;
|
|
||||||
import io.lumine.mythic.lib.UtilityMethods;
|
import io.lumine.mythic.lib.UtilityMethods;
|
||||||
import io.lumine.mythic.lib.sql.DataSynchronizer;
|
import io.lumine.mythic.lib.sql.DataSynchronizer;
|
||||||
import net.Indyuce.mmocore.MMOCore;
|
import net.Indyuce.mmocore.MMOCore;
|
||||||
@ -20,8 +17,7 @@ import org.jetbrains.annotations.Nullable;
|
|||||||
|
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.util.Map;
|
import java.util.*;
|
||||||
import java.util.UUID;
|
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
public class MMOCoreDataSynchronizer extends DataSynchronizer {
|
public class MMOCoreDataSynchronizer extends DataSynchronizer {
|
||||||
@ -74,8 +70,11 @@ public class MMOCoreDataSynchronizer extends DataSynchronizer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
data.setupSkillTree();
|
data.setupSkillTree();
|
||||||
|
Set<String> unlockedItems = new HashSet<>();
|
||||||
|
JsonArray unlockedItemsArray = new JsonParser().parse(result.getString("unlocked_items")).getAsJsonArray();
|
||||||
|
for (JsonElement item : unlockedItemsArray)
|
||||||
|
unlockedItems.add(item.getAsString());
|
||||||
|
data.setUnlockedItems(unlockedItems);
|
||||||
if (!isEmpty(result.getString("guild"))) {
|
if (!isEmpty(result.getString("guild"))) {
|
||||||
Guild guild = MMOCore.plugin.dataProvider.getGuildManager().getGuild(result.getString("guild"));
|
Guild guild = MMOCore.plugin.dataProvider.getGuildManager().getGuild(result.getString("guild"));
|
||||||
data.setGuild(guild.hasMember(data.getUniqueId()) ? guild : null);
|
data.setGuild(guild.hasMember(data.getUniqueId()) ? guild : null);
|
||||||
|
@ -21,6 +21,7 @@ public class MySQLDataProvider extends MMODataSource implements DataProvider {
|
|||||||
"skill_tree_reallocation_points", "INT(11)",
|
"skill_tree_reallocation_points", "INT(11)",
|
||||||
"skill_tree_points", "LONGTEXT",
|
"skill_tree_points", "LONGTEXT",
|
||||||
"skill_tree_levels", "LONGTEXT",
|
"skill_tree_levels", "LONGTEXT",
|
||||||
|
"unlocked_items","LONGTEXT",
|
||||||
"mana","FLOAT",
|
"mana","FLOAT",
|
||||||
"stamina","FLOAT",
|
"stamina","FLOAT",
|
||||||
"stellium","FLOAT"};
|
"stellium","FLOAT"};
|
||||||
@ -56,6 +57,7 @@ public class MySQLDataProvider extends MMODataSource implements DataProvider {
|
|||||||
"friends LONGTEXT," +
|
"friends LONGTEXT," +
|
||||||
"skills LONGTEXT," +
|
"skills LONGTEXT," +
|
||||||
"bound_skills LONGTEXT," +
|
"bound_skills LONGTEXT," +
|
||||||
|
"unlocked_items LONGTEXT," +
|
||||||
"class_info LONGTEXT," +
|
"class_info LONGTEXT," +
|
||||||
"is_saved TINYINT," +
|
"is_saved TINYINT," +
|
||||||
"PRIMARY KEY (uuid));");
|
"PRIMARY KEY (uuid));");
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package net.Indyuce.mmocore.manager.data.mysql;
|
package net.Indyuce.mmocore.manager.data.mysql;
|
||||||
|
|
||||||
|
import com.google.gson.JsonArray;
|
||||||
import com.google.gson.JsonObject;
|
import com.google.gson.JsonObject;
|
||||||
import io.lumine.mythic.lib.UtilityMethods;
|
import io.lumine.mythic.lib.UtilityMethods;
|
||||||
import net.Indyuce.mmocore.MMOCore;
|
import net.Indyuce.mmocore.MMOCore;
|
||||||
@ -54,7 +55,7 @@ public class MySQLPlayerDataManager extends PlayerDataManager {
|
|||||||
updater.addData("guild", data.hasGuild() ? data.getGuild().getId() : null);
|
updater.addData("guild", data.hasGuild() ? data.getGuild().getId() : null);
|
||||||
updater.addJSONArray("waypoints", data.getWaypoints());
|
updater.addJSONArray("waypoints", data.getWaypoints());
|
||||||
updater.addJSONArray("friends", data.getFriends().stream().map(UUID::toString).collect(Collectors.toList()));
|
updater.addJSONArray("friends", data.getFriends().stream().map(UUID::toString).collect(Collectors.toList()));
|
||||||
updater.addJSONObject("bound_skills",data.mapBoundSkills().entrySet());
|
updater.addJSONObject("bound_skills", data.mapBoundSkills().entrySet());
|
||||||
updater.addJSONObject("skills", data.mapSkillLevels().entrySet());
|
updater.addJSONObject("skills", data.mapSkillLevels().entrySet());
|
||||||
updater.addJSONObject("times_claimed", data.getItemClaims().entrySet());
|
updater.addJSONObject("times_claimed", data.getItemClaims().entrySet());
|
||||||
updater.addJSONObject("skill_tree_points", data.mapSkillTreePoints().entrySet());
|
updater.addJSONObject("skill_tree_points", data.mapSkillTreePoints().entrySet());
|
||||||
@ -63,6 +64,7 @@ public class MySQLPlayerDataManager extends PlayerDataManager {
|
|||||||
updater.addData("professions", data.getCollectionSkills().toJsonString());
|
updater.addData("professions", data.getCollectionSkills().toJsonString());
|
||||||
updater.addData("quests", data.getQuestData().toJsonString());
|
updater.addData("quests", data.getQuestData().toJsonString());
|
||||||
updater.addData("class_info", createClassInfoData(data).toString());
|
updater.addData("class_info", createClassInfoData(data).toString());
|
||||||
|
updater.addJSONArray("unlocked_items", data.getUnlockedItems());
|
||||||
if (logout)
|
if (logout)
|
||||||
updater.addData("is_saved", 1);
|
updater.addData("is_saved", 1);
|
||||||
|
|
||||||
@ -88,7 +90,11 @@ public class MySQLPlayerDataManager extends PlayerDataManager {
|
|||||||
classinfo.addProperty("mana", info.getMana());
|
classinfo.addProperty("mana", info.getMana());
|
||||||
classinfo.addProperty("stamina", info.getStamina());
|
classinfo.addProperty("stamina", info.getStamina());
|
||||||
classinfo.addProperty("stellium", info.getStellium());
|
classinfo.addProperty("stellium", info.getStellium());
|
||||||
|
JsonArray array = new JsonArray();
|
||||||
|
for (String unlockedItem : playerData.getUnlockedItems()) {
|
||||||
|
array.add(unlockedItem);
|
||||||
|
}
|
||||||
|
classinfo.add("unlocked-items", array);
|
||||||
JsonObject skillinfo = new JsonObject();
|
JsonObject skillinfo = new JsonObject();
|
||||||
for (String skill : info.getSkillKeys())
|
for (String skill : info.getSkillKeys())
|
||||||
skillinfo.addProperty(skill, info.getSkillLevel(skill));
|
skillinfo.addProperty(skill, info.getSkillLevel(skill));
|
||||||
@ -109,8 +115,8 @@ public class MySQLPlayerDataManager extends PlayerDataManager {
|
|||||||
classinfo.add("skill-tree-points", skillTreePointsInfo);
|
classinfo.add("skill-tree-points", skillTreePointsInfo);
|
||||||
|
|
||||||
JsonObject boundSkillInfo = new JsonObject();
|
JsonObject boundSkillInfo = new JsonObject();
|
||||||
for(int slot:info.getBoundSkills().keySet())
|
for (int slot : info.getBoundSkills().keySet())
|
||||||
boundSkillInfo.addProperty(slot+"",info.getBoundSkills().get(slot));
|
boundSkillInfo.addProperty(slot + "", info.getBoundSkills().get(slot));
|
||||||
classinfo.add("bound-skills", boundSkillInfo);
|
classinfo.add("bound-skills", boundSkillInfo);
|
||||||
|
|
||||||
json.add(c, classinfo);
|
json.add(c, classinfo);
|
||||||
@ -165,8 +171,8 @@ public class MySQLPlayerDataManager extends PlayerDataManager {
|
|||||||
@Override
|
@Override
|
||||||
public void removeFriend(UUID uuid) {
|
public void removeFriend(UUID uuid) {
|
||||||
// TODO recode
|
// TODO recode
|
||||||
// friends.remove(uuid);
|
// friends.remove(uuid);
|
||||||
// new PlayerDataTableUpdater(provider, uuid).updateData("friends", friends.stream().map(UUID::toString).collect(Collectors.toList()));
|
// new PlayerDataTableUpdater(provider, uuid).updateData("friends", friends.stream().map(UUID::toString).collect(Collectors.toList()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
Reference in New Issue
Block a user