diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/setting/ConfigUpgrader.java b/HMCL/src/main/java/org/jackhuang/hmcl/setting/ConfigUpgrader.java index 0b7bfbe7ec..4f414c87b9 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/setting/ConfigUpgrader.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/setting/ConfigUpgrader.java @@ -25,7 +25,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.function.BiFunction; +import java.util.function.BiConsumer; import java.util.logging.Level; import static org.jackhuang.hmcl.util.Lang.tryCast; @@ -56,9 +56,10 @@ static void upgradeConfig(Config deserialized, Map rawJson) { LOG.log(Level.INFO, String.format("Updating configuration from %d to %d.", configVersion, CURRENT_VERSION)); Map unmodifiableRawJson = Collections.unmodifiableMap(rawJson); - for (Map.Entry, Integer>> dfu : collectDFU()) { + for (Map.Entry>> dfu : collectDFU()) { if (configVersion < dfu.getKey()) { - configVersion = dfu.getValue().apply(deserialized, unmodifiableRawJson); + dfu.getValue().accept(deserialized, unmodifiableRawJson); + configVersion = dfu.getKey(); } } @@ -75,8 +76,8 @@ static void upgradeConfig(Config deserialized, Map rawJson) { * *

The last item must return CURRENT_VERSION, as the config file should always being updated to the latest version.

*/ - private static List, Integer>>> collectDFU() { - List, Integer>>> dfu = Lang.immutableListOf( + private static List>>> collectDFU() { + List>>> dfu = Lang.immutableListOf( Pair.pair(1, (deserialized, rawJson) -> { // Upgrade configuration of HMCL 2.x: Convert OfflineAccounts whose stored uuid is important. tryCast(rawJson.get("auth"), Map.class).ifPresent(auth -> { @@ -120,7 +121,6 @@ static void upgradeConfig(Config deserialized, Map rawJson) { } }); } - return 1; }) );