package me.sashegdev.justasplash.client; import net.minecraft.network.chat.Component; import net.minecraft.server.packs.PackLocationInfo; import net.minecraft.server.packs.PackResources; import net.minecraft.server.packs.PackSelectionConfig; import net.minecraft.server.packs.PackType; import net.minecraft.server.packs.repository.Pack; import net.minecraft.server.packs.repository.PackCompatibility; import net.minecraft.server.packs.repository.PackSource; import net.minecraft.world.flag.FeatureFlagSet; import net.neoforged.api.distmarker.Dist; import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.fml.common.EventBusSubscriber; import net.neoforged.neoforge.event.AddPackFindersEvent; import java.util.Optional; @EventBusSubscriber(value = Dist.CLIENT, modid = "justasplash", bus = EventBusSubscriber.Bus.MOD) public class ConfigPackHandler { @SubscribeEvent public static void onAddPackFinders(AddPackFindersEvent e) { if (e.getPackType() != PackType.CLIENT_RESOURCES) return; PackLocationInfo info = new PackLocationInfo("justasplash_config", Component.literal("JustASplash Config Assets"), PackSource.BUILT_IN, Optional.empty()); PackSelectionConfig sel = new PackSelectionConfig(true, Pack.Position.TOP, false); Pack.Metadata meta = new Pack.Metadata(Component.literal("JustASplash Config Assets"), PackCompatibility.COMPATIBLE, FeatureFlagSet.of(), java.util.List.of(), false); Pack pack = new Pack(info, new Pack.ResourcesSupplier() { @Override public PackResources openPrimary(PackLocationInfo loc) { return new ConfigPackResources(loc); } @Override public PackResources openFull(PackLocationInfo loc, Pack.Metadata m) { return new ConfigPackResources(loc); } }, meta, sel); e.addRepositorySource(c -> c.accept(pack)); } }