diff --git a/src-tauri/lang/en.json b/src-tauri/lang/en.json index ace27bf..d67b8d6 100644 --- a/src-tauri/lang/en.json +++ b/src-tauri/lang/en.json @@ -23,7 +23,8 @@ "grasscutter_with_game": "Automatically launch Grasscutter with game", "language": "Select Language", "background": "Set Custom Background (link or image file)", - "theme": "Set Theme" + "theme": "Set Theme", + "patch_metadata": "Automatically Patch Metadata" }, "downloads": { "grasscutter_stable_data": "Download Grasscutter Stable Data", diff --git a/src/ui/components/ServerLaunchSection.tsx b/src/ui/components/ServerLaunchSection.tsx index cc6e250..db53863 100644 --- a/src/ui/components/ServerLaunchSection.tsx +++ b/src/ui/components/ServerLaunchSection.tsx @@ -100,11 +100,13 @@ export default class ServerLaunchSection extends React.Component<{}, IState> { // Connect to proxy if (config.toggle_grasscutter) { - const patched = await patchGame() + if (config.patch_metadata) { + const patched = await patchGame() - if (!patched) { - alert('Could not patch game!') - return + if (!patched) { + alert('Could not patch game!') + return + } } const game_exe = await getGameExecutable() diff --git a/src/ui/components/menu/Options.tsx b/src/ui/components/menu/Options.tsx index 42e3318..d008acd 100644 --- a/src/ui/components/menu/Options.tsx +++ b/src/ui/components/menu/Options.tsx @@ -31,6 +31,7 @@ interface IState { themes: string[] theme: string encryption: boolean + patch_metadata: boolean swag: boolean // Swag stuff @@ -52,6 +53,7 @@ export default class Options extends React.Component { themes: ['default'], theme: '', encryption: false, + patch_metadata: false, swag: false, // Swag stuff @@ -66,6 +68,7 @@ export default class Options extends React.Component { this.setCustomBackground = this.setCustomBackground.bind(this) this.toggleEncryption = this.toggleEncryption.bind(this) this.restoreMetadata = this.restoreMetadata.bind(this) + this.toggleMetadata = this.toggleMetadata.bind(this) } async componentDidMount() { @@ -88,6 +91,7 @@ export default class Options extends React.Component { themes: (await getThemeList()).map((t) => t.name), theme: config.theme || 'default', encryption: await translate(encEnabled ? 'options.enabled' : 'options.disabled'), + patch_metadata: config.patch_metadata || false, swag: config.swag_mode || false, // Swag stuff @@ -205,6 +209,16 @@ export default class Options extends React.Component { }) } + async toggleMetadata() { + const changedVal = !(await getConfigOption('patch_metadata')) + + await setConfigOption('patch_metadata', changedVal) + + this.setState({ + patch_metadata: changedVal, + }) + } + render() { return ( @@ -226,6 +240,21 @@ export default class Options extends React.Component { + + + +