Fixed issue #792 by adding the possibility to put a "custom-model-data" for skill trees.

This commit is contained in:
Ka0rX 2023-04-16 18:29:39 +01:00
parent 56a84015ac
commit 4de49070a0
2 changed files with 10 additions and 0 deletions

View File

@ -1,5 +1,6 @@
package net.Indyuce.mmocore.gui;
import io.lumine.mythic.lib.MythicLib;
import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.skilltree.NodeStatus;
@ -120,6 +121,8 @@ public class SkillTreeViewer extends EditableInventory {
lore.add(holders.apply(inv.getPlayer(), string));
});
meta.setLore(lore);
if (MythicLib.plugin.getVersion().isStrictlyHigher(1, 13))
meta.setCustomModelData(skillTree.getCustomModelData());
PersistentDataContainer container = meta.getPersistentDataContainer();
container.set(new NamespacedKey(MMOCore.plugin, "skill-tree-id"), PersistentDataType.STRING, skillTree.getId());
item.setItemMeta(meta);

View File

@ -39,6 +39,8 @@ public abstract class SkillTree extends PostLoadObject implements RegisteredObje
private final String id, name;
private final List<String> lore = new ArrayList<>();
private final Material item;
private final int customModelData;
//2 different maps to get the nodes
//Represents all the coordinates that will be displayed as a path (between 2 nodes of the tree)
@ -59,6 +61,7 @@ public abstract class SkillTree extends PostLoadObject implements RegisteredObje
this.name = MythicLib.plugin.parseColors(Objects.requireNonNull(config.getString("name"), "Could not find skill tree name"));
Objects.requireNonNull(config.getStringList("lore"), "Could not find skill tree lore").forEach(str -> lore.add(MythicLib.plugin.parseColors(str)));
this.item = Material.valueOf(UtilityMethods.enumName(Objects.requireNonNull(config.getString("item"))));
this.customModelData = config.getInt("custom-model-data", 0);
Validate.isTrue(config.isConfigurationSection("nodes"), "Could not find any nodes in the tree");
this.maxPointSpent = config.getInt("max-point-spent", Integer.MAX_VALUE);
for (String key : config.getConfigurationSection("nodes").getKeys(false)) {
@ -148,6 +151,10 @@ public abstract class SkillTree extends PostLoadObject implements RegisteredObje
return maxPointSpent;
}
public int getCustomModelData() {
return customModelData;
}
public static SkillTree loadSkillTree(ConfigurationSection config) {
SkillTree skillTree = null;