From 8cffcb68e1a6c888496361f0b3242b967688c8ee Mon Sep 17 00:00:00 2001 From: SirNapkin1334 Date: Tue, 4 May 2021 11:21:41 -0700 Subject: [PATCH] Make showing or not showing snapshots toggleable --- src/main/java/bspkrs/mmv/VersionFetcher.java | 27 ++++++++++---------- src/main/java/bspkrs/mmv/gui/MappingGui.java | 9 ++++--- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/src/main/java/bspkrs/mmv/VersionFetcher.java b/src/main/java/bspkrs/mmv/VersionFetcher.java index 6b85673..95cc193 100644 --- a/src/main/java/bspkrs/mmv/VersionFetcher.java +++ b/src/main/java/bspkrs/mmv/VersionFetcher.java @@ -29,30 +29,31 @@ public class VersionFetcher { - private final String jsonUrl = "http://export.mcpbot.bspk.rs/versions.json"; - private List versions; + private static final String jsonUrl = "http://export.mcpbot.bspk.rs/versions.json"; + private final List versions = new ArrayList<>(); + /** Reload if snapshots were downloaded and now aren't, or vice-versa */ + private boolean hasSnapshots = false; @SuppressWarnings("unchecked") - public List getVersions(boolean force) throws IOException + public List getVersions(final boolean snapshots) throws IOException { - if ((versions == null) || force) + if (snapshots != hasSnapshots || versions.isEmpty()) { - final URL url = new URL(jsonUrl); - final URLConnection connection = url.openConnection(); + hasSnapshots = snapshots; + final URLConnection connection = new URL(jsonUrl).openConnection(); connection.addRequestProperty("User-Agent", "MMV/1.0.0"); BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream())); Map json = new Gson().fromJson(br, Map.class); - versions = new ArrayList(); + versions.clear(); for (String mcVer : json.keySet()) for (String channel : ((Map[]>) json.get(mcVer)).keySet()) - for (Double ver : ((Map>) json.get(mcVer)).get(channel)) - versions.add(mcVer + "_" + channel + "_" + String.format("%.0f", ver)); - Collections.sort(versions, Collections.reverseOrder(new SplittedNaturalComparator("_"))); - return versions; + if (snapshots || "stable".equals(channel)) + for (Double ver : ((Map>) json.get(mcVer)).get(channel)) + versions.add(mcVer + "_" + channel + "_" + String.format("%.0f", ver)); + versions.sort(Collections.reverseOrder(new SplittedNaturalComparator("_"))); } - else - return versions; + return versions; } } diff --git a/src/main/java/bspkrs/mmv/gui/MappingGui.java b/src/main/java/bspkrs/mmv/gui/MappingGui.java index 279a673..4bd15ec 100644 --- a/src/main/java/bspkrs/mmv/gui/MappingGui.java +++ b/src/main/java/bspkrs/mmv/gui/MappingGui.java @@ -95,6 +95,7 @@ public class MappingGui extends JFrame private JButton btnRefreshTables; private JComboBox cmbMappingVersion; private JCheckBox chkForceRefresh; + private JCheckBox chkShowSnapshots; private JPanel pnlProgress; private JProgressBar progressBar; private JPanel pnlFilter; @@ -500,6 +501,9 @@ public void run() pnlControls.add(lblMappingVersion); pnlControls.add(cmbMappingVersion); + chkShowSnapshots = new JCheckBox("Show Snapshots"); + chkShowSnapshots.setToolTipText("Show snapshot versions, otherwise only show stable versions."); + btnGetVersions = new JButton("Get Versions"); btnGetVersions.addActionListener(new ActionListener() { @@ -509,16 +513,15 @@ public void actionPerformed(ActionEvent e) try { cmbMappingVersion.removeAllItems(); - for (String s : versionFetcher.getVersions(chkForceRefresh.isSelected())) - { + for (String s : versionFetcher.getVersions(chkShowSnapshots.isSelected())) cmbMappingVersion.addItem(s); - } } catch (IOException exc) {} } }); pnlControls.add(btnGetVersions); + pnlControls.add(chkShowSnapshots); btnRefreshTables = new JButton("Load Mappings"); btnRefreshTables.setEnabled(false);