mirror of
https://github.com/architectury/architectury-loom.git
synced 2026-03-30 13:05:27 -05:00
Isolate mappings provider and TR service on Forge
This commit is contained in:
@@ -284,7 +284,7 @@ public final class CompileConfiguration {
|
||||
minecraftProvider.provide();
|
||||
|
||||
final DependencyInfo mappingsDep = DependencyInfo.create(project, Constants.Configurations.MAPPINGS);
|
||||
final MappingsProviderImpl mappingsProvider = MappingsProviderImpl.getInstance(project, mappingsDep, minecraftProvider);
|
||||
final MappingsProviderImpl mappingsProvider = MappingsProviderImpl.getInstance(project, extension, mappingsDep, minecraftProvider);
|
||||
extension.setMappingsProvider(mappingsProvider);
|
||||
mappingsProvider.applyToProject(project, mappingsDep);
|
||||
|
||||
|
||||
@@ -42,6 +42,7 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.StringJoiner;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import com.google.common.base.Stopwatch;
|
||||
@@ -119,8 +120,17 @@ public class MappingsProviderImpl implements MappingsProvider, SharedService {
|
||||
this.intermediaryService = intermediaryService;
|
||||
}
|
||||
|
||||
public static synchronized MappingsProviderImpl getInstance(Project project, DependencyInfo dependency, MinecraftProvider minecraftProvider) {
|
||||
return SharedServiceManager.get(project).getOrCreateService("MappingsProvider:%s:%s".formatted(dependency.getDepString(), minecraftProvider.minecraftVersion()), () -> {
|
||||
public static synchronized MappingsProviderImpl getInstance(Project project, LoomGradleExtension extension, DependencyInfo dependency, MinecraftProvider minecraftProvider) {
|
||||
StringJoiner id = new StringJoiner(":").add("MappingsProvider");
|
||||
id.add(dependency.getDepString());
|
||||
id.add(minecraftProvider.minecraftVersion());
|
||||
|
||||
// Arch: we add :forge since Forge support uses a different MappingsProvider.
|
||||
if (extension.isForge()) {
|
||||
id.add("forge");
|
||||
}
|
||||
|
||||
return SharedServiceManager.get(project).getOrCreateService(id.toString(), () -> {
|
||||
Supplier<IntermediateMappingsService> intermediaryService = Suppliers.memoize(() -> IntermediateMappingsService.getInstance(project, minecraftProvider));
|
||||
return create(project, dependency, minecraftProvider, intermediaryService);
|
||||
});
|
||||
|
||||
@@ -72,6 +72,10 @@ public class TinyRemapperService implements SharedService {
|
||||
joiner.add(project.getPath());
|
||||
}
|
||||
|
||||
if (extension.isForge()) {
|
||||
joiner.add("forge");
|
||||
}
|
||||
|
||||
final String id = joiner.toString();
|
||||
|
||||
TinyRemapperService service = sharedServiceManager.getOrCreateService(id, () -> {
|
||||
|
||||
Reference in New Issue
Block a user