From 7a8eda46c4e4c70f4f1c06dbd2cf76d2bd2d0525 Mon Sep 17 00:00:00 2001 From: Christian Date: Sat, 11 Jan 2014 22:01:01 -0500 Subject: [PATCH] Fix potential ordering issue, clean up some imports --- .../mods/fml/client/FMLConfigGuiFactory.java | 2 ++ .../mods/fml/common/MetadataCollection.java | 1 + .../fml/common/discovery/ModDiscoverer.java | 17 ++--------- .../common/network/FMLEmbeddedChannel.java | 5 ++-- .../mods/fml/relauncher/CoreModManager.java | 2 +- .../mods/fml/relauncher/FMLRelaunchLog.java | 2 -- .../mods/fml/relauncher/FileListHelper.java | 29 +++++++++++++++++++ 7 files changed, 38 insertions(+), 20 deletions(-) create mode 100644 fml/src/main/java/cpw/mods/fml/relauncher/FileListHelper.java diff --git a/fml/src/main/java/cpw/mods/fml/client/FMLConfigGuiFactory.java b/fml/src/main/java/cpw/mods/fml/client/FMLConfigGuiFactory.java index 14bc61d184..aec548d087 100644 --- a/fml/src/main/java/cpw/mods/fml/client/FMLConfigGuiFactory.java +++ b/fml/src/main/java/cpw/mods/fml/client/FMLConfigGuiFactory.java @@ -43,6 +43,8 @@ public class FMLConfigGuiFactory implements IModGuiFactory { } } + + @SuppressWarnings("unused") private Minecraft minecraft; @Override public void initialize(Minecraft minecraftInstance) diff --git a/fml/src/main/java/cpw/mods/fml/common/MetadataCollection.java b/fml/src/main/java/cpw/mods/fml/common/MetadataCollection.java index d83f92fad1..271ccbcf34 100644 --- a/fml/src/main/java/cpw/mods/fml/common/MetadataCollection.java +++ b/fml/src/main/java/cpw/mods/fml/common/MetadataCollection.java @@ -28,6 +28,7 @@ import com.google.gson.JsonParser; public class MetadataCollection { + @SuppressWarnings("unused") private String modListVersion; private ModMetadata[] modList; private Map metadatas = Maps.newHashMap(); diff --git a/fml/src/main/java/cpw/mods/fml/common/discovery/ModDiscoverer.java b/fml/src/main/java/cpw/mods/fml/common/discovery/ModDiscoverer.java index c7ab8057f4..5b992a50e6 100644 --- a/fml/src/main/java/cpw/mods/fml/common/discovery/ModDiscoverer.java +++ b/fml/src/main/java/cpw/mods/fml/common/discovery/ModDiscoverer.java @@ -13,22 +13,19 @@ package cpw.mods.fml.common.discovery; import java.io.File; -import java.util.Arrays; -import java.util.Comparator; import java.util.List; -import org.apache.logging.log4j.Level; import java.util.regex.Matcher; import java.util.regex.Pattern; - +import org.apache.logging.log4j.Level; import com.google.common.base.Throwables; import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; - import cpw.mods.fml.common.FMLLog; import cpw.mods.fml.common.LoaderException; import cpw.mods.fml.common.ModClassLoader; import cpw.mods.fml.common.ModContainer; import cpw.mods.fml.relauncher.CoreModManager; +import cpw.mods.fml.relauncher.FileListHelper; public class ModDiscoverer { @@ -84,15 +81,7 @@ public class ModDiscoverer public void findModDirMods(File modsDir) { - File[] modList = modsDir.listFiles(); - // Sort the files into alphabetical order first - Arrays.sort(modList, new Comparator() { - @Override - public int compare(File o1, File o2) - { - return o1.getName().compareToIgnoreCase(o2.getName()); - } - }); + File[] modList = FileListHelper.sortFileList(modsDir, null); for (File modFile : modList) { diff --git a/fml/src/main/java/cpw/mods/fml/common/network/FMLEmbeddedChannel.java b/fml/src/main/java/cpw/mods/fml/common/network/FMLEmbeddedChannel.java index 4720623a58..bff9cca70b 100644 --- a/fml/src/main/java/cpw/mods/fml/common/network/FMLEmbeddedChannel.java +++ b/fml/src/main/java/cpw/mods/fml/common/network/FMLEmbeddedChannel.java @@ -1,14 +1,13 @@ package cpw.mods.fml.common.network; -import java.util.Map.Entry; -import net.minecraft.network.Packet; import io.netty.channel.ChannelHandler; import io.netty.channel.embedded.EmbeddedChannel; +import java.util.Map.Entry; +import net.minecraft.network.Packet; import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.ModContainer; import cpw.mods.fml.common.network.FMLOutboundHandler.OutboundTarget; import cpw.mods.fml.common.network.internal.FMLProxyPacket; -import cpw.mods.fml.common.network.internal.FMLRuntimeCodec; import cpw.mods.fml.relauncher.Side; /** diff --git a/fml/src/main/java/cpw/mods/fml/relauncher/CoreModManager.java b/fml/src/main/java/cpw/mods/fml/relauncher/CoreModManager.java index dc758beeb6..42c0b69e6f 100644 --- a/fml/src/main/java/cpw/mods/fml/relauncher/CoreModManager.java +++ b/fml/src/main/java/cpw/mods/fml/relauncher/CoreModManager.java @@ -234,7 +234,7 @@ public class CoreModManager { coreModList = ObjectArrays.concat(coreModList, versionedCoreMods, File.class); } - Arrays.sort(coreModList); + coreModList = FileListHelper.sortFileList(coreModList); for (File coreMod : coreModList) { diff --git a/fml/src/main/java/cpw/mods/fml/relauncher/FMLRelaunchLog.java b/fml/src/main/java/cpw/mods/fml/relauncher/FMLRelaunchLog.java index 239dd6ebd2..e3f4a848d6 100644 --- a/fml/src/main/java/cpw/mods/fml/relauncher/FMLRelaunchLog.java +++ b/fml/src/main/java/cpw/mods/fml/relauncher/FMLRelaunchLog.java @@ -13,11 +13,9 @@ package cpw.mods.fml.relauncher; import java.io.File; - import org.apache.logging.log4j.Level; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.apache.logging.log4j.spi.LoggerContext; public class FMLRelaunchLog { diff --git a/fml/src/main/java/cpw/mods/fml/relauncher/FileListHelper.java b/fml/src/main/java/cpw/mods/fml/relauncher/FileListHelper.java new file mode 100644 index 0000000000..eebe34b2ba --- /dev/null +++ b/fml/src/main/java/cpw/mods/fml/relauncher/FileListHelper.java @@ -0,0 +1,29 @@ +package cpw.mods.fml.relauncher; + +import java.io.File; +import java.io.FilenameFilter; +import java.util.Arrays; +import java.util.Comparator; + +public final class FileListHelper { + private static enum CaseInsensitiveFileComparator implements Comparator + { + INSTANCE; + @Override + public int compare(File o1, File o2) + { + return o1 != null && o2 != null ? o1.getName().compareToIgnoreCase(o2.getName()) : o1 == null ? -1 : 1; + } + + } + public static File[] sortFileList(File[] files) + { + Arrays.sort(files, CaseInsensitiveFileComparator.INSTANCE); + return files; + } + public static File[] sortFileList(File dir, FilenameFilter filter) + { + File[] files = dir.listFiles(filter); + return sortFileList(files); + } +}