fabric-resource-loader-v0-3.3.1+d4d4122a6f.jar
Download file
package net.fabricmc.fabric.mixin.resource.loader.client;
import com.llamalad7.mixinextras.sugar.Local;
import java.util.ArrayList;
import java.util.List;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.fabricmc.fabric.impl.resource.loader.FabricResourcePackProfile;
import net.minecraft.class_310;
import net.minecraft.class_3283;
import net.minecraft.class_3288;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Unique;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.ModifyArg;
@Environment(EnvType.CLIENT)
@Mixin(
targets = {"net/minecraft/class_315$3"}
)
public class GameOptionsWriteVisitorMixin {
@Unique
private static List<String> toPackListString(List<String> packs) {
List<String> copy = new ArrayList(packs.size());
class_3283 manager = class_310.method_1551().method_1520();
for(String pack : packs) {
class_3288 profile = manager.method_14449(pack);
if (profile == null || !((FabricResourcePackProfile)profile).fabric_isHidden()) {
copy.add(pack);
}
}
return copy;
}
@ModifyArg(
method = {"method_33681(Ljava/lang/String;Ljava/lang/Object;Ljava/util/function/Function;Ljava/util/function/Function;)Ljava/lang/Object;"},
at = @At(
value = "INVOKE",
target = "Ljava/util/function/Function;apply(Ljava/lang/Object;)Ljava/lang/Object;"
)
)
private <T> T skipHiddenPacks(T value, @Local String key) {
return (T)("resourcePacks".equals(key) && value instanceof List ? toPackListString((List)value) : value);
}
}
Download file