Skip to content
This repository was archived by the owner on Dec 30, 2022. It is now read-only.

Commit d5f3e26

Browse files
committed
List updatable mods
1 parent d351163 commit d5f3e26

3 files changed

Lines changed: 30 additions & 1 deletion

File tree

src/main/java/xyz/deathsgun/modmanager/gui/widget/ModListEntry.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import net.minecraft.util.Language;
2828
import org.jetbrains.annotations.NotNull;
2929
import xyz.deathsgun.modmanager.ModManager;
30+
import xyz.deathsgun.modmanager.api.mod.DetailedMod;
3031
import xyz.deathsgun.modmanager.api.mod.ModState;
3132
import xyz.deathsgun.modmanager.api.mod.SummarizedMod;
3233
import xyz.deathsgun.modmanager.gui.widget.better.BetterListWidget;
@@ -48,6 +49,13 @@ public ModListEntry(ModListWidget list, @NotNull SummarizedMod mod) {
4849
CompletableFuture.runAsync(() -> this.modState = ModManager.getState(this.mod));
4950
}
5051

52+
public ModListEntry(ModListWidget list, DetailedMod mod) {
53+
super(list, new LiteralText(mod.name()));
54+
this.mod = mod.toSummarizedMod();
55+
// When calling this it's almost likely because of the updatable mods overview
56+
this.modState = ModState.OUTDATED;
57+
}
58+
5159
@Override
5260
public String id() {
5361
return mod.id();
@@ -118,6 +126,6 @@ public SummarizedMod getMod() {
118126

119127
@Override
120128
public Text getNarration() {
121-
return null;
129+
return getTitle();
122130
}
123131
}

src/main/java/xyz/deathsgun/modmanager/gui/widget/ModListWidget.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@ public void setCategory(Category category, boolean force) {
5050
}
5151
this.category = category;
5252
this.clearMods();
53+
if (category.id().equals("updatable")) {
54+
this.addUpdatableMods();
55+
}
5356
try {
5457
ModManager.getModProvider().getMods(category, page, limit)
5558
.forEach(mod -> this.addEntry(new ModListEntry(this, mod)));
@@ -58,6 +61,11 @@ public void setCategory(Category category, boolean force) {
5861
}
5962
}
6063

64+
private void addUpdatableMods() {
65+
ModManager.getUpdateChecker().getUpdatableMods().forEach(mod ->
66+
this.addEntry(new ModListEntry(this, mod)));
67+
}
68+
6169
public void searchMods(String query) {
6270
if (query == null || "".equals(query)) {
6371
return;

src/main/java/xyz/deathsgun/modmanager/services/UpdateCheckService.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import org.apache.logging.log4j.Logger;
2828
import org.jetbrains.annotations.Nullable;
2929
import xyz.deathsgun.modmanager.ModManager;
30+
import xyz.deathsgun.modmanager.api.mod.DetailedMod;
3031
import xyz.deathsgun.modmanager.api.mod.ModVersion;
3132
import xyz.deathsgun.modmanager.api.mod.SummarizedMod;
3233
import xyz.deathsgun.modmanager.api.mod.VersionType;
@@ -127,6 +128,18 @@ public int updatesAvailableCount() {
127128
return this.updates.size();
128129
}
129130

131+
public List<DetailedMod> getUpdatableMods() {
132+
ArrayList<DetailedMod> mods = new ArrayList<>();
133+
for (AvailableUpdates update : this.updates) {
134+
try {
135+
mods.add(ModManager.getModProvider().getMod(update.modId()));
136+
} catch (Exception e) {
137+
e.printStackTrace();
138+
}
139+
}
140+
return mods;
141+
}
142+
130143
private record AvailableUpdates(String modId, String fabricModId,
131144
ModVersion update) {
132145
}

0 commit comments

Comments
 (0)