Cleanup & comments

This commit is contained in:
Indyuce 2022-11-10 17:13:13 +01:00
parent 45540f3782
commit 7317954d70
3 changed files with 32 additions and 21 deletions

View File

@ -6,8 +6,6 @@ import io.lumine.mythic.lib.api.stat.StatInstance;
import io.lumine.mythic.lib.api.stat.modifier.StatModifier; import io.lumine.mythic.lib.api.stat.modifier.StatModifier;
import io.lumine.mythic.lib.player.cooldown.CooldownMap; import io.lumine.mythic.lib.player.cooldown.CooldownMap;
import io.lumine.mythic.lib.player.skill.PassiveSkill; import io.lumine.mythic.lib.player.skill.PassiveSkill;
import net.Indyuce.mmocore.party.provided.MMOCorePartyModule;
import net.Indyuce.mmocore.party.provided.Party;
import net.Indyuce.mmocore.MMOCore; import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.api.ConfigMessage; import net.Indyuce.mmocore.api.ConfigMessage;
import net.Indyuce.mmocore.api.SoundEvent; import net.Indyuce.mmocore.api.SoundEvent;
@ -34,8 +32,9 @@ import net.Indyuce.mmocore.experience.droptable.ExperienceTable;
import net.Indyuce.mmocore.guild.provided.Guild; import net.Indyuce.mmocore.guild.provided.Guild;
import net.Indyuce.mmocore.loot.chest.particle.SmallParticleEffect; import net.Indyuce.mmocore.loot.chest.particle.SmallParticleEffect;
import net.Indyuce.mmocore.party.AbstractParty; import net.Indyuce.mmocore.party.AbstractParty;
import net.Indyuce.mmocore.party.provided.MMOCorePartyModule;
import net.Indyuce.mmocore.party.provided.Party;
import net.Indyuce.mmocore.player.Unlockable; import net.Indyuce.mmocore.player.Unlockable;
import net.Indyuce.mmocore.player.stats.StatInfo;
import net.Indyuce.mmocore.skill.ClassSkill; import net.Indyuce.mmocore.skill.ClassSkill;
import net.Indyuce.mmocore.skill.RegisteredSkill; import net.Indyuce.mmocore.skill.RegisteredSkill;
import net.Indyuce.mmocore.skill.cast.SkillCastingHandler; import net.Indyuce.mmocore.skill.cast.SkillCastingHandler;
@ -120,7 +119,7 @@ public class PlayerData extends OfflinePlayerData implements Closable, Experienc
// NON-FINAL player data stuff made public to facilitate field change // NON-FINAL player data stuff made public to facilitate field change
public boolean noCooldown; public boolean noCooldown;
private boolean statLoaded; private final boolean statLoaded;
public CombatRunnable combat; public CombatRunnable combat;
/** /**
@ -143,7 +142,6 @@ public class PlayerData extends OfflinePlayerData implements Closable, Experienc
if (modifier.getKey().startsWith("trigger")) if (modifier.getKey().startsWith("trigger"))
statLoaded = true; statLoaded = true;
this.statLoaded = statLoaded; this.statLoaded = statLoaded;
} }
/** /**
@ -179,9 +177,8 @@ public class PlayerData extends OfflinePlayerData implements Closable, Experienc
for (SkillTree skillTree : MMOCore.plugin.skillTreeManager.getAll()) for (SkillTree skillTree : MMOCore.plugin.skillTreeManager.getAll())
skillTree.setupNodeState(this); skillTree.setupNodeState(this);
if (!statLoaded)
// Stat triggers setup // Stat triggers setup
if (!statLoaded)
for (SkillTree skillTree : MMOCore.plugin.skillTreeManager.getAll()) { for (SkillTree skillTree : MMOCore.plugin.skillTreeManager.getAll()) {
for (SkillTreeNode node : skillTree.getNodes()) { for (SkillTreeNode node : skillTree.getNodes()) {
node.getExperienceTable().claimStatTriggers(this, node); node.getExperienceTable().claimStatTriggers(this, node);

View File

@ -1,6 +1,24 @@
package net.Indyuce.mmocore.tree; package net.Indyuce.mmocore.tree;
public enum NodeState { public enum NodeState {
LOCKED,UNLOCKED,UNLOCKABLE,FULLY_LOCKED; /**
* The player does not have access to this skill tree node just yet.
*/
LOCKED,
/**
* The player has bought and unlocked the skill tree node.
*/
UNLOCKED,
/**
* The player has access to but has not unlocked the node yet.
*/
UNLOCKABLE,
/**
* The player had access to this node, but unlocked another
* node which now prevents him from unlocking this one.
*/
FULLY_LOCKED;
} }

