diff --git a/runelite-client/src/main/java/net/runelite/client/config/ConfigItem.java b/runelite-client/src/main/java/net/runelite/client/config/ConfigItem.java index 430759ad78..af2fc2aeeb 100644 --- a/runelite-client/src/main/java/net/runelite/client/config/ConfigItem.java +++ b/runelite-client/src/main/java/net/runelite/client/config/ConfigItem.java @@ -33,6 +33,8 @@ import java.lang.annotation.Target; @Target(ElementType.METHOD) public @interface ConfigItem { + int position() default -1; + String keyName(); String name(); diff --git a/runelite-client/src/main/java/net/runelite/client/config/ConfigManager.java b/runelite-client/src/main/java/net/runelite/client/config/ConfigManager.java index 4ab7702263..5fd1f38d80 100644 --- a/runelite-client/src/main/java/net/runelite/client/config/ConfigManager.java +++ b/runelite-client/src/main/java/net/runelite/client/config/ConfigManager.java @@ -312,6 +312,12 @@ public class ConfigManager List items = Arrays.stream(inter.getMethods()) .filter(m -> m.getParameterCount() == 0) + .sorted((m1, m2) -> + Integer.compare( + m1.getDeclaredAnnotation(ConfigItem.class).position(), + m2.getDeclaredAnnotation(ConfigItem.class).position() + ) + ) .map(m -> new ConfigItemDescriptor( m.getDeclaredAnnotation(ConfigItem.class), m.getReturnType()