diff --git a/src/main/java/emu/lunarcore/command/CommandArgs.java b/src/main/java/emu/lunarcore/command/CommandArgs.java index c585fc6..7b883b3 100644 --- a/src/main/java/emu/lunarcore/command/CommandArgs.java +++ b/src/main/java/emu/lunarcore/command/CommandArgs.java @@ -268,6 +268,8 @@ public class CommandArgs { } item.getSubAffixes().forEach(subAffix -> subAffix.setStep(subAffix.getCount() * 2)); + } if (this.hasFlag("-sorted")) { + item.sortSubAffixes(); } } diff --git a/src/main/java/emu/lunarcore/game/inventory/GameItem.java b/src/main/java/emu/lunarcore/game/inventory/GameItem.java index 491d666..8f9eeff 100644 --- a/src/main/java/emu/lunarcore/game/inventory/GameItem.java +++ b/src/main/java/emu/lunarcore/game/inventory/GameItem.java @@ -1,6 +1,7 @@ package emu.lunarcore.game.inventory; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import org.bson.types.ObjectId; @@ -103,6 +104,8 @@ public class GameItem { // Sub affixes int baseSubAffixes = Math.min(Math.max(getExcel().getRarity().getVal() - 2, 0), 3); this.addSubAffixes(Utils.randomRange(baseSubAffixes, baseSubAffixes + 1)); + // Sort sub affixes + this.sortSubAffixes(); } break; default: @@ -238,6 +241,14 @@ public class GameItem { public int getMaxNormalSubAffixCount() { return (getExcel().getRarity().getVal() - 1) + (int) Math.floor(this.getLevel() / 3.0); } + + public void sortSubAffixes() { + if (this.subAffixes == null || this.subAffixes.size() == 0) { + return; + } + + Collections.sort(this.subAffixes); + } // Database diff --git a/src/main/java/emu/lunarcore/game/inventory/GameItemSubAffix.java b/src/main/java/emu/lunarcore/game/inventory/GameItemSubAffix.java index 2968a2b..c31e2f8 100644 --- a/src/main/java/emu/lunarcore/game/inventory/GameItemSubAffix.java +++ b/src/main/java/emu/lunarcore/game/inventory/GameItemSubAffix.java @@ -9,7 +9,7 @@ import lombok.Setter; @Getter @Entity(useDiscriminator = false) -public class GameItemSubAffix { +public class GameItemSubAffix implements Comparable { private int id; // Affix id @Setter private int count; @@ -43,4 +43,9 @@ public class GameItemSubAffix { return proto; } + + @Override + public int compareTo(GameItemSubAffix o) { + return this.getId() - o.getId(); + } } \ No newline at end of file