Search in sources :

Example 1 with FallbackResourceManager

use of net.minecraft.resources.FallbackResourceManager in project Magma-1.16.x by magmafoundation.

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)

Example 2 with FallbackResourceManager

use of net.minecraft.resources.FallbackResourceManager 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

FallbackResourceManager (net.minecraft.resources.FallbackResourceManager)2 IResourcePack (net.minecraft.resources.IResourcePack)2 ResourcePack (net.minecraft.resources.ResourcePack)2 ResourceLocation (net.minecraft.util.ResourceLocation)2 ModFileResourcePack (net.minecraftforge.fml.packs.ModFileResourcePack)2 IModInfo (net.minecraftforge.forgespi.language.IModInfo)2 Logger (org.apache.logging.log4j.Logger)2