fix: manually filter packs hidden via fabric api
ci/woodpecker/push/jfmod Pipeline was successful Details

This commit is contained in:
Johannes Frohnmeyer 2024-03-15 12:07:09 +01:00
parent 1b71e5ce5a
commit 134df39ca1
Signed by: Johannes
GPG Key ID: E76429612C2929F4
2 changed files with 8 additions and 0 deletions

View File

@ -27,6 +27,7 @@ loom {
}
dependencies {
include(modImplementation(fabricApi.module("fabric-resource-loader-v0", "0.96.4+1.20.4"))!!)
modImplementation("io.gitlab.jfronny.libjf:libjf-base:${jfMod.libJfVersion.get()}")
// For testing in dev environment

View File

@ -4,6 +4,7 @@ import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
import io.gitlab.jfronny.aps.client.impl.ResourcePackOrganizerLockState;
import io.gitlab.jfronny.libjf.LibJf;
import net.fabricmc.fabric.impl.resource.loader.FabricResourcePackProfile;
import net.minecraft.client.gui.screen.pack.ResourcePackOrganizer;
import net.minecraft.resource.ResourcePackManager;
import net.minecraft.resource.ResourcePackProfile;
@ -44,11 +45,17 @@ public abstract class ResourcePackOrganizerMixin {
disabledPacks.clear();
disabledPacks.addAll(resourcePackManager.getProfiles());
disabledPacks.removeAll(enabledPacks);
filterFabricPacks(enabledPacks);
filterFabricPacks(disabledPacks);
if (aps$packScan == task) aps$packScan = null;
}
if (aps$lock.emitScanFinished().shouldContinue()) aps$startScan();
}
private void filterFabricPacks(List<ResourcePackProfile> list) {
list.removeIf(profile -> profile instanceof FabricResourcePackProfile prpp && prpp.fabric_isHidden());
}
/**
* @author JFronny
* @reason Inject lock and resynchronize from pack scan