View File

@ -5,12 +5,12 @@ import io.lumine.mythic.lib.UtilityMethods;
import io.lumine.mythic.lib.api.util.PostLoadObject; import io.lumine.mythic.lib.api.util.PostLoadObject;
import net.Indyuce.mmocore.MMOCore; import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.tree.NodeState;
import net.Indyuce.mmocore.tree.skilltree.display.DisplayInfo;
import net.Indyuce.mmocore.manager.registry.RegisteredObject; import net.Indyuce.mmocore.manager.registry.RegisteredObject;
import net.Indyuce.mmocore.tree.skilltree.display.Icon;
import net.Indyuce.mmocore.tree.IntegerCoordinates; import net.Indyuce.mmocore.tree.IntegerCoordinates;
import net.Indyuce.mmocore.tree.NodeState;
import net.Indyuce.mmocore.tree.SkillTreeNode; import net.Indyuce.mmocore.tree.SkillTreeNode;
import net.Indyuce.mmocore.tree.skilltree.display.DisplayInfo;
import net.Indyuce.mmocore.tree.skilltree.display.Icon;
import org.apache.commons.lang.Validate; import org.apache.commons.lang.Validate;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
@ -32,7 +32,6 @@ import java.util.logging.Level;
* - extra attribute pts * - extra attribute pts
* - particle or potion effects * - particle or potion effects
* *
* @author jules
* @author Ka0rX * @author Ka0rX
* @see {@link SkillTreeNode} * @see {@link SkillTreeNode}
*/ */
@ -86,7 +85,6 @@ public abstract class SkillTree extends PostLoadObject implements RegisteredObje
MMOCore.log(Level.WARNING, "Couldn't load paths for skill tree: " + id); MMOCore.log(Level.WARNING, "Couldn't load paths for skill tree: " + id);
} }
try { try {
//Load the icons of the skill tree. //Load the icons of the skill tree.
for (String key : config.getConfigurationSection("icons").getKeys(false)) { for (String key : config.getConfigurationSection("icons").getKeys(false)) {
@ -118,7 +116,6 @@ public abstract class SkillTree extends PostLoadObject implements RegisteredObje
} }
} }
@Override @Override
protected abstract void whenPostLoaded(@NotNull ConfigurationSection configurationSection); protected abstract void whenPostLoaded(@NotNull ConfigurationSection configurationSection);
@ -178,7 +175,6 @@ public abstract class SkillTree extends PostLoadObject implements RegisteredObje
roots.add(node); roots.add(node);
} }
/** /**
* Recursively go through the skill trees to update the the node states * Recursively go through the skill trees to update the the node states
*/ */
@ -187,7 +183,6 @@ public abstract class SkillTree extends PostLoadObject implements RegisteredObje
setupNodeStateFrom(root, playerData); setupNodeStateFrom(root, playerData);
} }
public List<SkillTreeNode> getRoots() { public List<SkillTreeNode> getRoots() {
return roots; return roots;
} }
@ -292,6 +287,7 @@ public abstract class SkillTree extends PostLoadObject implements RegisteredObje
public SkillTreeNode getNode(String name) { public SkillTreeNode getNode(String name) {
return Objects.requireNonNull(nodes.get(name), "Could not find node in tree '" + id + "' with name '" + name + "'"); return Objects.requireNonNull(nodes.get(name), "Could not find node in tree '" + id + "' with name '" + name + "'");
} }
public boolean isNode(String name) { public boolean isNode(String name) {
return nodes.containsKey(name); return nodes.containsKey(name);
} }