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);
}
/**
* Saves information of a class
*
* @param profess Class
* @param info Class player progress
*/
public void applyClassInfo(PlayerClass profess, SavedClassInformation info) {
classSlots.put(profess.getId(), info);
}
@ -1216,19 +1222,25 @@ public class PlayerData extends SynchronizedDataHolder implements OfflinePlayerD
return getAttributes().mapPoints();
}
public int getSkillLevel(RegisteredSkill skill) {
public int getSkillLevel(@NotNull RegisteredSkill skill) {
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);
}
public void setSkillLevel(String skill, int level) {
skills.put(skill, level);
public void setSkillLevel(@NotNull String skill, int 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);
}

View File

@ -299,7 +299,7 @@ public class SavedClassInformation implements ClassDataContainer {
/*
* 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()) {
attribute.resetAdvancement(player, false);
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();
skillMap.removeModifiers("MMOCorePermanentSkill");
for (ClassSkill skill : data.getProfess().getSkills())

View File

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