diff options
-rw-r--r-- | build.gradle.kts | 1 | ||||
-rw-r--r-- | gradle/libs.versions.toml | 14 | ||||
-rw-r--r-- | src/main/java/moe/nea/firmament/mixins/AppendRepoAsResourcePack.java | 24 | ||||
-rw-r--r-- | src/main/kotlin/repo/RepoModResourcePack.kt | 5 | ||||
-rw-r--r-- | src/main/resources/fabric.mod.json | 2 |
5 files changed, 27 insertions, 19 deletions
diff --git a/build.gradle.kts b/build.gradle.kts index 40eb5d8..4228167 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -440,6 +440,7 @@ tasks.processResources { "version" to project.version.toString(), "minecraft_version" to libs.versions.minecraft.get(), "fabric_kotlin_version" to libs.versions.fabric.kotlin.get(), + "fabric_api_version" to libs.versions.fabric.api.get(), "rei_version" to libs.versions.rei.get() ) replacements.forEach { (key, value) -> inputs.property(key, value) } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 1c9c1c1..bab7459 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -6,20 +6,20 @@ minecraft = "1.21.4" # Update from https://kotlinlang.org/ -kotlin = "2.1.0" +kotlin = "2.1.10" # Update from https://github.com/google/ksp/releases -kotlin_ksp = "2.1.0-1.0.29" +kotlin_ksp = "2.1.10-1.0.30" # Update from https://linkie.shedaniel.me/dependencies?loader=fabric -fabric_loader = "0.16.9" -fabric_api = "0.114.0+1.21.4" -yarn = "1.21.4+build.4" -modmenu = "13.0.0-beta.1" +fabric_loader = "0.16.10" +fabric_api = "0.117.0+1.21.4" +yarn = "1.21.4+build.8" +modmenu = "13.0.2" architectury = "15.0.1" rei = "18.0.796" # Update from https://maven.fabricmc.net/net/fabricmc/fabric-language-kotlin/ -fabric_kotlin = "1.13.0+kotlin.2.1.0" +fabric_kotlin = "1.13.1+kotlin.2.1.10" # Update from https://maven.architectury.dev/dev/architectury/loom/dev.architectury.loom.gradle.plugin/ loom = "1.7.414" # TODO: port back to architectury (and) 1.9.424 diff --git a/src/main/java/moe/nea/firmament/mixins/AppendRepoAsResourcePack.java b/src/main/java/moe/nea/firmament/mixins/AppendRepoAsResourcePack.java index 22ce991..d8e35d7 100644 --- a/src/main/java/moe/nea/firmament/mixins/AppendRepoAsResourcePack.java +++ b/src/main/java/moe/nea/firmament/mixins/AppendRepoAsResourcePack.java @@ -1,28 +1,34 @@ package moe.nea.firmament.mixins; +import com.llamalad7.mixinextras.sugar.Local; import moe.nea.firmament.repo.RepoModResourcePack; import net.fabricmc.fabric.api.resource.ModResourcePack; +import net.fabricmc.fabric.impl.resource.loader.ModResourcePackSorter; import net.fabricmc.fabric.impl.resource.loader.ModResourcePackUtil; +import net.fabricmc.loader.api.FabricLoader; import net.minecraft.resource.ResourceType; import org.jetbrains.annotations.Nullable; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import java.util.List; @Mixin(ModResourcePackUtil.class) public class AppendRepoAsResourcePack { - @Inject(method = "appendModResourcePacks", at = @At("TAIL")) - private static void onAppendModResourcePack( - List<ModResourcePack> packs, - ResourceType type, - @Nullable String subPath, - CallbackInfo ci - ) { - RepoModResourcePack.Companion.append(packs); - } + @Inject( + method = "getModResourcePacks", + at = @At(value = "INVOKE", target = "Lnet/fabricmc/fabric/impl/resource/loader/ModResourcePackSorter;getPacks()Ljava/util/List;"), + require = 0 + ) + private static void onAppendModResourcePack( + FabricLoader fabricLoader, ResourceType type, @Nullable String subPath, CallbackInfoReturnable<List<ModResourcePack>> cir, + @Local ModResourcePackSorter sorter + ) { + RepoModResourcePack.Companion.append(sorter); + } } diff --git a/src/main/kotlin/repo/RepoModResourcePack.kt b/src/main/kotlin/repo/RepoModResourcePack.kt index 617efec..2fdf710 100644 --- a/src/main/kotlin/repo/RepoModResourcePack.kt +++ b/src/main/kotlin/repo/RepoModResourcePack.kt @@ -5,6 +5,7 @@ import java.nio.file.Files import java.nio.file.Path import java.util.* import net.fabricmc.fabric.api.resource.ModResourcePack +import net.fabricmc.fabric.impl.resource.loader.ModResourcePackSorter import net.fabricmc.loader.api.FabricLoader import net.fabricmc.loader.api.metadata.ModMetadata import kotlin.io.path.exists @@ -28,9 +29,9 @@ import moe.nea.firmament.Firmament class RepoModResourcePack(val basePath: Path) : ModResourcePack { companion object { - fun append(packs: MutableList<in ModResourcePack>) { + fun append(packs: ModResourcePackSorter) { Firmament.logger.info("Registering mod resource pack") - packs.add(RepoModResourcePack(RepoDownloadManager.repoSavedLocation)) + packs.addPack(RepoModResourcePack(RepoDownloadManager.repoSavedLocation)) } fun createResourceDirectly(identifier: Identifier): Optional<Resource> { diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 3b988b1..cf7130b 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -48,7 +48,7 @@ "firmament.mixins.json" ], "depends": { - "fabric": "*", + "fabric": ">=${fabric_api_version}", "fabric-language-kotlin": ">=${fabric_kotlin_version}", "minecraft": ">=${minecraft_version}" }, |