From e5bd1de60b192ae528ecb0745f7788d8b8bf1b79 Mon Sep 17 00:00:00 2001 From: AppleTheGolden Date: Sat, 11 Jan 2020 13:46:53 +0100 Subject: [PATCH] Add OneDrive lint --- src/parsers.rs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/parsers.rs b/src/parsers.rs index 3739cca..251e192 100644 --- a/src/parsers.rs +++ b/src/parsers.rs @@ -6,10 +6,11 @@ use regex::Regex; pub type Check = fn(&str) -> Option<(&str, String)>; -pub static PARSERS: [Check; 8] = [ +pub static PARSERS: [Check; 9] = [ multimc_in_program_files, server_java, buildsystem_forge, + multimc_in_onedrive_managed_folder, java_version, id_range_exceeded, out_of_memory_error, @@ -79,6 +80,17 @@ fn out_of_memory_error(log: &str) -> Option<(&str, String)> { } } +fn multimc_in_onedrive_managed_folder(log: &str) -> Option<(&str, String)> { + lazy_static! { + static ref RE: Regex = Regex::new(r"Minecraft folder is:\nC:/.+/.+/OneDrive").unwrap(); + } + if RE.is_match(log) { + Some(("❗", "MultiMC is located in a folder managed by OneDrive. OneDrive messes with Minecraft folders while the game is running, and this often leads to crashes.\nYou should move MultiMC to a different folder.".to_string())) + } else { + None + } +} + fn java_version(log: &str) -> Option<(&str, String)> { lazy_static! { static ref RE: Regex =