From 86e6d50ae4237fe44870a41cf99dccfb97cd9c83 Mon Sep 17 00:00:00 2001 From: maskers <97827489+mskrss@users.noreply.github.com> Date: Fri, 6 Jun 2025 11:04:16 +0300 Subject: [PATCH 1/5] xrandr crash --- src/handlers/event/analyze_logs/issues.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/handlers/event/analyze_logs/issues.rs b/src/handlers/event/analyze_logs/issues.rs index 9cbf598..fc013b6 100644 --- a/src/handlers/event/analyze_logs/issues.rs +++ b/src/handlers/event/analyze_logs/issues.rs @@ -37,6 +37,7 @@ pub async fn find(log: &str, data: &Data) -> Result> { linux_openal, flatpak_crash, spark_macos, + xrandr, ]; let mut res: Vec<(String, String)> = issues.iter().filter_map(|issue| issue(log)).collect(); @@ -470,3 +471,14 @@ fn spark_macos(log: &str) -> Issue { let found = log.contains("~StubRoutines::SafeFetch32"); found.then_some(issue) } + +fn xrandr(log: &str) -> Issue { + let issue = ( + "Missing xrandr".to_string(), + "This crash is caused by not having xrandr installed on Linux on Minecraft versions that use LWJGL 2." + .to_string(), + ); + + let found = log.contains("at org.lwjgl.opengl.LinuxDisplay.getAvailableDisplayModes"); + found.then_some(issue) +} From ac34f318e442e44b507052d3e052a1a41bd91c77 Mon Sep 17 00:00:00 2001 From: maskers <97827489+mskrss@users.noreply.github.com> Date: Fri, 6 Jun 2025 11:09:34 +0300 Subject: [PATCH 2/5] `!` at the end of a folder name --- src/handlers/event/analyze_logs/issues.rs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/handlers/event/analyze_logs/issues.rs b/src/handlers/event/analyze_logs/issues.rs index fc013b6..2f77d43 100644 --- a/src/handlers/event/analyze_logs/issues.rs +++ b/src/handlers/event/analyze_logs/issues.rs @@ -38,6 +38,7 @@ pub async fn find(log: &str, data: &Data) -> Result> { flatpak_crash, spark_macos, xrandr, + folder_name, ]; let mut res: Vec<(String, String)> = issues.iter().filter_map(|issue| issue(log)).collect(); @@ -482,3 +483,17 @@ fn xrandr(log: &str) -> Issue { let found = log.contains("at org.lwjgl.opengl.LinuxDisplay.getAvailableDisplayModes"); found.then_some(issue) } + +fn folder_name(log: &str) -> Issue { + let issue = ( + "`!` in folder name".to_string(), + "Having a `!` in any folder is known to cause issues. If it's in your instance name, make sure to rename the actual instance folder, **not** the instance name in Prism." + .to_string(), + ); + + let found = Regex::new(r"Minecraft folder is:\n.*!/") + .unwrap() + .is_match(log); + + found.then_some(issue) +} From 401c62073141312708c6f6c5a7d3da539049b459 Mon Sep 17 00:00:00 2001 From: maskers <97827489+mskrss@users.noreply.github.com> Date: Fri, 6 Jun 2025 11:17:46 +0300 Subject: [PATCH 3/5] corrupted mmc-pack.json --- src/handlers/event/analyze_logs/issues.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/handlers/event/analyze_logs/issues.rs b/src/handlers/event/analyze_logs/issues.rs index 2f77d43..5bee861 100644 --- a/src/handlers/event/analyze_logs/issues.rs +++ b/src/handlers/event/analyze_logs/issues.rs @@ -39,6 +39,7 @@ pub async fn find(log: &str, data: &Data) -> Result> { spark_macos, xrandr, folder_name, + corrupted_instance, ]; let mut res: Vec<(String, String)> = issues.iter().filter_map(|issue| issue(log)).collect(); @@ -497,3 +498,15 @@ fn folder_name(log: &str) -> Issue { found.then_some(issue) } + +fn corrupted_instance(log: &str) -> Issue { + let issue = ( + "Corrupted instance files".to_string(), + "Your instance's `mmc-pack.json` appears to be corrupted. Make a new instance and copy over your data between `.minecraft` folders. To prevent this in the future, ensure your system has sufficient disk space and avoid forcefully shutting down your PC." + .to_string(), + ); + + let found = log.contains("mmc-pack.json as json: illegal value"); + + found.then_some(issue) +} From b90aef8e23dbc378a4aec58434c3c0a913149eef Mon Sep 17 00:00:00 2001 From: maskers <97827489+mskrss@users.noreply.github.com> Date: Sat, 7 Jun 2025 11:19:15 +0300 Subject: [PATCH 4/5] support different languages for mmc-pack.json --- src/handlers/event/analyze_logs/issues.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/handlers/event/analyze_logs/issues.rs b/src/handlers/event/analyze_logs/issues.rs index 5bee861..ffdf171 100644 --- a/src/handlers/event/analyze_logs/issues.rs +++ b/src/handlers/event/analyze_logs/issues.rs @@ -506,7 +506,9 @@ fn corrupted_instance(log: &str) -> Issue { .to_string(), ); - let found = log.contains("mmc-pack.json as json: illegal value"); + let found = Regex::new(r"mmc-pack.json.*illegal value") + .unwrap() + .is_match(log); found.then_some(issue) } From 4d54b3f88a109ac4b5a5ba0dfce06426adf36ae0 Mon Sep 17 00:00:00 2001 From: maskers <97827489+mskrss@users.noreply.github.com> Date: Tue, 8 Jul 2025 11:19:31 +0300 Subject: [PATCH 5/5] fix locked jars false positive --- src/handlers/event/analyze_logs/issues.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/handlers/event/analyze_logs/issues.rs b/src/handlers/event/analyze_logs/issues.rs index ffdf171..6d3a41f 100644 --- a/src/handlers/event/analyze_logs/issues.rs +++ b/src/handlers/event/analyze_logs/issues.rs @@ -331,7 +331,7 @@ fn locked_jar(log: &str) -> Issue { .to_string(), ); - let found = log.contains("Couldn't extract native jar"); + let found = log.contains("Couldn't extract native jar") && !log.contains("(missing)\n"); found.then_some(issue) }