Class MergedForgeMinecraftProvider
java.lang.Object
net.fabricmc.loom.configuration.providers.minecraft.MinecraftProvider
net.fabricmc.loom.configuration.providers.minecraft.MergedMinecraftProvider
dev.architectury.loom.forge.minecraft.MergedForgeMinecraftProvider
- All Implemented Interfaces:
ForgeMinecraftProvider
public final class MergedForgeMinecraftProvider
extends MergedMinecraftProvider
implements ForgeMinecraftProvider
-
Constructor Summary
ConstructorsConstructorDescriptionMergedForgeMinecraftProvider(MinecraftMetadataProvider metadataProvider, ConfigContext configContext) -
Method Summary
Modifier and TypeMethodDescriptionprotected booleanpatched jar 的路径要等MinecraftPatchedProvider.provide()里的initPatchedFiles()之后才有值(本形态的最终产物全部来自那条链),因此生产段登记产物时先问一句「能不能求值」.protected voidprotected voidForge 的合并形态不产出minecraft-merged.jar,因此不登记基类的合并任务.Methods inherited from class net.fabricmc.loom.configuration.providers.minecraft.MergedMinecraftProvider
cacheKey, getOfficialNamespace, initFiles, mergeJars, produceOwnJars, provideMethods inherited from class net.fabricmc.loom.configuration.providers.minecraft.MinecraftProvider
addProducerDependency, dependOn, dir, earlyProjectionBlocker, extractBundledServerJar, file, getExtension, getJarPrefix, getMinecraftClientJar, getMinecraftExtractedServerJar, getMinecraftServerJar, getProject, getServerBundleMetadata, getVersionInfo, isLegacySplitOfficialNamespaceVersion, isLegacyVersion, isTaskProduction, minecraftVersion, minecraftWorkingDirectory, normalize, outputForTasks, path, producerOf, productionTaskPath, projectionBlocker, provideClient, provideMinecraftJars, provideServer, refreshDeps, registerTaskProducedArtifact, setJarPrefix, workingDir
-
Constructor Details
-
MergedForgeMinecraftProvider
public MergedForgeMinecraftProvider(MinecraftMetadataProvider metadataProvider, ConfigContext configContext)
-
-
Method Details
-
mergeJars
- Overrides:
mergeJarsin classMergedMinecraftProvider- Throws:
IOException
-
registerProviderTasks
Forge 的合并形态不产出minecraft-merged.jar,因此不登记基类的合并任务.本形态的产物是 patched jar(见
getMinecraftJars()),而mergeJars()也不做合并、 只抽取内嵌 server jar——抽取本身已由基类生产段按serverBundleMetadata登记成extractMinecraftServerJar。沿用基类的登记会凭空多出一个无人消费的mergeMinecraftJars: 它写的minecraft-merged.jar不在getMinecraftJars()里,没有任何消费方, 却会白跑一次(并把两个 vanilla jar 的产出方拉进任务图)。- Overrides:
registerProviderTasksin classMergedMinecraftProvider- Parameters:
producers- 本次已登记的产物(可写):键是产物的绝对规范化路径
-
getMergedJar
- Overrides:
getMergedJarin classMergedMinecraftProvider
-
isFinalProductKnown
protected boolean isFinalProductKnown()patched jar 的路径要等MinecraftPatchedProvider.provide()里的initPatchedFiles()之后才有值(本形态的最终产物全部来自那条链),因此生产段登记产物时先问一句「能不能求值」.不能求值即跳过:patch 链自己会走
registerTaskProducedArtifact登记同一批产物 (那时路径已经算出来了),登记是「以最后一次为准」的并进语义,不会丢。- Overrides:
isFinalProductKnownin classMinecraftProvider- Returns:
- 此刻
MinecraftProvider.getMinecraftJars()是否已能求值
-
getMinecraftJars
- Overrides:
getMinecraftJarsin classMergedMinecraftProvider
-
getPatchedProvider
- Specified by:
getPatchedProviderin interfaceForgeMinecraftProvider
-