fix: Don't crash with newer fabric versions anymore

This commit is contained in:
Linnea Gräf
2025-02-17 20:47:56 +01:00
parent a23ac73272
commit 9cce9ddf26
5 changed files with 27 additions and 19 deletions

View File

@@ -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);
}
}

View File

@@ -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> {

View File

@@ -48,7 +48,7 @@
"firmament.mixins.json"
],
"depends": {
"fabric": "*",
"fabric": ">=${fabric_api_version}",
"fabric-language-kotlin": ">=${fabric_kotlin_version}",
"minecraft": ">=${minecraft_version}"
},