normal feature

This commit is contained in:
SpikeHD
2022-07-14 18:49:49 -07:00
parent f24f3af377
commit 88a1740b91
5 changed files with 108 additions and 3 deletions

View File

@@ -28,6 +28,10 @@ interface IState {
themes: string[]
theme: string
encryption: boolean
swag: boolean
// Swag stuff
akebi_path: string
}
export default class Options extends React.Component<IProps, IState> {
@@ -44,12 +48,17 @@ export default class Options extends React.Component<IProps, IState> {
bg_url_or_path: '',
themes: ['default'],
theme: '',
encryption: false
encryption: false,
swag: false,
// Swag stuff
akebi_path: '',
}
this.setGameExec = this.setGameExec.bind(this)
this.setGrasscutterJar = this.setGrasscutterJar.bind(this)
this.setJavaPath = this.setJavaPath.bind(this)
this.setAkebi = this.setAkebi.bind(this)
this.toggleGrasscutterWithGame = this.toggleGrasscutterWithGame.bind(this)
this.setCustomBackground = this.setCustomBackground.bind(this)
this.toggleEncryption = this.toggleEncryption.bind(this)
@@ -74,7 +83,11 @@ export default class Options extends React.Component<IProps, IState> {
bg_url_or_path: config.customBackground || '',
themes: (await getThemeList()).map(t => t.name),
theme: config.theme || 'default',
encryption: await translate(encEnabled ? 'options.enabled' : 'options.disabled')
encryption: await translate(encEnabled ? 'options.enabled' : 'options.disabled'),
swag: config.swag_mode || false,
// Swag stuff
akebi_path: config.akebi_path || '',
})
this.forceUpdate()
@@ -104,6 +117,14 @@ export default class Options extends React.Component<IProps, IState> {
})
}
setAkebi(value: string) {
setConfigOption('akebi_path', value)
this.setState({
akebi_path: value
})
}
async setLanguage(value: string) {
await setConfigOption('language', value)
window.location.reload()
@@ -178,6 +199,18 @@ export default class Options extends React.Component<IProps, IState> {
<DirInput onChange={this.setGameExec} value={this.state?.game_install_path} extensions={['exe']} />
</div>
</div>
{
this.state.swag && (
<div className='OptionSection' id="menuOptionsContainerAkebi">
<div className='OptionLabel' id="menuOptionsLabelAkebi">
<Tr text="swag.akebi" />
</div>
<div className='OptionValue' id="menuOptionsDirAkebi">
<DirInput onChange={this.setAkebi} value={this.state?.akebi_path} extensions={['exe']} />
</div>
</div>
)
}
<div className='OptionSection' id="menuOptionsContainerGCJar">
<div className='OptionLabel' id="menuOptionsLabelGCJar">
<Tr text="options.grasscutter_jar" />