- added support for PGR game sessions
This commit is contained in:
Observer KRypt0n_ 2023-06-07 17:41:20 +02:00
parent d7aceb82bf
commit 7bd96bc81a
No known key found for this signature in database
GPG key ID: 844DA47BA25FE1E2
2 changed files with 7 additions and 19 deletions

View file

@ -1,6 +1,6 @@
[package] [package]
name = "anime-launcher-sdk" name = "anime-launcher-sdk"
version = "1.6.1" version = "1.6.2"
authors = ["Nikita Podvirnyy <suimin.tu.mu.ga.mi@gmail.com>"] authors = ["Nikita Podvirnyy <suimin.tu.mu.ga.mi@gmail.com>"]
license = "GPL-3.0" license = "GPL-3.0"
readme = "README.md" readme = "README.md"

View file

@ -11,7 +11,7 @@ use super::consts::launcher_dir;
/// Get default sessions file path /// Get default sessions file path
/// ///
/// `$HOME/.local/share/honkers-launcher/sessions.json` /// `$HOME/.local/share/anime-borb-launcher/sessions.json`
#[inline] #[inline]
pub fn sessions_file() -> anyhow::Result<PathBuf> { pub fn sessions_file() -> anyhow::Result<PathBuf> {
launcher_dir().map(|dir| dir.join("sessions.json")) launcher_dir().map(|dir| dir.join("sessions.json"))
@ -19,11 +19,8 @@ pub fn sessions_file() -> anyhow::Result<PathBuf> {
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct SessionData { pub struct SessionData {
// [Software\\miHoYo\\Honkai Impact 3rd] // [Software\\kurogame\\PGR]
pub game_reg: String, pub game_reg: String
// [Software\\miHoYoSDK]
pub sdk_reg: String
} }
pub struct Sessions; pub struct Sessions;
@ -53,18 +50,13 @@ impl SessionsExt for Sessions {
tracing::info!("Updating session '{name}' from prefix: {:?}", prefix.as_ref()); tracing::info!("Updating session '{name}' from prefix: {:?}", prefix.as_ref());
let mut new_session = Self::SessionData { let mut new_session = Self::SessionData {
game_reg: String::new(), game_reg: String::new()
sdk_reg: String::new()
}; };
for entry in std::fs::read_to_string(prefix.as_ref().join("user.reg"))?.split("\n\n") { for entry in std::fs::read_to_string(prefix.as_ref().join("user.reg"))?.split("\n\n") {
if entry.starts_with("[Software\\\\miHoYo\\\\Honkai Impact 3rd]") { if entry.starts_with("[Software\\\\kurogame\\\\PGR]") {
new_session.game_reg = entry.to_owned(); new_session.game_reg = entry.to_owned();
} }
else if entry.starts_with("[Software\\\\miHoYoSDK]") {
new_session.sdk_reg = entry.to_owned();
}
} }
sessions.sessions.insert(name, new_session); sessions.sessions.insert(name, new_session);
@ -84,14 +76,10 @@ impl SessionsExt for Sessions {
let entries: String = std::fs::read_to_string(prefix.as_ref().join("user.reg"))? let entries: String = std::fs::read_to_string(prefix.as_ref().join("user.reg"))?
.split("\n\n") .split("\n\n")
.map(|entry| { .map(|entry| {
let new_entry = if entry.starts_with("[Software\\\\miHoYo\\\\Honkai Impact 3rd]") { let new_entry = if entry.starts_with("[Software\\\\kurogame\\\\PGR]") {
session.game_reg.clone() session.game_reg.clone()
} }
else if entry.starts_with("[Software\\\\miHoYoSDK]") {
session.sdk_reg.clone()
}
else { else {
entry.to_owned() entry.to_owned()
}; };