From 452d030817bab590acf3c8dd95c8bf64e762f0e7 Mon Sep 17 00:00:00 2001 From: ToobLac Date: Thu, 15 Oct 2026 20:33:13 +0800 Subject: [PATCH] refactor(addon): Make `LocalAddonFile` implement `Comparable` (#6984) --- .../jackhuang/hmcl/addon/update/AddonCheckUpdatesTask.java | 2 +- .../org/jackhuang/hmcl/addon/update/AddonUpdateTask.java | 6 +++--- .../main/java/org/jackhuang/hmcl/addon/LocalAddonFile.java | 4 ++-- .../java/org/jackhuang/hmcl/addon/LocalAddonManager.java | 2 +- .../java/org/jackhuang/hmcl/addon/mod/LocalModFile.java | 2 +- .../jackhuang/hmcl/addon/resourcepack/ResourcePackFile.java | 2 +- .../java/org/jackhuang/hmcl/addon/update/AddonUpdate.java | 2 +- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/addon/update/AddonCheckUpdatesTask.java b/HMCL/src/main/java/org/jackhuang/hmcl/addon/update/AddonCheckUpdatesTask.java index 7572191fce..1e9b9b43de 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/addon/update/AddonCheckUpdatesTask.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/addon/update/AddonCheckUpdatesTask.java @@ -36,7 +36,7 @@ import static org.jackhuang.hmcl.util.logging.Logger.LOG; public class AddonCheckUpdatesTask extends Task { private final List>> dependents; - public AddonCheckUpdatesTask(DownloadProvider downloadProvider, String gameVersion, Collection addons) { + public AddonCheckUpdatesTask(DownloadProvider downloadProvider, String gameVersion, Collection> addons) { dependents = addons.stream().map(addon -> Task.supplyAsync(Schedulers.io(), () -> { AddonUpdate candidate = null; diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/addon/update/AddonUpdateTask.java b/HMCL/src/main/java/org/jackhuang/hmcl/addon/update/AddonUpdateTask.java index 78e73a5724..f0e9cfdf28 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/addon/update/AddonUpdateTask.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/addon/update/AddonUpdateTask.java @@ -37,14 +37,14 @@ import static org.jackhuang.hmcl.util.logging.Logger.LOG; public class AddonUpdateTask extends Task { private final Collection> dependents = new ArrayList<>(); - private final List failedAddons = new ArrayList<>(); + private final List> failedAddons = new ArrayList<>(); public AddonUpdateTask(DownloadProvider downloadProvider, Path addonDirectory, List addons) { setStage("addon.check_update.confirm"); getProperties().put("total", addons.size()); for (AddonUpdate addon : addons) { - LocalAddonFile local = addon.localAddonFile(); + LocalAddonFile local = addon.localAddonFile(); RemoteAddon.Version remote = addon.targetVersion(); boolean isDisabled = local.isDisabled(); String fileName = remote.file().filename(); @@ -91,7 +91,7 @@ public class AddonUpdateTask extends Task { } } - public List getFailedAddons() { + public List> getFailedAddons() { return failedAddons; } diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/addon/LocalAddonFile.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/addon/LocalAddonFile.java index 606a1aae49..8f11ee286b 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/addon/LocalAddonFile.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/addon/LocalAddonFile.java @@ -35,8 +35,8 @@ import java.util.Objects; import java.util.Optional; import java.util.stream.Collectors; -/// Sub-classes should implement `Comparable` -public abstract class LocalAddonFile { +/// @param this type of addon +public abstract class LocalAddonFile implements Comparable { protected LocalAddonFile() { } diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/addon/LocalAddonManager.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/addon/LocalAddonManager.java index 8a81e1fe35..5710c7a481 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/addon/LocalAddonManager.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/addon/LocalAddonManager.java @@ -39,7 +39,7 @@ import java.util.concurrent.locks.ReentrantLock; /// copies. Callers obtain a manager from the current instance after a refresh or COW publish. /// /// @param the local addon file type managed by this manager -public abstract class LocalAddonManager { +public abstract class LocalAddonManager> { /// File-name suffix used for disabled addon files. public static final String DISABLED_EXTENSION = ".disabled"; diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/addon/mod/LocalModFile.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/addon/mod/LocalModFile.java index c81cfa3edd..3fd070a0d7 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/addon/mod/LocalModFile.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/addon/mod/LocalModFile.java @@ -37,7 +37,7 @@ import static org.jackhuang.hmcl.util.logging.Logger.LOG; * * @author huangyuhui */ -public final class LocalModFile extends LocalAddonFile implements Comparable { +public final class LocalModFile extends LocalAddonFile { private Path file; private final ModManager modManager; diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/addon/resourcepack/ResourcePackFile.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/addon/resourcepack/ResourcePackFile.java index 9f2ec2657a..c2a057dd3a 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/addon/resourcepack/ResourcePackFile.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/addon/resourcepack/ResourcePackFile.java @@ -32,7 +32,7 @@ import java.nio.file.Path; import java.util.List; import java.util.Locale; -public sealed abstract class ResourcePackFile extends LocalAddonFile implements Comparable permits ResourcePackFolder, ResourcePackZipFile { +public sealed abstract class ResourcePackFile extends LocalAddonFile permits ResourcePackFolder, ResourcePackZipFile { static ResourcePackFile fromFile(ResourcePackManager manager, Path path) throws IOException { if (isFileResourcePack(path)) { return Files.isRegularFile(path) ? new ResourcePackZipFile(manager, path) : new ResourcePackFolder(manager, path); diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/addon/update/AddonUpdate.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/addon/update/AddonUpdate.java index 792b278bae..67111269c6 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/addon/update/AddonUpdate.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/addon/update/AddonUpdate.java @@ -23,7 +23,7 @@ import org.jetbrains.annotations.NotNullByDefault; @NotNullByDefault public record AddonUpdate( - LocalAddonFile localAddonFile, + LocalAddonFile localAddonFile, RemoteAddon.Version currentVersion, RemoteAddon.Version targetVersion ) {