diff --git a/BetterGenshinImpact/BetterGenshinImpact.csproj b/BetterGenshinImpact/BetterGenshinImpact.csproj
index 491489c3..b3ddee7d 100644
--- a/BetterGenshinImpact/BetterGenshinImpact.csproj
+++ b/BetterGenshinImpact/BetterGenshinImpact.csproj
@@ -10,7 +10,7 @@
true
Assets\Images\logo.ico
BetterGI
- 0.34.4
+ 0.34.5
x64
embedded
diff --git a/BetterGenshinImpact/Core/Recorder/Model/KeyMouseScriptInfo.cs b/BetterGenshinImpact/Core/Recorder/Model/KeyMouseScriptInfo.cs
index b3177b78..76664910 100644
--- a/BetterGenshinImpact/Core/Recorder/Model/KeyMouseScriptInfo.cs
+++ b/BetterGenshinImpact/Core/Recorder/Model/KeyMouseScriptInfo.cs
@@ -9,6 +9,15 @@ public class KeyMouseScriptInfo
public string Description { get; set; } = string.Empty;
+ public string? Author { get; set; }
+
+ public string? Version { get; set; }
+
+ ///
+ /// 制作时 BetterGI 的版本,用于兼容性检查
+ ///
+ public string? BgiVersion { get; set; }
+
public int X { get; set; }
public int Y { get; set; }
public int Width { get; set; }
diff --git a/BetterGenshinImpact/Core/Script/EngineExtend.cs b/BetterGenshinImpact/Core/Script/EngineExtend.cs
index 094d5c22..33015ebc 100644
--- a/BetterGenshinImpact/Core/Script/EngineExtend.cs
+++ b/BetterGenshinImpact/Core/Script/EngineExtend.cs
@@ -62,14 +62,35 @@ public class EngineExtend
public static void AddAllGlobalMethod(IScriptEngine engine)
{
- // 获取GlobalMethod类的所有静态方法
- var methods = typeof(GlobalMethod).GetMethods(BindingFlags.Static | BindingFlags.Public);
+ // // 获取GlobalMethod类的所有静态方法
+ // var methods = typeof(GlobalMethod).GetMethods(BindingFlags.Static | BindingFlags.Public);
+ //
+ // foreach (var method in methods)
+ // {
+ // // 使用方法名首字母小写作为HostObject的名称
+ // var methodName = char.ToLowerInvariant(method.Name[0]) + method.Name[1..];
+ // engine.AddHostObject(methodName, method);
+ // }
- foreach (var method in methods)
- {
- // 使用方法名首字母小写作为HostObject的名称
- var methodName = char.ToLowerInvariant(method.Name[0]) + method.Name[1..];
- engine.AddHostObject(methodName, method);
- }
+#pragma warning disable CS8974 // Converting method group to non-delegate type
+ engine.AddHostObject("sleep", GlobalMethod.Sleep);
+ engine.AddHostObject("keyDown", GlobalMethod.KeyDown);
+ engine.AddHostObject("keyUp", GlobalMethod.KeyUp);
+ engine.AddHostObject("keyPress", GlobalMethod.KeyPress);
+ engine.AddHostObject("setGameMetrics", GlobalMethod.SetGameMetrics);
+ engine.AddHostObject("moveMouseBy", GlobalMethod.MoveMouseBy);
+ engine.AddHostObject("moveMouseTo", GlobalMethod.MoveMouseTo);
+ engine.AddHostObject("click", GlobalMethod.Click);
+ engine.AddHostObject("leftButtonClick", GlobalMethod.LeftButtonClick);
+ engine.AddHostObject("leftButtonDown", GlobalMethod.LeftButtonDown);
+ engine.AddHostObject("leftButtonUp", GlobalMethod.LeftButtonUp);
+ engine.AddHostObject("rightButtonClick", GlobalMethod.RightButtonClick);
+ engine.AddHostObject("rightButtonDown", GlobalMethod.RightButtonDown);
+ engine.AddHostObject("rightButtonUp", GlobalMethod.RightButtonUp);
+ engine.AddHostObject("middleButtonClick", GlobalMethod.MiddleButtonClick);
+ engine.AddHostObject("middleButtonDown", GlobalMethod.MiddleButtonDown);
+ engine.AddHostObject("middleButtonUp", GlobalMethod.MiddleButtonUp);
+ engine.AddHostObject("captureGameRegion", GlobalMethod.CaptureGameRegion);
+#pragma warning restore CS8974 // Converting method group to non-delegate type
}
}
diff --git a/BetterGenshinImpact/Core/Script/Group/ScriptGroup.cs b/BetterGenshinImpact/Core/Script/Group/ScriptGroup.cs
index 96c5ca67..057fdee1 100644
--- a/BetterGenshinImpact/Core/Script/Group/ScriptGroup.cs
+++ b/BetterGenshinImpact/Core/Script/Group/ScriptGroup.cs
@@ -34,6 +34,6 @@ public partial class ScriptGroup : ObservableObject
public static ScriptGroup FromJson(string json)
{
- return JsonSerializer.Deserialize(json, ConfigService.JsonOptions) ?? throw new Exception("解析配置组JSON配置失败");
+ return Newtonsoft.Json.JsonConvert.DeserializeObject(json) ?? throw new Exception("解析配置组JSON配置失败");
}
}
diff --git a/BetterGenshinImpact/ViewModel/Pages/ScriptControlViewModel.cs b/BetterGenshinImpact/ViewModel/Pages/ScriptControlViewModel.cs
index 99fe19eb..a0c8c5a2 100644
--- a/BetterGenshinImpact/ViewModel/Pages/ScriptControlViewModel.cs
+++ b/BetterGenshinImpact/ViewModel/Pages/ScriptControlViewModel.cs
@@ -342,10 +342,11 @@ public partial class ScriptControlViewModel : ObservableObject, INavigationAware
};
uiMessageBox.ShowDialogAsync();
- // foreach (var group in ScriptGroups)
- // {
- // WriteScriptGroup(group);
- // }
+ // 由于 JsScriptSettingsObject 的存在,这里只能手动再次保存配置
+ foreach (var group in ScriptGroups)
+ {
+ WriteScriptGroup(group);
+ }
}
else
{