()
| 112 | private final Optional<Consumer<String>> statusConsumer = StartupMessageManager.modLoaderConsumer(); |
| 113 | |
| 114 | private ModLoader() |
| 115 | { |
| 116 | INSTANCE = this; |
| 117 | this.launchClassLoader = FMLLoader.getLaunchClassLoader(); |
| 118 | this.loadingModList = FMLLoader.getLoadingModList(); |
| 119 | this.loadingExceptions = FMLLoader.getLoadingModList(). |
| 120 | getErrors().stream().flatMap(ModLoadingException::fromEarlyException).collect(Collectors.toList()); |
| 121 | this.loadingWarnings = FMLLoader.getLoadingModList(). |
| 122 | getBrokenFiles().stream().map(file -> new ModLoadingWarning(null, ModLoadingStage.VALIDATE, |
| 123 | InvalidModIdentifier.identifyJarProblem(file.getFilePath()).orElse("fml.modloading.brokenfile"), file.getFileName())).collect(Collectors.toList()); |
| 124 | FMLLoader.getLoadingModList() |
| 125 | .getModFiles().stream().filter(ModFileInfo::missingLicense) //Search for files with missing licenses |
| 126 | .filter(modFileInfo -> modFileInfo.getMods().stream().noneMatch(thisModInfo -> this.loadingExceptions.stream().map(ModLoadingException::getModInfo).anyMatch(otherInfo -> otherInfo == thisModInfo))) //Ignore files where any other mod already encountered an error |
| 127 | .map(modFileInfo -> new ModLoadingException(null, ModLoadingStage.VALIDATE, "fml.modloading.missinglicense", null, modFileInfo.getFile())) |
| 128 | .forEach(this.loadingExceptions::add); |
| 129 | LOGGER.debug(CORE, "Loading Network data for FML net version: {}", FMLNetworkConstants.init()); |
| 130 | CrashReportExtender.registerCrashCallable("ModLauncher", FMLLoader::getLauncherInfo); |
| 131 | CrashReportExtender.registerCrashCallable("ModLauncher launch target", FMLLoader::launcherHandlerName); |
| 132 | CrashReportExtender.registerCrashCallable("ModLauncher naming", FMLLoader::getNaming); |
| 133 | CrashReportExtender.registerCrashCallable("ModLauncher services", this::computeModLauncherServiceList); |
| 134 | CrashReportExtender.registerCrashCallable("FML", ForgeVersion::getSpec); |
| 135 | CrashReportExtender.registerCrashCallable("Forge", ()->ForgeVersion.getGroup()+":"+ForgeVersion.getVersion()); |
| 136 | CrashReportExtender.registerCrashCallable("FML Language Providers", this::computeLanguageList); |
| 137 | } |
| 138 | |
| 139 | private String computeLanguageList() { |
| 140 | return "\n"+FMLLoader.getLanguageLoadingProvider().applyForEach(lp->lp.name() +"@"+ lp.getClass().getPackage().getImplementationVersion()).collect(Collectors.joining("\n\t\t", "\t\t", "")); |
nothing calls this directly
no test coverage detected