Skip to content

Commit 18a8556

Browse files
authored
feat: 更新选中 mod (#4832)
1 parent f10c842 commit 18a8556

File tree

2 files changed

+17
-3
lines changed

2 files changed

+17
-3
lines changed

HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/ModListPage.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -229,12 +229,13 @@ public void openModFolder() {
229229
FXUtils.openFolder(profile.getRepository().getRunDirectory(instanceId).resolve("mods"));
230230
}
231231

232-
public void checkUpdates() {
232+
public void checkUpdates(Collection<LocalModFile> mods) {
233+
Objects.requireNonNull(mods);
233234
Runnable action = () -> Controllers.taskDialog(Task
234235
.composeAsync(() -> {
235236
Optional<String> gameVersion = profile.getRepository().getGameVersion(instanceId);
236237
if (gameVersion.isPresent()) {
237-
return new ModCheckUpdatesTask(gameVersion.get(), modManager.getMods());
238+
return new ModCheckUpdatesTask(gameVersion.get(), mods);
238239
}
239240
return null;
240241
})

HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/ModListPageSkin.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,13 @@ final class ModListPageSkin extends SkinBase<ModListPage> {
141141
createToolbarButton2(i18n("button.refresh"), SVG.REFRESH, skinnable::refresh),
142142
createToolbarButton2(i18n("mods.add"), SVG.ADD, skinnable::add),
143143
createToolbarButton2(i18n("button.reveal_dir"), SVG.FOLDER_OPEN, skinnable::openModFolder),
144-
createToolbarButton2(i18n("mods.check_updates.button"), SVG.UPDATE, skinnable::checkUpdates),
144+
createToolbarButton2(i18n("mods.check_updates"), SVG.UPDATE, () ->
145+
skinnable.checkUpdates(
146+
listView.getItems().stream()
147+
.map(ModInfoObject::getModInfo)
148+
.toList()
149+
)
150+
),
145151
createToolbarButton2(i18n("download"), SVG.DOWNLOAD, skinnable::download),
146152
createToolbarButton2(i18n("search"), SVG.SEARCH, () -> changeToolbar(searchBar))
147153
);
@@ -157,6 +163,13 @@ final class ModListPageSkin extends SkinBase<ModListPage> {
157163
skinnable.enableSelected(listView.getSelectionModel().getSelectedItems())),
158164
createToolbarButton2(i18n("mods.disable"), SVG.CLOSE, () ->
159165
skinnable.disableSelected(listView.getSelectionModel().getSelectedItems())),
166+
createToolbarButton2(i18n("mods.check_updates"), SVG.UPDATE, () ->
167+
skinnable.checkUpdates(
168+
listView.getSelectionModel().getSelectedItems().stream()
169+
.map(ModInfoObject::getModInfo)
170+
.toList()
171+
)
172+
),
160173
createToolbarButton2(i18n("button.select_all"), SVG.SELECT_ALL, () ->
161174
listView.getSelectionModel().selectAll()),
162175
createToolbarButton2(i18n("button.cancel"), SVG.CANCEL, () ->

0 commit comments

Comments
 (0)