MCPcopy Create free account
hub / github.com/ElyPrismLauncher/Launcher / loadComponent

Function loadComponent

launcher/minecraft/ComponentUpdateTask.cpp:100–145  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

98}
99
100static LoadResult loadComponent(ComponentPtr component, Task::Ptr& loadTask, Net::Mode netmode)
101{
102 if (component->m_loaded) {
103 qCDebug(instanceProfileResolveC) << component->getName() << "is already loaded";
104 return LoadResult::LoadedLocal;
105 }
106
107 LoadResult result = LoadResult::Failed;
108 auto customPatchFilename = component->getFilename();
109 if (QFile::exists(customPatchFilename)) {
110 // if local file exists...
111
112 // check for uid problems inside...
113 bool fileChanged = false;
114 auto file = ProfileUtils::parseJsonFile(QFileInfo(customPatchFilename), false);
115 if (file->uid != component->m_uid) {
116 file->uid = component->m_uid;
117 fileChanged = true;
118 }
119 if (fileChanged) {
120 // FIXME: @QUALITY do not ignore return value
121 ProfileUtils::saveJsonFile(OneSixVersionFormat::versionFileToJson(file), customPatchFilename);
122 }
123
124 component->m_file = file;
125 component->m_loaded = true;
126 result = LoadResult::LoadedLocal;
127 } else {
128 auto metaVersion = APPLICATION->metadataIndex()->get(component->m_uid, component->m_version);
129 component->m_metaVersion = metaVersion;
130 if (metaVersion->isLoaded()) {
131 component->m_loaded = true;
132 result = LoadResult::LoadedLocal;
133 } else {
134 loadTask = APPLICATION->metadataIndex()->loadVersion(component->m_uid, component->m_version, netmode);
135 loadTask->start();
136 if (netmode == Net::Mode::Online)
137 result = LoadResult::RequiresRemote;
138 else if (metaVersion->isLoaded())
139 result = LoadResult::LoadedLocal;
140 else
141 result = LoadResult::Failed;
142 }
143 }
144 return result;
145}
146
147// FIXME: dead code. determine if this can still be useful?
148/*

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