From 5fe38f305b5e758f5925c14e5ce994708c22b2f0 Mon Sep 17 00:00:00 2001
From: Lightczx <1686188646@qq.com>
Date: Sun, 14 May 2023 22:43:50 +0800
Subject: [PATCH] refine game service
---
.../Snap.Hutao/Core/IO/Ini/IniParameter.cs | 16 ++++++++++++++++
.../Snap.Hutao/Service/Game/GameService.cs | 16 +++-------------
.../Snap.Hutao/Service/Game/IGameService.cs | 2 +-
.../ViewModel/Game/LaunchGameViewModel.cs | 2 +-
4 files changed, 21 insertions(+), 15 deletions(-)
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();