diff options
| author | mat <27899617+mat-1@users.noreply.github.com> | 2022-10-16 22:54:54 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-10-16 22:54:54 -0500 |
| commit | 4cef62e8e4aa04e44048eb67e5091c12a73d2a09 (patch) | |
| tree | 1c3b03bad262bdcab878cd42d445676290000bea /azalea-client/src/get_mc_dir.rs | |
| parent | 993914d175609e5d291e7caafc1983379642e7fe (diff) | |
| download | azalea-drasl-4cef62e8e4aa04e44048eb67e5091c12a73d2a09.tar.xz | |
Microsoft Authentication (#29)
* a
* try to do more work on auth signing (untested)
* well auth works when i remove the d= so
* auth stuff
* sessionserver stuff
* add auth in azalea-protocol/client
* caching*
refreshing microsoft auth tokens isn't implemented yet, also i haven't tested it
* how did i not notice that i had the code duplicated
* fix cache
* add refreshing msa token
* replace some printlns with log::trace
* auth works!
* Update main.rs
* fix clippy warnings
Diffstat (limited to 'azalea-client/src/get_mc_dir.rs')
| -rw-r--r-- | azalea-client/src/get_mc_dir.rs | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/azalea-client/src/get_mc_dir.rs b/azalea-client/src/get_mc_dir.rs new file mode 100644 index 00000000..abc5b3c8 --- /dev/null +++ b/azalea-client/src/get_mc_dir.rs @@ -0,0 +1,34 @@ +//! Find out where the user's .minecraft directory is. +//! +//! Used for the auth cache. + +use std::path::PathBuf; + +/// Return the location of the user's .minecraft directory. +/// +/// Windows: `%appdata%\.minecraft`\ +/// Mac: `$HOME/Library/Application Support/minecraft`\ +/// Linux: `$HOME/.minecraft` +/// +/// Anywhere else it'll return None. +pub fn minecraft_dir() -> Option<PathBuf> { + #[cfg(target_os = "windows")] + { + let appdata = std::env::var("APPDATA").ok()?; + Some(PathBuf::from(appdata).join(".minecraft")) + } + #[cfg(target_os = "macos")] + { + let home = std::env::var("HOME").ok()?; + Some(PathBuf::from(home).join("Library/Application Support/minecraft")) + } + #[cfg(target_os = "linux")] + { + let home = std::env::var("HOME").ok()?; + Some(PathBuf::from(home).join(".minecraft")) + } + #[cfg(not(any(target_os = "windows", target_os = "macos", target_os = "linux")))] + { + None + } +} |
