mirror of
https://github.com/Grasscutters/Cultivation.git
synced 2025-12-13 23:54:48 +01:00
Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7750266a3d | ||
|
|
028ee380f2 | ||
|
|
fcd08cace5 | ||
|
|
0258aa006a | ||
|
|
8c10c00b53 | ||
|
|
fe094c952b | ||
|
|
63a883cf1d |
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "cultivation",
|
||||
"version": "1.5.5",
|
||||
"version": "1.5.8",
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@tauri-apps/api": "^1.0.0-rc.5",
|
||||
|
||||
2
src-tauri/Cargo.lock
generated
2
src-tauri/Cargo.lock
generated
@@ -959,7 +959,7 @@ checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35"
|
||||
|
||||
[[package]]
|
||||
name = "cultivation"
|
||||
version = "1.5.5"
|
||||
version = "1.5.8"
|
||||
dependencies = [
|
||||
"anime-launcher-sdk",
|
||||
"anyhow",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "cultivation"
|
||||
version = "1.5.5"
|
||||
version = "1.5.8"
|
||||
description = "A custom launcher for anime game."
|
||||
authors = ["KingRainbow44", "SpikeHD"]
|
||||
license = ""
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -50,79 +50,80 @@ struct WhatToUnpach {
|
||||
|
||||
#[cfg(windows)]
|
||||
#[tauri::command]
|
||||
pub async fn patch_game(newer_game: bool, version: String) -> bool {
|
||||
pub async fn patch_game(_newer_game: bool, version: String) -> bool {
|
||||
let mut patch_path;
|
||||
// Altpatch first - Now using as hoyonet switch
|
||||
if newer_game {
|
||||
let alt_patch_path = PathBuf::from(system_helpers::install_location()).join("altpatch");
|
||||
// People keep using this when they shouldn't, 99.8% of people will never need it. Just remove for now.
|
||||
// if newer_game {
|
||||
// let alt_patch_path = PathBuf::from(system_helpers::install_location()).join("altpatch");
|
||||
|
||||
// Should handle overwriting backup with new version backup later
|
||||
let backup_path = PathBuf::from(system_helpers::install_location())
|
||||
.join("altpatch/original-mihoyonet.dll")
|
||||
.to_str()
|
||||
.unwrap()
|
||||
.to_string();
|
||||
let backup_exists = file_helpers::does_file_exist(&backup_path);
|
||||
// // Should handle overwriting backup with new version backup later
|
||||
// let backup_path = PathBuf::from(system_helpers::install_location())
|
||||
// .join("altpatch/original-mihoyonet.dll")
|
||||
// .to_str()
|
||||
// .unwrap()
|
||||
// .to_string();
|
||||
// let backup_exists = file_helpers::does_file_exist(&backup_path);
|
||||
|
||||
if !backup_exists {
|
||||
let backup = file_helpers::copy_file_with_new_name(
|
||||
get_game_rsa_path().await.unwrap()
|
||||
+ &String::from("/GenshinImpact_Data/Plugins/mihoyonet.dll"),
|
||||
alt_patch_path.clone().to_str().unwrap().to_string(),
|
||||
String::from("original-mihoyonet.dll"),
|
||||
);
|
||||
// if !backup_exists {
|
||||
// let backup = file_helpers::copy_file_with_new_name(
|
||||
// get_game_rsa_path().await.unwrap()
|
||||
// + &String::from("/GenshinImpact_Data/Plugins/mihoyonet.dll"),
|
||||
// alt_patch_path.clone().to_str().unwrap().to_string(),
|
||||
// String::from("original-mihoyonet.dll"),
|
||||
// );
|
||||
|
||||
if !backup {
|
||||
println!("Unable to backup file!");
|
||||
}
|
||||
}
|
||||
// if !backup {
|
||||
// println!("Unable to backup file!");
|
||||
// }
|
||||
// }
|
||||
|
||||
patch_path = PathBuf::from(system_helpers::install_location()).join("altpatch/mihoyonet.dll");
|
||||
// Copy the other part of patch to game files
|
||||
let alt_replaced = file_helpers::copy_file_with_new_name(
|
||||
patch_path.clone().to_str().unwrap().to_string(),
|
||||
get_game_rsa_path().await.unwrap() + &String::from("/GenshinImpact_Data/Plugins"),
|
||||
String::from("mihoyonet.dll"),
|
||||
);
|
||||
// patch_path = PathBuf::from(system_helpers::install_location()).join("altpatch/mihoyonet.dll");
|
||||
// // Copy the other part of patch to game files
|
||||
// let alt_replaced = file_helpers::copy_file_with_new_name(
|
||||
// patch_path.clone().to_str().unwrap().to_string(),
|
||||
// get_game_rsa_path().await.unwrap() + &String::from("/GenshinImpact_Data/Plugins"),
|
||||
// String::from("mihoyonet.dll"),
|
||||
// );
|
||||
|
||||
if !alt_replaced {
|
||||
return false;
|
||||
}
|
||||
// if !alt_replaced {
|
||||
// return false;
|
||||
// }
|
||||
|
||||
/*** For replacing old backup file with new one, for example when version changes
|
||||
* Currently replaces when it shouldn't. Will figure it out when it matters
|
||||
* ***/
|
||||
// else {
|
||||
// // Check if game file matches backup
|
||||
// let matching_alt_backup = file_helpers::are_files_identical(
|
||||
// &backup_path.clone(),
|
||||
// PathBuf::from(get_game_rsa_path().await.unwrap())
|
||||
// .join("/GenshinImpact_Data/Plugins/mihoyonet.dll")
|
||||
// .to_str()
|
||||
// .unwrap(),
|
||||
// );
|
||||
/*** For replacing old backup file with new one, for example when version changes
|
||||
* Currently replaces when it shouldn't. Will figure it out when it matters
|
||||
* ***/
|
||||
// else {
|
||||
// // Check if game file matches backup
|
||||
// let matching_alt_backup = file_helpers::are_files_identical(
|
||||
// &backup_path.clone(),
|
||||
// PathBuf::from(get_game_rsa_path().await.unwrap())
|
||||
// .join("/GenshinImpact_Data/Plugins/mihoyonet.dll")
|
||||
// .to_str()
|
||||
// .unwrap(),
|
||||
// );
|
||||
|
||||
// let is_alt_patched = file_helpers::are_files_identical(
|
||||
// PathBuf::from(system_helpers::install_location()).join("altpatch/mihoyonet.dll").to_str().unwrap(),
|
||||
// PathBuf::from(get_game_rsa_path().await.unwrap())
|
||||
// .join("/GenshinImpact_Data/Plugins/mihoyonet.dll")
|
||||
// .to_str()
|
||||
// .unwrap(),
|
||||
// );
|
||||
// let is_alt_patched = file_helpers::are_files_identical(
|
||||
// PathBuf::from(system_helpers::install_location()).join("altpatch/mihoyonet.dll").to_str().unwrap(),
|
||||
// PathBuf::from(get_game_rsa_path().await.unwrap())
|
||||
// .join("/GenshinImpact_Data/Plugins/mihoyonet.dll")
|
||||
// .to_str()
|
||||
// .unwrap(),
|
||||
// );
|
||||
|
||||
// // Check if already alt patched
|
||||
// if !matching_alt_backup {
|
||||
// // Copy new backup if it is not patched
|
||||
// if !is_alt_patched {
|
||||
// file_helpers::copy_file_with_new_name(
|
||||
// get_game_rsa_path().await.unwrap() + &String::from("/GenshinImpact_Data/Plugins/mihoyonet.dll"),
|
||||
// alt_patch_path.clone().to_str().unwrap().to_string(),
|
||||
// String::from("original-mihoyonet.dll"),
|
||||
// );
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
}
|
||||
// // Check if already alt patched
|
||||
// if !matching_alt_backup {
|
||||
// // Copy new backup if it is not patched
|
||||
// if !is_alt_patched {
|
||||
// file_helpers::copy_file_with_new_name(
|
||||
// get_game_rsa_path().await.unwrap() + &String::from("/GenshinImpact_Data/Plugins/mihoyonet.dll"),
|
||||
// alt_patch_path.clone().to_str().unwrap().to_string(),
|
||||
// String::from("original-mihoyonet.dll"),
|
||||
// );
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
// Standard patch
|
||||
patch_path = PathBuf::from(system_helpers::install_location()).join("patch/version.dll");
|
||||
@@ -152,8 +153,9 @@ pub async fn patch_game(newer_game: bool, version: String) -> bool {
|
||||
return true;
|
||||
}
|
||||
|
||||
// For 5.0 and up
|
||||
// For 5.0 and up use universal
|
||||
if i_ver > 49 {
|
||||
patch_path = PathBuf::from(system_helpers::install_location()).join("patch/5version.dll");
|
||||
let replaced50 = file_helpers::copy_file_with_new_name(
|
||||
patch_path.clone().to_str().unwrap().to_string(),
|
||||
get_game_rsa_path().await.unwrap(),
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
},
|
||||
"package": {
|
||||
"productName": "Cultivation",
|
||||
"version": "1.5.5"
|
||||
"version": "1.5.8"
|
||||
},
|
||||
"tauri": {
|
||||
"allowlist": {
|
||||
|
||||
@@ -149,7 +149,7 @@ export default class ServerLaunchSection extends React.Component<IProps, IState>
|
||||
// Connect to proxy
|
||||
if (config.toggle_grasscutter) {
|
||||
const game_exe = await getGameExecutable()
|
||||
let newerGame = false
|
||||
const newerGame = false
|
||||
|
||||
const patchable = game_exe?.toLowerCase().includes('yuanshen') || game_exe?.toLowerCase().includes('genshin')
|
||||
|
||||
@@ -183,35 +183,36 @@ export default class ServerLaunchSection extends React.Component<IProps, IState>
|
||||
|
||||
const versionString = gameVersion?.major.toString() + gameVersion?.minor.toString()
|
||||
|
||||
if ((gameVersion?.major == 4 && gameVersion?.minor > 5) || config.newer_game) {
|
||||
newerGame = true
|
||||
// Keeps being misused, remove for now.
|
||||
// if ((gameVersion?.major == 4 && gameVersion?.minor > 5) || config.newer_game) {
|
||||
// newerGame = true
|
||||
|
||||
const path = (await invoke('install_location')) as string
|
||||
// const path = (await invoke('install_location')) as string
|
||||
|
||||
const patchstring = '\\altpatch\\'
|
||||
const altPatch = path + patchstring
|
||||
// const patchstring = '\\altpatch\\'
|
||||
// const altPatch = path + patchstring
|
||||
|
||||
const ALT_PATCH =
|
||||
'https://autopatchhk.yuanshen.com/client_app/download/pc_zip/20231030132335_iOEfPMcbrXpiA8Ca/ScatteredFiles/GenshinImpact_Data/Plugins/mihoyonet.dll'
|
||||
const pExists = (await invoke('dir_exists', {
|
||||
path: altPatch,
|
||||
})) as boolean
|
||||
// const ALT_PATCH =
|
||||
// 'https://autopatchhk.yuanshen.com/client_app/download/pc_zip/20231030132335_iOEfPMcbrXpiA8Ca/ScatteredFiles/GenshinImpact_Data/Plugins/mihoyonet.dll'
|
||||
// const pExists = (await invoke('dir_exists', {
|
||||
// path: altPatch,
|
||||
// })) as boolean
|
||||
|
||||
if (!pExists) {
|
||||
await invoke('dir_create', {
|
||||
path: altPatch,
|
||||
})
|
||||
this.props.downloadHandler.addDownload(ALT_PATCH, path + '/altpatch/mihoyonet.dll')
|
||||
await confirm('Please wait for the download in the bottom left to disappear, then click yes')
|
||||
}
|
||||
// if (!pExists) {
|
||||
// await invoke('dir_create', {
|
||||
// path: altPatch,
|
||||
// })
|
||||
// this.props.downloadHandler.addDownload(ALT_PATCH, path + '/altpatch/mihoyonet.dll')
|
||||
// await confirm('Please wait for the download in the bottom left to disappear, then click yes')
|
||||
// }
|
||||
|
||||
/* For custom address patch only, used in 4.5 */
|
||||
// let httpString = 'http://'
|
||||
// if (this.state.httpsEnabled) {
|
||||
// httpString = 'https://'
|
||||
// }
|
||||
// config.launch_args = '-server=' + httpString + this.state.ip + ':' + this.state.port
|
||||
}
|
||||
// /* For custom address patch only, used in 4.5 */
|
||||
// // let httpString = 'http://'
|
||||
// // if (this.state.httpsEnabled) {
|
||||
// // httpString = 'https://'
|
||||
// // }
|
||||
// // config.launch_args = '-server=' + httpString + this.state.ip + ':' + this.state.port
|
||||
// }
|
||||
|
||||
const patched = await patchGame(newerGame, versionString)
|
||||
|
||||
|
||||
@@ -712,7 +712,7 @@ export default class Options extends React.Component<IProps, IState> {
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="OptionSection" id="menuOptionsContainerNewerGame">
|
||||
{/* <div className="OptionSection" id="menuOptionsContainerNewerGame">
|
||||
<div className="OptionLabel" id="menuOptionsLabelNewerGame">
|
||||
<Tr text="Patch Mihoyonet" />
|
||||
</div>
|
||||
@@ -723,7 +723,7 @@ export default class Options extends React.Component<IProps, IState> {
|
||||
id="newerGame"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div> */}
|
||||
|
||||
<Divider />
|
||||
|
||||
|
||||
@@ -143,7 +143,7 @@ export default class NewsSection extends React.Component<IProps, IState> {
|
||||
<tr>
|
||||
<td>
|
||||
Work in progress area! These numbers may be outdated, so please do not use them as reference. Latest
|
||||
version: Grasscutter 1.7.4 - Cultivation 1.5.5
|
||||
version: Grasscutter 1.7.4 - Cultivation 1.5.8
|
||||
</td>
|
||||
</tr>
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user