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 {