diff --git a/src/main/java/net/Indyuce/mmocore/api/player/profess/PlayerClass.java b/src/main/java/net/Indyuce/mmocore/api/player/profess/PlayerClass.java index 818ddeef..291ee560 100644 --- a/src/main/java/net/Indyuce/mmocore/api/player/profess/PlayerClass.java +++ b/src/main/java/net/Indyuce/mmocore/api/player/profess/PlayerClass.java @@ -38,7 +38,7 @@ public class PlayerClass { private final ItemStack icon; private final Map options = new HashMap<>(); private final ManaDisplayOptions manaDisplay; - private final int maxLevel; + private final int maxLevel, displayOrder; private final Map stats = new HashMap<>(); private final Map skills = new LinkedHashMap<>(); @@ -66,6 +66,7 @@ public class PlayerClass { attrDescription.add(ChatColor.GRAY + ChatColor.translateAlternateColorCodes('&', string)); manaDisplay = new ManaDisplayOptions(config.getConfigurationSection("mana")); maxLevel = config.getInt("max-level"); + displayOrder = config.getInt("display-order"); if (config.contains("attributes")) for (String key : config.getConfigurationSection("attributes").getKeys(false)) @@ -135,6 +136,7 @@ public class PlayerClass { this.fileName = id; manaDisplay = new ManaDisplayOptions(ChatColor.BLUE, "Mana", AltChar.listSquare.charAt(0)); maxLevel = 0; + displayOrder = 0; this.icon = new ItemStack(material); setOption(ClassOption.DISPLAY, false); @@ -171,6 +173,10 @@ public class PlayerClass { return maxLevel; } + public int getDisplayOrder() { + return displayOrder; + } + public String getFileName() { return fileName; } diff --git a/src/main/java/net/Indyuce/mmocore/gui/ClassSelect.java b/src/main/java/net/Indyuce/mmocore/gui/ClassSelect.java index 95333a4a..84a94d0e 100644 --- a/src/main/java/net/Indyuce/mmocore/gui/ClassSelect.java +++ b/src/main/java/net/Indyuce/mmocore/gui/ClassSelect.java @@ -1,6 +1,7 @@ package net.Indyuce.mmocore.gui; import java.util.ArrayList; +import java.util.Comparator; import java.util.List; import java.util.stream.Collectors; @@ -96,7 +97,7 @@ public class ClassSelect extends EditableInventory { } public class ProfessSelectionInventory extends GeneratedInventory { - private final List classes = MMOCore.plugin.classManager.getAll().stream().filter(c -> c.hasOption(ClassOption.DISPLAY)).collect(Collectors.toList()); + private final List classes = MMOCore.plugin.classManager.getAll().stream().filter(c -> c.hasOption(ClassOption.DISPLAY)).sorted(Comparator.comparingInt(PlayerClass::getDisplayOrder)).collect(Collectors.toList()); public ProfessSelectionInventory(PlayerData playerData, EditableInventory editable) { super(playerData, editable);