Index: src/org/openstreetmap/josm/plugins/PluginHandler.java
===================================================================
--- src/org/openstreetmap/josm/plugins/PluginHandler.java	(revision 16392)
+++ src/org/openstreetmap/josm/plugins/PluginHandler.java	(working copy)
@@ -617,7 +617,14 @@
         MainApplication.worker.submit(() -> {
             // Build list of plugins to download
             Set<PluginInformation> toDownload = new HashSet<>(pluginInfoDownloadTask.getAvailablePlugins());
-            toDownload.removeIf(info -> !missingRequiredPlugin.contains(info.getName()));
+            toDownload.removeIf(info -> !missingRequiredPlugin.contains(info.getName())
+                    && !missingRequiredPlugin.contains(info.provides) && info.isForCurrentPlatform());
+            // Remove duplicates
+            // TODO: Make a gui? Currently, only JavaFX has multiple, and all for different platforms.)
+            Set<String> possibleDuplicates = toDownload.parallelStream()
+                    .collect(Collectors.groupingBy(i -> i.provides == null ? i.getName() : i.provides, Collectors.counting()))
+                    .entrySet().stream().filter(e -> e.getValue() > 1).map(Map.Entry::getKey).collect(Collectors.toSet());
+            toDownload.removeIf(i -> possibleDuplicates.contains(i.getName()) || possibleDuplicates.contains(i.provides));
             // Check if something has still to be downloaded
             if (!toDownload.isEmpty()) {
                 // download plugins
