Fixed useless player arg for reset commands

This commit is contained in:
Jules 2025-11-02 11:52:49 +01:00
parent 60b958f986
commit 3228428cd1
4 changed files with 20 additions and 13 deletions

View File

@ -820,6 +820,12 @@ public class PlayerData extends SynchronizedDataHolder implements OfflinePlayerD
return classSlots.get(profess); return classSlots.get(profess);
} }
/**
* Saves information of a class
*
* @param profess Class
* @param info Class player progress
*/
public void applyClassInfo(PlayerClass profess, SavedClassInformation info) { public void applyClassInfo(PlayerClass profess, SavedClassInformation info) {
classSlots.put(profess.getId(), info); classSlots.put(profess.getId(), info);
} }
@ -1216,19 +1222,25 @@ public class PlayerData extends SynchronizedDataHolder implements OfflinePlayerD
return getAttributes().mapPoints(); return getAttributes().mapPoints();
} }
public int getSkillLevel(RegisteredSkill skill) { public int getSkillLevel(@NotNull RegisteredSkill skill) {
return skills.getOrDefault(skill.getHandler().getId(), 1); return skills.getOrDefault(skill.getHandler().getId(), 1);
} }
public void setSkillLevel(RegisteredSkill skill, int level) { public void setSkillLevel(@NotNull RegisteredSkill skill, int level) {
setSkillLevel(skill.getHandler().getId(), level); setSkillLevel(skill.getHandler().getId(), level);
} }
public void setSkillLevel(String skill, int level) { public void setSkillLevel(@NotNull String skill, int level) {
skills.put(skill, level); if (level <= 1) skills.remove(skill);
else skills.put(skill, level);
} }
public void resetSkillLevel(String skill) { public void resetSkills() {
skills.clear();
while (hasSkillBound(0)) unbindSkill(0);
}
public void resetSkillLevel(@NotNull String skill) {
skills.remove(skill); skills.remove(skill);
} }

View File

@ -299,7 +299,7 @@ public class SavedClassInformation implements ClassDataContainer {
/* /*
* Resets information which much be reset after everything is saved. * Resets information which much be reset after everything is saved.
*/ */
player.mapSkillLevels().forEach((skill, level) -> player.resetSkillLevel(skill)); player.resetSkills();
for (PlayerAttribute attribute : MMOCore.plugin.attributeManager.getAll()) { for (PlayerAttribute attribute : MMOCore.plugin.attributeManager.getAll()) {
attribute.resetAdvancement(player, false); attribute.resetAdvancement(player, false);
player.getAttributes().getInstance(attribute).setBase(0); player.getAttributes().getInstance(attribute).setBase(0);

View File

@ -97,7 +97,7 @@ public class PlayerStats {
} }
}); });
// Updates the player's unbindable CLASS passive skills // Updates the player's UNBINDABLE PASSIVE (== PERMANENT) skills
final PassiveSkillMap skillMap = data.getMMOPlayerData().getPassiveSkillMap(); final PassiveSkillMap skillMap = data.getMMOPlayerData().getPassiveSkillMap();
skillMap.removeModifiers("MMOCorePermanentSkill"); skillMap.removeModifiers("MMOCorePermanentSkill");
for (ClassSkill skill : data.getProfess().getSkills()) for (ClassSkill skill : data.getProfess().getSkills())

View File

@ -104,8 +104,6 @@ public class ResetCommandTreeNode extends CommandTreeNode {
static class ResetSkillsCommandTreeNode extends AbstractResetNode { static class ResetSkillsCommandTreeNode extends AbstractResetNode {
public ResetSkillsCommandTreeNode(CommandTreeNode parent) { public ResetSkillsCommandTreeNode(CommandTreeNode parent) {
super(parent, "skills"); super(parent, "skills");
addArgument(Argument.PLAYER);
} }
@Override @Override
@ -117,8 +115,7 @@ public class ResetCommandTreeNode extends CommandTreeNode {
} }
static void resetSkills(@NotNull PlayerData data) { static void resetSkills(@NotNull PlayerData data) {
data.mapSkillLevels().forEach((skill, ignored) -> data.resetSkillLevel(skill)); data.resetSkills();
while (data.hasSkillBound(0)) data.unbindSkill(0);
data.setUnlockedItems(new HashSet<>()); // TODO class-specific unlockables etc. data.setUnlockedItems(new HashSet<>()); // TODO class-specific unlockables etc.
} }
} }
@ -126,8 +123,6 @@ public class ResetCommandTreeNode extends CommandTreeNode {
static class ResetSkillTreesCommandTreeNode extends AbstractResetNode { static class ResetSkillTreesCommandTreeNode extends AbstractResetNode {
public ResetSkillTreesCommandTreeNode(CommandTreeNode parent) { public ResetSkillTreesCommandTreeNode(CommandTreeNode parent) {
super(parent, "skill-trees"); super(parent, "skill-trees");
addArgument(Argument.PLAYER);
} }
@Override @Override