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

Commit 290feb1

Browse files
committed
Added some missing translations and check hashes for every update
Closes #101 Signed-off-by: DeathsGun <deathsgun@protonmail.com>
1 parent f3c7e45 commit 290feb1

File tree

6 files changed

+29
-20
lines changed

6 files changed

+29
-20
lines changed

src/main/kotlin/xyz/deathsgun/modmanager/api/mod/Version.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,5 @@ data class Version(
2424
val releaseDate: LocalDate,
2525
val type: VersionType,
2626
val gameVersions: List<String>,
27-
val assets: List<Asset>,
28-
var foundTroughFallback: Boolean = false
27+
val assets: List<Asset>
2928
)

src/main/kotlin/xyz/deathsgun/modmanager/gui/ModUpdateInfoScreen.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ import xyz.deathsgun.modmanager.gui.widget.DescriptionWidget
3030
import xyz.deathsgun.modmanager.update.Update
3131

3232

33-
class ModUpdateInfoScreen(private val previousScreen: Screen, private val update: Update) :
34-
Screen(TranslatableText("modmanager.screen.update")), IListScreen {
33+
class ModUpdateInfoScreen(private val previousScreen: Screen, private val update: Update) : Screen(LiteralText.EMPTY),
34+
IListScreen {
3535

3636
private lateinit var descriptionWidget: DescriptionWidget
3737
private lateinit var updateButtonWidget: ButtonWidget

src/main/kotlin/xyz/deathsgun/modmanager/gui/ModsOverviewScreen.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import net.minecraft.client.gui.widget.ButtonWidget
2727
import net.minecraft.client.gui.widget.CyclingButtonWidget
2828
import net.minecraft.client.gui.widget.TextFieldWidget
2929
import net.minecraft.client.util.math.MatrixStack
30+
import net.minecraft.text.LiteralText
3031
import net.minecraft.text.TranslatableText
3132
import org.lwjgl.glfw.GLFW
3233
import xyz.deathsgun.modmanager.ModManager
@@ -41,8 +42,7 @@ import xyz.deathsgun.modmanager.gui.widget.ModListEntry
4142
import xyz.deathsgun.modmanager.gui.widget.ModListWidget
4243
import kotlin.math.min
4344

44-
class ModsOverviewScreen(private val previousScreen: Screen) : Screen(TranslatableText("modmanager.title.overview")),
45-
IListScreen {
45+
class ModsOverviewScreen(private val previousScreen: Screen) : Screen(LiteralText.EMPTY), IListScreen {
4646

4747
private var query: String = ""
4848
private var selectedMod: ModListEntry? = null

src/main/kotlin/xyz/deathsgun/modmanager/update/UpdateManager.kt

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -196,22 +196,25 @@ class UpdateManager {
196196
ModManager.modManager.setModState(metadata.id, modId, State.INSTALLED)
197197
return
198198
}
199-
if (version.foundTroughFallback) {
200-
val hash = findJarByModContainer(metadata)?.sha512()
201-
if (hash != null) {
202-
for (asset in version.assets) {
203-
if (hash == asset.hashes["sha512"]) {
204-
logger.info("No update for {} found!", metadata.id)
205-
ModManager.modManager.setModState(metadata.id, modId, State.INSTALLED)
206-
return
207-
}
199+
val hash = findJarByModContainer(metadata)?.sha512()
200+
if (hash != null) {
201+
for (asset in version.assets) {
202+
if (hash == asset.hashes["sha512"]) {
203+
logger.info("No update for {} found!", metadata.id)
204+
ModManager.modManager.setModState(metadata.id, modId, State.INSTALLED)
205+
return
208206
}
209207
}
210208
}
211209
when (val modResult = ModManager.modManager.provider[provider.getName().lowercase()]?.getMod(modId)) {
212210
is ModResult.Success -> {
213211
ModManager.modManager.setModState(metadata.id, modId, State.OUTDATED)
214-
logger.info("Update for {} found [{} -> {}]", metadata.id, metadata.version.friendlyString, version.version)
212+
logger.info(
213+
"Update for {} found [{} -> {}]",
214+
metadata.id,
215+
metadata.version.friendlyString,
216+
version.version
217+
)
215218
this.updates.add(Update(modResult.mod, metadata.id, metadata.version.friendlyString, version))
216219
}
217220
is ModResult.Error -> {
@@ -233,7 +236,12 @@ class UpdateManager {
233236
fun installMod(mod: Mod): ModInstallResult {
234237
return try {
235238
val provider = ModManager.modManager.getSelectedProvider()
236-
?: return ModInstallResult.Error(TranslatableText("modmanager.error.noProviderSelected"))
239+
?: return ModInstallResult.Error(
240+
TranslatableText(
241+
"modmanager.error.noProviderSelected",
242+
ModManager.modManager.config.defaultProvider
243+
)
244+
)
237245
val versions = when (val result = provider.getVersionsForMod(mod.id)) {
238246
is VersionResult.Error -> return ModInstallResult.Error(result.text, result.cause)
239247
is VersionResult.Success -> result.versions
@@ -243,8 +251,7 @@ class UpdateManager {
243251
ModManager.getMinecraftVersion(),
244252
ModManager.modManager.config.updateChannel,
245253
versions
246-
)
247-
?: return ModInstallResult.Error(TranslatableText("modmanager.error.noCompatibleModVersionFound"))
254+
) ?: return ModInstallResult.Error(TranslatableText("modmanager.error.noCompatibleModVersionFound"))
248255

249256
logger.info("Installing {} v{}", mod.name, version.version)
250257
val dir = FabricLoader.getInstance().gameDir.resolve("mods")

src/main/kotlin/xyz/deathsgun/modmanager/update/VersionFinder.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ object VersionFinder {
3838
if (version?.version == installedVersion) {
3939
return null
4040
}
41-
version?.foundTroughFallback = true
4241
return version
4342
}
4443

src/main/resources/assets/modmanager/lang/en_us.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,18 @@
3636
"modmanager.details.author": "By %s",
3737
"modmanager.details.versioning": "From %s to %s",
3838
"modmanager.error.title": "§b§4Error:§r",
39+
"modmanager.error.container.notFound": "The mod you trying to update has been unloaded in the mean time\nThis shouldn't be possible",
3940
"modmanager.error.unknown": "Unknown error while retrieving data:\n %s",
4041
"modmanager.error.unknown.install": "Unknown error while during installation:\n %s",
4142
"modmanager.error.unknown.update": "Unknown error while during update:\n %s",
4243
"modmanager.error.invalidStatus": "Received invalid status code:\n %d",
4344
"modmanager.error.network": "Network error while retrieving data:\n %s",
4445
"modmanager.error.failedToParse": "Failed to parse response:\n %s",
4546
"modmanager.error.noCompatibleModVersionFound": "No compatible version found for your current channel!\nTry changing the channel in the Mod Manager settings!",
47+
"modmanager.error.noProviderSelected": "The selected provider %s is not available!",
48+
"modmanager.error.update.noFabricJar": "The mod author has marked a version compatible\nto fabric but does not provide a for it!",
4649
"modmanager.error.jar.notFound": "Error jar file not found. Is it part of another mod?",
50+
"modmanager.error.jar.failedDelete": "Failed to delete mod:\n %s",
4751
"modmanager.error.invalidHash": "Error the downloaded file is probably broken as the %s hashes don't match\nTry checking your network or contact the mod author",
4852
"modmanager.status.installing": "Installing %s...",
4953
"modmanager.status.install.success": "Successfully installed %s!\nDo you want to go back?",

0 commit comments

Comments
 (0)