From 830c3e3707a5a30c28c055a1477f20cc76c98e43 Mon Sep 17 00:00:00 2001 From: Olof Larsson Date: Sun, 11 Jun 2017 19:47:08 +0200 Subject: [PATCH] Order activate auto classes by name --- .../massivecore/util/ReflectionUtil.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/com/massivecraft/massivecore/util/ReflectionUtil.java b/src/com/massivecraft/massivecore/util/ReflectionUtil.java index 8f0ebe5d..539210af 100644 --- a/src/com/massivecraft/massivecore/util/ReflectionUtil.java +++ b/src/com/massivecraft/massivecore/util/ReflectionUtil.java @@ -4,6 +4,8 @@ package com.massivecraft.massivecore.util; import com.google.common.reflect.ClassPath; import com.google.common.reflect.ClassPath.ClassInfo; import com.massivecraft.massivecore.collections.MassiveList; +import com.massivecraft.massivecore.comparator.ComparatorAbstractTransformer; +import com.massivecraft.massivecore.comparator.ComparatorNaturalOrder; import com.massivecraft.massivecore.predicate.Predicate; import com.massivecraft.massivecore.predicate.PredicateAnd; import org.bukkit.Bukkit; @@ -19,6 +21,8 @@ import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; +import java.util.Comparator; import java.util.List; public class ReflectionUtil @@ -459,9 +463,9 @@ public class ReflectionUtil ClassPath classPath = ClassPath.from(classLoader); Predicate> predicateCombined = PredicateAnd.get(predicates); - Collection classes = recursive ? classPath.getTopLevelClassesRecursive(packageName) : classPath.getTopLevelClasses(packageName); + Collection classInfos = recursive ? classPath.getTopLevelClassesRecursive(packageName) : classPath.getTopLevelClasses(packageName); - for (ClassInfo classInfo : classes) + for (ClassInfo classInfo : classInfos) { // Get name of class String className = classInfo.getName(); @@ -493,6 +497,15 @@ public class ReflectionUtil { throw new RuntimeException(ex); } + + Collections.sort(ret, new Comparator>() + { + @Override + public int compare(Class class1, Class class2) + { + return ComparatorNaturalOrder.get().compare(class1.getName(), class2.getName()); + } + }); return ret; }