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

@@ -440,6 +440,7 @@ tasks.processResources {
"version" to project.version.toString(), "version" to project.version.toString(),
"minecraft_version" to libs.versions.minecraft.get(), "minecraft_version" to libs.versions.minecraft.get(),
"fabric_kotlin_version" to libs.versions.fabric.kotlin.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() "rei_version" to libs.versions.rei.get()
) )
replacements.forEach { (key, value) -> inputs.property(key, value) } replacements.forEach { (key, value) -> inputs.property(key, value) }

View File

@@ -6,20 +6,20 @@
minecraft = "1.21.4" minecraft = "1.21.4"
# Update from https://kotlinlang.org/ # Update from https://kotlinlang.org/
kotlin = "2.1.0" kotlin = "2.1.10"
# Update from https://github.com/google/ksp/releases # 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 # Update from https://linkie.shedaniel.me/dependencies?loader=fabric
fabric_loader = "0.16.9" fabric_loader = "0.16.10"
fabric_api = "0.114.0+1.21.4" fabric_api = "0.117.0+1.21.4"
yarn = "1.21.4+build.4" yarn = "1.21.4+build.8"
modmenu = "13.0.0-beta.1" modmenu = "13.0.2"
architectury = "15.0.1" architectury = "15.0.1"
rei = "18.0.796" rei = "18.0.796"
# Update from https://maven.fabricmc.net/net/fabricmc/fabric-language-kotlin/ # 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/ # 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 loom = "1.7.414" # TODO: port back to architectury (and) 1.9.424

View File

@@ -1,28 +1,34 @@
package moe.nea.firmament.mixins; package moe.nea.firmament.mixins;
import com.llamalad7.mixinextras.sugar.Local;
import moe.nea.firmament.repo.RepoModResourcePack; import moe.nea.firmament.repo.RepoModResourcePack;
import net.fabricmc.fabric.api.resource.ModResourcePack; 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.fabric.impl.resource.loader.ModResourcePackUtil;
import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.resource.ResourceType; import net.minecraft.resource.ResourceType;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
import java.util.List; import java.util.List;
@Mixin(ModResourcePackUtil.class) @Mixin(ModResourcePackUtil.class)
public class AppendRepoAsResourcePack { public class AppendRepoAsResourcePack {
@Inject(method = "appendModResourcePacks", at = @At("TAIL")) @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( private static void onAppendModResourcePack(
List<ModResourcePack> packs, FabricLoader fabricLoader, ResourceType type, @Nullable String subPath, CallbackInfoReturnable<List<ModResourcePack>> cir,
ResourceType type, @Local ModResourcePackSorter sorter
@Nullable String subPath,
CallbackInfo ci
) { ) {
RepoModResourcePack.Companion.append(packs); RepoModResourcePack.Companion.append(sorter);
} }
} }

View File

@@ -5,6 +5,7 @@ import java.nio.file.Files
import java.nio.file.Path import java.nio.file.Path
import java.util.* import java.util.*
import net.fabricmc.fabric.api.resource.ModResourcePack 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.FabricLoader
import net.fabricmc.loader.api.metadata.ModMetadata import net.fabricmc.loader.api.metadata.ModMetadata
import kotlin.io.path.exists import kotlin.io.path.exists
@@ -28,9 +29,9 @@ import moe.nea.firmament.Firmament
class RepoModResourcePack(val basePath: Path) : ModResourcePack { class RepoModResourcePack(val basePath: Path) : ModResourcePack {
companion object { companion object {
fun append(packs: MutableList<in ModResourcePack>) { fun append(packs: ModResourcePackSorter) {
Firmament.logger.info("Registering mod resource pack") Firmament.logger.info("Registering mod resource pack")
packs.add(RepoModResourcePack(RepoDownloadManager.repoSavedLocation)) packs.addPack(RepoModResourcePack(RepoDownloadManager.repoSavedLocation))
} }
fun createResourceDirectly(identifier: Identifier): Optional<Resource> { fun createResourceDirectly(identifier: Identifier): Optional<Resource> {

View File

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