diff --git a/src/fr/pandacube/java/util/MinecraftVersion.java b/src/fr/pandacube/java/util/MinecraftVersion.java index c9b1046..1f25adb 100644 --- a/src/fr/pandacube/java/util/MinecraftVersion.java +++ b/src/fr/pandacube/java/util/MinecraftVersion.java @@ -1,5 +1,9 @@ package fr.pandacube.java.util; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; + public enum MinecraftVersion { v1_7_2_to_1_7_5(4, "1.7.2-1.7.5"), v1_7_6_to_1_7_10(5, "1.7.6-1.7.10"), @@ -8,7 +12,7 @@ public enum MinecraftVersion { v1_9_1(108, "1.9.1"), v1_9_2(109, "1.9.2"), v1_9_3_to_1_9_4(110, "1.9.3-1.9.4"), - v1_10(210, "1.10"); + v1_10(210, "1.10.x"); public final int versionNumber; public final String versionDisplay; @@ -29,5 +33,51 @@ public enum MinecraftVersion { return null; } + + + + public static String displayOptimizedListOfVersions(List versions) { + return String.join(", ", getVersionsDisplayList(versions)); + } + + + public static final List getVersionsDisplayList(List versions) { + versions = new ArrayList<>(new HashSet<>(versions)); + versions.sort((a, b) -> Integer.compare(a.versionNumber, b.versionNumber)); + + List ret = new ArrayList<>(); + + // grouping 1.7 versions + if (versions.contains(v1_7_2_to_1_7_5) && versions.contains(v1_7_6_to_1_7_10)) { + versions.remove(v1_7_2_to_1_7_5); + versions.remove(v1_7_6_to_1_7_10); + ret.add("1.7"); + } + // grouping 1.8 versions + if (versions.contains(v1_8)) { + versions.remove(v1_8); + ret.add("1.8"); + } + // grouping 1.9 versions + if (versions.contains(v1_9) && versions.contains(v1_9_1) && versions.contains(v1_9_2) + && versions.contains(v1_9_3_to_1_9_4)) { + versions.remove(v1_9); + versions.remove(v1_9_1); + versions.remove(v1_9_2); + versions.remove(v1_9_3_to_1_9_4); + ret.add("1.9"); + } + // grouping 1.10 versions + if (versions.contains(v1_10)) { + versions.remove(v1_10); + ret.add("1.10"); + } + + for (MinecraftVersion v : versions) + ret.add(v.versionDisplay); + + return ret; + + } } diff --git a/src/fr/pandacube/java/util/ServerPropertyFile.java b/src/fr/pandacube/java/util/ServerPropertyFile.java index 128f464..4a02f51 100644 --- a/src/fr/pandacube/java/util/ServerPropertyFile.java +++ b/src/fr/pandacube/java/util/ServerPropertyFile.java @@ -36,9 +36,7 @@ public class ServerPropertyFile { * @return true si le chargement a réussi, false sinon */ public boolean loadFromFile() { - BufferedReader in = null; - try { - in = new BufferedReader(new FileReader(file)); + try (BufferedReader in = new BufferedReader(new FileReader(file))) { @SuppressWarnings("unchecked") Map dataFile = new Gson().fromJson(in, Map.class); @@ -61,12 +59,8 @@ public class ServerPropertyFile { return true; } catch (IOException e) { Log.severe(e); - } finally { - try { - in.close(); - } catch (Exception e) {} + return false; } - return false; } public boolean save() {