MCPcopy Create free account
hub / github.com/FreesmTeam/FreesmLauncher / loadComponent

Function loadComponent

launcher/minecraft/ComponentUpdateTask.cpp:68–113  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

66}
67
68static LoadResult loadComponent(ComponentPtr component, Task::Ptr& loadTask, Net::Mode netmode)
69{
70 if (component->m_loaded) {
71 qCDebug(instanceProfileResolveC) << component->getName() << "is already loaded";
72 return LoadResult::LoadedLocal;
73 }
74
75 LoadResult result = LoadResult::Failed;
76 auto customPatchFilename = component->getFilename();
77 if (QFile::exists(customPatchFilename)) {
78 // if local file exists...
79
80 // check for uid problems inside...
81 bool fileChanged = false;
82 auto file = ProfileUtils::parseJsonFile(QFileInfo(customPatchFilename), false);
83 if (file->uid != component->m_uid) {
84 file->uid = component->m_uid;
85 fileChanged = true;
86 }
87 if (fileChanged) {
88 // FIXME: @QUALITY do not ignore return value
89 ProfileUtils::saveJsonFile(OneSixVersionFormat::versionFileToJson(file), customPatchFilename);
90 }
91
92 component->m_file = file;
93 component->m_loaded = true;
94 result = LoadResult::LoadedLocal;
95 } else {
96 auto metaVersion = APPLICATION->metadataIndex()->get(component->m_uid, component->m_version);
97 component->m_metaVersion = metaVersion;
98 if (metaVersion->isLoaded()) {
99 component->m_loaded = true;
100 result = LoadResult::LoadedLocal;
101 } else {
102 loadTask = APPLICATION->metadataIndex()->loadVersion(component->m_uid, component->m_version, netmode);
103 loadTask->start();
104 if (netmode == Net::Mode::Online)
105 result = LoadResult::RequiresRemote;
106 else if (metaVersion->isLoaded())
107 result = LoadResult::LoadedLocal;
108 else
109 result = LoadResult::Failed;
110 }
111 }
112 return result;
113}
114
115// FIXME: dead code. determine if this can still be useful?
116/*

Callers 1

loadComponentsMethod · 0.85

Calls 10

parseJsonFileFunction · 0.85
QFileInfoClass · 0.85
saveJsonFileFunction · 0.85
getNameMethod · 0.80
getFilenameMethod · 0.80
metadataIndexMethod · 0.80
getMethod · 0.45
isLoadedMethod · 0.45
loadVersionMethod · 0.45
startMethod · 0.45

Tested by

no test coverage detected