Search in sources :

Example 1 with Pack

use of net.minecraft.server.packs.repository.Pack in project MinecraftForge by MinecraftForge.

the class ClientModLoader method clientPackFinder.

private static void clientPackFinder(Map<IModFile, ? extends PathResourcePack> modResourcePacks, Consumer<Pack> consumer, Pack.PackConstructor factory) {
    List<PathResourcePack> hiddenPacks = new ArrayList<>();
    for (Entry<IModFile, ? extends PathResourcePack> e : modResourcePacks.entrySet()) {
        IModInfo mod = e.getKey().getModInfos().get(0);
        final String name = "mod:" + mod.getModId();
        final Pack packInfo = Pack.create(name, false, e::getValue, factory, Pack.Position.BOTTOM, PackSource.DEFAULT);
        if (packInfo == null) {
            // Vanilla only logs an error, instead of propagating, so handle null and warn that something went wrong
            ModLoader.get().addWarning(new ModLoadingWarning(mod, ModLoadingStage.ERROR, "fml.modloading.brokenresources", e.getKey()));
            continue;
        }
        LOGGER.debug(CORE, "Generating PackInfo named {} for mod file {}", name, e.getKey().getFilePath());
        if (mod.getOwningFile().showAsResourcePack()) {
            consumer.accept(packInfo);
        } else {
            hiddenPacks.add(e.getValue());
        }
    }
    final Pack packInfo = Pack.create("mod_resources", true, () -> new DelegatingResourcePack("mod_resources", "Mod Resources", new PackMetadataSection(new TranslatableComponent("fml.resources.modresources", hiddenPacks.size()), PackType.CLIENT_RESOURCES.getVersion(SharedConstants.getCurrentVersion())), hiddenPacks), factory, Pack.Position.BOTTOM, PackSource.DEFAULT);
    consumer.accept(packInfo);
}
Also used : DelegatingResourcePack(net.minecraftforge.resource.DelegatingResourcePack) IModInfo(net.minecraftforge.forgespi.language.IModInfo) ClientPackSource(net.minecraft.client.resources.ClientPackSource) RepositorySource(net.minecraft.server.packs.repository.RepositorySource) PackType(net.minecraft.server.packs.PackType) File(java.io.File) MinecraftForge(net.minecraftforge.common.MinecraftForge) PackSource(net.minecraft.server.packs.repository.PackSource) IModFile(net.minecraftforge.forgespi.locating.IModFile) TranslatableComponent(net.minecraft.network.chat.TranslatableComponent) IModFile(net.minecraftforge.forgespi.locating.IModFile) Pack(net.minecraft.server.packs.repository.Pack) PathResourcePack(net.minecraftforge.resource.PathResourcePack) DelegatingResourcePack(net.minecraftforge.resource.DelegatingResourcePack) PathResourcePack(net.minecraftforge.resource.PathResourcePack) PackMetadataSection(net.minecraft.server.packs.metadata.pack.PackMetadataSection)

Example 2 with Pack

use of net.minecraft.server.packs.repository.Pack in project MinecraftForge by MinecraftForge.

the class ServerLifecycleHooks method serverPackFinder.

private static void serverPackFinder(Map<IModFile, ? extends PathResourcePack> modResourcePacks, Consumer<Pack> consumer, Pack.PackConstructor factory) {
    for (Entry<IModFile, ? extends PathResourcePack> e : modResourcePacks.entrySet()) {
        IModInfo mod = e.getKey().getModInfos().get(0);
        // skip the minecraft "mod"
        if (Objects.equals(mod.getModId(), "minecraft"))
            continue;
        final String name = "mod:" + mod.getModId();
        final Pack packInfo = Pack.create(name, false, e::getValue, factory, Pack.Position.BOTTOM, PackSource.DEFAULT);
        if (packInfo == null) {
            // Vanilla only logs an error, instead of propagating, so handle null and warn that something went wrong
            ModLoader.get().addWarning(new ModLoadingWarning(mod, ModLoadingStage.ERROR, "fml.modloading.brokenresources", e.getKey()));
            continue;
        }
        LOGGER.debug(CORE, "Generating PackInfo named {} for mod file {}", name, e.getKey().getFilePath());
        consumer.accept(packInfo);
    }
}
Also used : IModInfo(net.minecraftforge.forgespi.language.IModInfo) RepositorySource(net.minecraft.server.packs.repository.RepositorySource) ModLoadingStage(net.minecraftforge.fml.ModLoadingStage) MinecraftForge(net.minecraftforge.common.MinecraftForge) ConnectionType(net.minecraftforge.network.ConnectionType) PackSource(net.minecraft.server.packs.repository.PackSource) IModFile(net.minecraftforge.forgespi.locating.IModFile) LevelResource(net.minecraft.world.level.storage.LevelResource) IModFile(net.minecraftforge.forgespi.locating.IModFile) ModLoadingWarning(net.minecraftforge.fml.ModLoadingWarning) Pack(net.minecraft.server.packs.repository.Pack) PathResourcePack(net.minecraftforge.resource.PathResourcePack)

Aggregations

Pack (net.minecraft.server.packs.repository.Pack)2 PackSource (net.minecraft.server.packs.repository.PackSource)2 RepositorySource (net.minecraft.server.packs.repository.RepositorySource)2 MinecraftForge (net.minecraftforge.common.MinecraftForge)2 IModInfo (net.minecraftforge.forgespi.language.IModInfo)2 IModFile (net.minecraftforge.forgespi.locating.IModFile)2 PathResourcePack (net.minecraftforge.resource.PathResourcePack)2 File (java.io.File)1 ClientPackSource (net.minecraft.client.resources.ClientPackSource)1 TranslatableComponent (net.minecraft.network.chat.TranslatableComponent)1 PackType (net.minecraft.server.packs.PackType)1 PackMetadataSection (net.minecraft.server.packs.metadata.pack.PackMetadataSection)1 LevelResource (net.minecraft.world.level.storage.LevelResource)1 ModLoadingStage (net.minecraftforge.fml.ModLoadingStage)1 ModLoadingWarning (net.minecraftforge.fml.ModLoadingWarning)1 ConnectionType (net.minecraftforge.network.ConnectionType)1 DelegatingResourcePack (net.minecraftforge.resource.DelegatingResourcePack)1