Search in sources :

Example 6 with ModFileResourcePack

use of net.minecraftforge.fml.packs.ModFileResourcePack in project LoliServer by Loli-Server.

the class ClientHooks method logMissingTextureErrors.

public static void logMissingTextureErrors() {
    if (missingTextures.isEmpty() && brokenTextures.isEmpty()) {
        return;
    }
    Logger logger = LogManager.getLogger("FML.TEXTURE_ERRORS");
    logger.error(Strings.repeat("+=", 25));
    logger.error("The following texture errors were found.");
    Map<String, FallbackResourceManager> resManagers = ObfuscationReflectionHelper.getPrivateValue(SimpleReloadableResourceManager.class, (SimpleReloadableResourceManager) Minecraft.getInstance().getResourceManager(), "field_199014" + "_c");
    for (String resourceDomain : badTextureDomains) {
        Set<ResourceLocation> missing = missingTextures.get(resourceDomain);
        logger.error(Strings.repeat("=", 50));
        logger.error("  DOMAIN {}", resourceDomain);
        logger.error(Strings.repeat("-", 50));
        logger.error("  domain {} is missing {} texture{}", resourceDomain, missing.size(), missing.size() != 1 ? "s" : "");
        FallbackResourceManager fallbackResourceManager = resManagers.get(resourceDomain);
        if (fallbackResourceManager == null) {
            logger.error("    domain {} is missing a resource manager - it is probably a side-effect of automatic texture processing", resourceDomain);
        } else {
            List<IResourcePack> resPacks = fallbackResourceManager.fallbacks;
            logger.error("    domain {} has {} location{}:", resourceDomain, resPacks.size(), resPacks.size() != 1 ? "s" : "");
            for (IResourcePack resPack : resPacks) {
                if (resPack instanceof ModFileResourcePack) {
                    ModFileResourcePack modRP = (ModFileResourcePack) resPack;
                    List<IModInfo> mods = modRP.getModFile().getModInfos();
                    logger.error("      mod(s) {} resources at {}", mods.stream().map(IModInfo::getDisplayName).collect(Collectors.toList()), modRP.getModFile().getFilePath());
                } else if (resPack instanceof ResourcePack) {
                    logger.error("      resource pack at path {}", ((ResourcePack) resPack).file.getPath());
                } else {
                    logger.error("      unknown resourcepack type {} : {}", resPack.getClass().getName(), resPack.getName());
                }
            }
        }
        logger.error(Strings.repeat("-", 25));
        if (missingTextures.containsKey(resourceDomain)) {
            logger.error("    The missing resources for domain {} are:", resourceDomain);
            for (ResourceLocation rl : missing) {
                logger.error("      {}", rl.getPath());
            }
            logger.error(Strings.repeat("-", 25));
        }
        if (!brokenTextures.containsRow(resourceDomain)) {
            logger.error("    No other errors exist for domain {}", resourceDomain);
        } else {
            logger.error("    The following other errors were reported for domain {}:", resourceDomain);
            Map<String, Set<ResourceLocation>> resourceErrs = brokenTextures.row(resourceDomain);
            for (String error : resourceErrs.keySet()) {
                logger.error(Strings.repeat("-", 25));
                logger.error("    Problem: {}", error);
                for (ResourceLocation rl : resourceErrs.get(error)) {
                    logger.error("      {}", rl.getPath());
                }
            }
        }
        logger.error(Strings.repeat("=", 50));
    }
    logger.error(Strings.repeat("+=", 25));
}
Also used : IModInfo(net.minecraftforge.forgespi.language.IModInfo) ResourcePack(net.minecraft.resources.ResourcePack) IResourcePack(net.minecraft.resources.IResourcePack) ModFileResourcePack(net.minecraftforge.fml.packs.ModFileResourcePack) Logger(org.apache.logging.log4j.Logger) IResourcePack(net.minecraft.resources.IResourcePack) ResourceLocation(net.minecraft.util.ResourceLocation) ModFileResourcePack(net.minecraftforge.fml.packs.ModFileResourcePack) FallbackResourceManager(net.minecraft.resources.FallbackResourceManager)

Aggregations

ModFileResourcePack (net.minecraftforge.fml.packs.ModFileResourcePack)6 IModInfo (net.minecraftforge.forgespi.language.IModInfo)6 ResourceLocation (net.minecraft.util.ResourceLocation)4 Logger (org.apache.logging.log4j.Logger)4 MatrixStack (com.mojang.blaze3d.matrix.MatrixStack)2 RenderSystem (com.mojang.blaze3d.systems.RenderSystem)2 Environment (cpw.mods.modlauncher.Environment)2 File (java.io.File)2 IOException (java.io.IOException)2 InputStream (java.io.InputStream)2 ArrayList (java.util.ArrayList)2 Collections (java.util.Collections)2 Comparator (java.util.Comparator)2 List (java.util.List)2 Entry (java.util.Map.Entry)2 CompletableFuture (java.util.concurrent.CompletableFuture)2 Consumer (java.util.function.Consumer)2 Function (java.util.function.Function)2 Collectors (java.util.stream.Collectors)2 Minecraft (net.minecraft.client.Minecraft)2