From 214089490520ac013dfef1afd3431d66bb4d2a0b Mon Sep 17 00:00:00 2001 From: teambob Date: Mon, 25 Dec 2023 17:48:15 +1100 Subject: [PATCH 1/2] Add Linux Minecraft location --- NBTExplorer/Windows/MainForm.cs | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/NBTExplorer/Windows/MainForm.cs b/NBTExplorer/Windows/MainForm.cs index d5e57d5e..81276639 100644 --- a/NBTExplorer/Windows/MainForm.cs +++ b/NBTExplorer/Windows/MainForm.cs @@ -257,19 +257,23 @@ private void OpenMinecraftDirectory () return; try { - string path = Environment.ExpandEnvironmentVariables("%APPDATA%"); - if (!Directory.Exists(path)) { - path = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); - } - - path = Path.Combine(path, ".minecraft"); - path = Path.Combine(path, "saves"); - - if (!Directory.Exists(path)) { - path = Environment.GetFolderPath(Environment.SpecialFolder.MyComputer); + foreach (string path in new[] { + Environment.ExpandEnvironmentVariables("%APPDATA%"), + Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), + Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) } // Tries Linux Minecraft location + ) { + if (!Directory.Exists(path)) { + continue; + } + + path = Path.Combine(path, ".minecraft", "saves"); + + if (!Directory.Exists(path)) { + continue; + } + + OpenPaths(new string[] { path }); } - - OpenPaths(new string[] { path }); } catch (Exception e) { MessageBox.Show("Could not open default Minecraft save directory"); From d5103f6f1ae491ff121073848d6598f10f815894 Mon Sep 17 00:00:00 2001 From: Andrew Punch Date: Mon, 25 Dec 2023 22:02:02 +1100 Subject: [PATCH 2/2] Look for Minecraft directory on Linux --- NBTExplorer/Windows/MainForm.cs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/NBTExplorer/Windows/MainForm.cs b/NBTExplorer/Windows/MainForm.cs index 81276639..c3d43e0d 100644 --- a/NBTExplorer/Windows/MainForm.cs +++ b/NBTExplorer/Windows/MainForm.cs @@ -257,16 +257,17 @@ private void OpenMinecraftDirectory () return; try { - foreach (string path in new[] { + foreach (string basepath in new[] { Environment.ExpandEnvironmentVariables("%APPDATA%"), Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), - Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) } // Tries Linux Minecraft location + System.Environment.GetEnvironmentVariable("HOME") } // Tries Linux Minecraft location ) { - if (!Directory.Exists(path)) { + if (!Directory.Exists(basepath)) { continue; } - path = Path.Combine(path, ".minecraft", "saves"); + string path = Path.Combine(basepath, ".minecraft"); + path = Path.Combine(path, "saves"); if (!Directory.Exists(path)) { continue;