Merge pull request #5995 from deathbeam/sort-options-by-name-as-well

Sort config panel options by name as well
This commit is contained in:
Tomas Slusny
2018-10-14 00:37:31 +02:00
committed by GitHub

View File

@@ -25,6 +25,7 @@
package net.runelite.client.config;
import com.google.common.base.Strings;
import com.google.common.collect.ComparisonChain;
import com.google.common.collect.ImmutableMap;
import com.google.common.eventbus.EventBus;
import java.awt.Color;
@@ -45,7 +46,6 @@ import java.nio.channels.FileLock;
import java.nio.charset.Charset;
import java.time.Instant;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -375,14 +375,18 @@ public class ConfigManager
throw new IllegalArgumentException("Not a config group");
}
List<ConfigItemDescriptor> items = Arrays.stream(inter.getMethods())
final List<ConfigItemDescriptor> items = Arrays.stream(inter.getMethods())
.filter(m -> m.getParameterCount() == 0)
.sorted(Comparator.comparingInt(m -> m.getDeclaredAnnotation(ConfigItem.class).position()))
.map(m -> new ConfigItemDescriptor(
m.getDeclaredAnnotation(ConfigItem.class),
m.getReturnType()
))
.sorted((a, b) -> ComparisonChain.start()
.compare(a.getItem().position(), b.getItem().position())
.compare(a.getItem().name(), b.getItem().name())
.result())
.collect(Collectors.toList());
return new ConfigDescriptor(group, items);
}