mirror of
https://github.com/MultiMC/MultiMC5.git
synced 2024-09-02 04:59:06 +00:00
GH-1778: Fix placement of modded Minecraft.jar in OneSix instances.
This commit is contained in:
parent
12c3683ec0
commit
858b490c74
@ -97,6 +97,11 @@ QString MinecraftInstance::minecraftRoot() const
|
|||||||
return mcDir.filePath();
|
return mcDir.filePath();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString MinecraftInstance::binRoot() const
|
||||||
|
{
|
||||||
|
return FS::PathCombine(minecraftRoot(), "bin");
|
||||||
|
}
|
||||||
|
|
||||||
std::shared_ptr< BaseVersionList > MinecraftInstance::versionList() const
|
std::shared_ptr< BaseVersionList > MinecraftInstance::versionList() const
|
||||||
{
|
{
|
||||||
return ENV.getVersionList("net.minecraft");
|
return ENV.getVersionList("net.minecraft");
|
||||||
|
@ -19,6 +19,9 @@ public:
|
|||||||
/// Path to the instance's minecraft directory.
|
/// Path to the instance's minecraft directory.
|
||||||
QString minecraftRoot() const;
|
QString minecraftRoot() const;
|
||||||
|
|
||||||
|
/// Path to the instance's minecraft/bin directory.
|
||||||
|
QString binRoot() const;
|
||||||
|
|
||||||
////// Mod Lists //////
|
////// Mod Lists //////
|
||||||
virtual std::shared_ptr<ModList> resourcePackList() const
|
virtual std::shared_ptr<ModList> resourcePackList() const
|
||||||
{
|
{
|
||||||
|
@ -291,11 +291,6 @@ QString LegacyInstance::jarModsDir() const
|
|||||||
return FS::PathCombine(instanceRoot(), "instMods");
|
return FS::PathCombine(instanceRoot(), "instMods");
|
||||||
}
|
}
|
||||||
|
|
||||||
QString LegacyInstance::binDir() const
|
|
||||||
{
|
|
||||||
return FS::PathCombine(minecraftRoot(), "bin");
|
|
||||||
}
|
|
||||||
|
|
||||||
QString LegacyInstance::libDir() const
|
QString LegacyInstance::libDir() const
|
||||||
{
|
{
|
||||||
return FS::PathCombine(minecraftRoot(), "lib");
|
return FS::PathCombine(minecraftRoot(), "lib");
|
||||||
@ -327,7 +322,7 @@ QString LegacyInstance::texturePacksDir() const
|
|||||||
|
|
||||||
QString LegacyInstance::runnableJar() const
|
QString LegacyInstance::runnableJar() const
|
||||||
{
|
{
|
||||||
return FS::PathCombine(binDir(), "minecraft.jar");
|
return FS::PathCombine(binRoot(), "minecraft.jar");
|
||||||
}
|
}
|
||||||
|
|
||||||
QString LegacyInstance::modListFile() const
|
QString LegacyInstance::modListFile() const
|
||||||
@ -399,7 +394,7 @@ QString LegacyInstance::defaultBaseJar() const
|
|||||||
|
|
||||||
QString LegacyInstance::defaultCustomBaseJar() const
|
QString LegacyInstance::defaultCustomBaseJar() const
|
||||||
{
|
{
|
||||||
return FS::PathCombine(binDir(), "mcbackup.jar");
|
return FS::PathCombine(binRoot(), "mcbackup.jar");
|
||||||
}
|
}
|
||||||
|
|
||||||
QString LegacyInstance::lwjglFolder() const
|
QString LegacyInstance::lwjglFolder() const
|
||||||
|
@ -57,7 +57,6 @@ public:
|
|||||||
QString savesDir() const;
|
QString savesDir() const;
|
||||||
QString texturePacksDir() const;
|
QString texturePacksDir() const;
|
||||||
QString jarModsDir() const;
|
QString jarModsDir() const;
|
||||||
QString binDir() const;
|
|
||||||
QString loaderModsDir() const;
|
QString loaderModsDir() const;
|
||||||
QString coreModsDir() const;
|
QString coreModsDir() const;
|
||||||
QString resourceDir() const;
|
QString resourceDir() const;
|
||||||
|
@ -356,7 +356,7 @@ void LegacyUpdate::jarStart()
|
|||||||
|
|
||||||
setStatus(tr("Checking for jar updates..."));
|
setStatus(tr("Checking for jar updates..."));
|
||||||
// Make directories
|
// Make directories
|
||||||
QDir binDir(inst->binDir());
|
QDir binDir(inst->binRoot());
|
||||||
if (!binDir.exists() && !binDir.mkpath("."))
|
if (!binDir.exists() && !binDir.mkpath("."))
|
||||||
{
|
{
|
||||||
emitFailed("Failed to create bin folder.");
|
emitFailed("Failed to create bin folder.");
|
||||||
|
@ -156,7 +156,7 @@ QString OneSixInstance::mainJarPath() const
|
|||||||
auto jarMods = getJarMods();
|
auto jarMods = getJarMods();
|
||||||
if (!jarMods.isEmpty())
|
if (!jarMods.isEmpty())
|
||||||
{
|
{
|
||||||
return QDir(instanceRoot()).absoluteFilePath("minecraft.jar");
|
return QDir(binRoot()).absoluteFilePath("minecraft.jar");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -392,7 +392,11 @@ std::shared_ptr<Task> OneSixInstance::createJarModdingTask()
|
|||||||
{
|
{
|
||||||
tempJar.remove();
|
tempJar.remove();
|
||||||
}
|
}
|
||||||
auto finalJarPath = QDir(m_inst->instanceRoot()).absoluteFilePath("minecraft.jar");
|
if(!FS::ensureFolderPathExists(m_inst->binRoot()))
|
||||||
|
{
|
||||||
|
emitFailed(tr("Couldn't create the bin folder for Minecraft.jar"));
|
||||||
|
}
|
||||||
|
auto finalJarPath = QDir(m_inst->binRoot()).absoluteFilePath("minecraft.jar");
|
||||||
QFile finalJar(finalJarPath);
|
QFile finalJar(finalJarPath);
|
||||||
if(finalJar.exists())
|
if(finalJar.exists())
|
||||||
{
|
{
|
||||||
|
@ -146,6 +146,10 @@
|
|||||||
|
|
||||||
This fixes launching of legacy (and legacy FTB) instances.
|
This fixes launching of legacy (and legacy FTB) instances.
|
||||||
|
|
||||||
|
- GH-1778: Jar modded Minecraft.jar location breaks mod assumptions
|
||||||
|
|
||||||
|
Some ancient mods require the modded `Minecraft.jar` to be in `.minecraft/bin`, inside the instance. Now it is placed there.
|
||||||
|
|
||||||
## Internals
|
## Internals
|
||||||
|
|
||||||
- Full support for the current Mojang downloads JSON format.
|
- Full support for the current Mojang downloads JSON format.
|
||||||
|
Loading…
Reference in New Issue
Block a user