diff --git a/src/Snap.Hutao/Snap.Hutao/Core/IO/Ini/IniParameter.cs b/src/Snap.Hutao/Snap.Hutao/Core/IO/Ini/IniParameter.cs index f6678d20..deca4bba 100644 --- a/src/Snap.Hutao/Snap.Hutao/Core/IO/Ini/IniParameter.cs +++ b/src/Snap.Hutao/Snap.Hutao/Core/IO/Ini/IniParameter.cs @@ -30,6 +30,22 @@ internal sealed class IniParameter : IniElement /// public string Value { get; set; } + /// + /// 设置值 + /// + /// 值 + /// 是否修改了值 + public bool Set(string value) + { + if (Value != value) + { + Value = value; + return true; + } + + return false; + } + /// public override string ToString() { diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Game/GameService.cs b/src/Snap.Hutao/Snap.Hutao/Service/Game/GameService.cs index eb72895f..e538100d 100644 --- a/src/Snap.Hutao/Snap.Hutao/Service/Game/GameService.cs +++ b/src/Snap.Hutao/Snap.Hutao/Service/Game/GameService.cs @@ -131,7 +131,7 @@ internal sealed partial class GameService : IGameService } /// - public bool SetMultiChannel(LaunchScheme scheme) + public bool SetChannelOptions(LaunchScheme scheme) { string gamePath = appOptions.GamePath; string configPath = Path.Combine(Path.GetDirectoryName(gamePath)!, ConfigFileName); @@ -165,22 +165,12 @@ internal sealed partial class GameService : IGameService { if (parameter.Key == "channel") { - string channel = scheme.Channel.ToString("D"); - if (parameter.Value != channel) - { - parameter.Value = channel; - changed = true; - } + changed = parameter.Set(scheme.Channel.ToString("D")); } if (parameter.Key == "sub_channel") { - string subChannel = scheme.SubChannel.ToString("D"); - if (parameter.Value != subChannel) - { - parameter.Value = subChannel; - changed = true; - } + changed = parameter.Set(scheme.SubChannel.ToString("D")); } } } diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Game/IGameService.cs b/src/Snap.Hutao/Snap.Hutao/Service/Game/IGameService.cs index 9f02387b..7c6f29f4 100644 --- a/src/Snap.Hutao/Snap.Hutao/Service/Game/IGameService.cs +++ b/src/Snap.Hutao/Snap.Hutao/Service/Game/IGameService.cs @@ -90,7 +90,7 @@ internal interface IGameService /// /// 方案 /// 是否更改了ini文件 - bool SetMultiChannel(LaunchScheme scheme); + bool SetChannelOptions(LaunchScheme scheme); /// /// 检测账号 diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/Game/LaunchGameViewModel.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/Game/LaunchGameViewModel.cs index 6d228b1f..8c9ba1e6 100644 --- a/src/Snap.Hutao/Snap.Hutao/ViewModel/Game/LaunchGameViewModel.cs +++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/Game/LaunchGameViewModel.cs @@ -182,7 +182,7 @@ internal sealed partial class LaunchGameViewModel : Abstraction.ViewModel { try { - if (gameService.SetMultiChannel(SelectedScheme)) + if (gameService.SetChannelOptions(SelectedScheme)) { // Channel changed, we need to change local file. await taskContext.SwitchToMainThreadAsync();