Made unlockedItems class based.

This commit is contained in:
Ka0rX 2023-03-21 20:58:50 +01:00
parent bbab36ca1b
commit a7231d948e

View File

@ -6,15 +6,17 @@ import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.player.attribute.PlayerAttribute; import net.Indyuce.mmocore.api.player.attribute.PlayerAttribute;
import net.Indyuce.mmocore.player.ClassDataContainer; import net.Indyuce.mmocore.player.ClassDataContainer;
import net.Indyuce.mmocore.skill.ClassSkill;
import net.Indyuce.mmocore.skill.RegisteredSkill; import net.Indyuce.mmocore.skill.RegisteredSkill;
import net.Indyuce.mmocore.skilltree.SkillTreeNode; import net.Indyuce.mmocore.skilltree.SkillTreeNode;
import net.Indyuce.mmocore.skilltree.tree.SkillTree; import net.Indyuce.mmocore.skilltree.tree.SkillTree;
import org.bukkit.attribute.Attribute; import org.bukkit.attribute.Attribute;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
import java.util.*; import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Map.Entry; import java.util.Map.Entry;
import java.util.Set;
public class SavedClassInformation { public class SavedClassInformation {
private final int level, skillPoints, attributePoints, attributeReallocationPoints, skillTreeReallocationPoints, skillReallocationPoints; private final int level, skillPoints, attributePoints, attributeReallocationPoints, skillTreeReallocationPoints, skillReallocationPoints;
@ -25,7 +27,7 @@ public class SavedClassInformation {
private final Map<String, Integer> nodeLevels = new HashMap<>(); private final Map<String, Integer> nodeLevels = new HashMap<>();
private final Map<String, Integer> nodeTimesClaimed = new HashMap<>(); private final Map<String, Integer> nodeTimesClaimed = new HashMap<>();
private final Map<Integer, String> boundSkills = new HashMap<>(); private final Map<Integer, String> boundSkills = new HashMap<>();
private final Set<String> unlockedItems= new HashSet<>();
/** /**
* Used by YAML storage * Used by YAML storage
*/ */
@ -60,6 +62,7 @@ public class SavedClassInformation {
if (config.isConfigurationSection("bound-skills")) if (config.isConfigurationSection("bound-skills"))
config.getConfigurationSection("bound-skills").getKeys(false) config.getConfigurationSection("bound-skills").getKeys(false)
.forEach(key -> boundSkills.put(Integer.parseInt(key), config.getString("bound-skills." + key))); .forEach(key -> boundSkills.put(Integer.parseInt(key), config.getString("bound-skills." + key)));
unlockedItems.addAll(config.getStringList("unlocked-items"));
} }
/** /**
@ -96,6 +99,11 @@ public class SavedClassInformation {
if (json.has("bound-skills") && json.get("bound-skills").isJsonObject()) if (json.has("bound-skills") && json.get("bound-skills").isJsonObject())
for (Entry<String, JsonElement> entry : json.getAsJsonObject("bound-skills").entrySet()) for (Entry<String, JsonElement> entry : json.getAsJsonObject("bound-skills").entrySet())
boundSkills.put(Integer.parseInt(entry.getKey()), entry.getValue().getAsString()); boundSkills.put(Integer.parseInt(entry.getKey()), entry.getValue().getAsString());
if(json.has("unlocked-items")){
for(JsonElement unlockedItem: json.get("unlocked-items").getAsJsonArray()){
unlockedItems.add(unlockedItem.getAsString());
}
}
} }
public SavedClassInformation(ClassDataContainer data) { public SavedClassInformation(ClassDataContainer data) {
@ -115,8 +123,8 @@ public class SavedClassInformation {
data.mapSkillTreePoints().forEach((key, val) -> skillTreePoints.put(key, val)); data.mapSkillTreePoints().forEach((key, val) -> skillTreePoints.put(key, val));
data.getNodeLevels().forEach((node, level) -> nodeLevels.put(node.getFullId(), level)); data.getNodeLevels().forEach((node, level) -> nodeLevels.put(node.getFullId(), level));
data.getNodeTimesClaimed().forEach((key, val) -> nodeTimesClaimed.put(key, val)); data.getNodeTimesClaimed().forEach((key, val) -> nodeTimesClaimed.put(key, val));
data.mapBoundSkills().forEach((slot, skill) -> boundSkills.put(slot, skill)); data.mapBoundSkills().forEach((slot, skill) -> boundSkills.put(slot, skill));
data.getUnlockedItems().forEach(item->unlockedItems.add(item));
} }
public int getLevel() { public int getLevel() {
@ -203,6 +211,10 @@ public class SavedClassInformation {
return stamina; return stamina;
} }
public Set<String> getUnlockedItems() {
return unlockedItems;
}
public Set<String> getAttributeKeys() { public Set<String> getAttributeKeys() {
return attributeLevels.keySet(); return attributeLevels.keySet();
} }
@ -265,6 +277,7 @@ public class SavedClassInformation {
player.setAttributeReallocationPoints(attributeReallocationPoints); player.setAttributeReallocationPoints(attributeReallocationPoints);
player.setSkillTreeReallocationPoints(skillTreeReallocationPoints); player.setSkillTreeReallocationPoints(skillTreeReallocationPoints);
player.setSkillReallocationPoints(skillReallocationPoints); player.setSkillReallocationPoints(skillReallocationPoints);
player.setUnlockedItems(unlockedItems);
for (int slot : boundSkills.keySet()) for (int slot : boundSkills.keySet())
player.bindSkill(slot, profess.getSkill(boundSkills.get(slot))); player.bindSkill(slot, profess.getSkill(boundSkills.get(slot)));