diff --git a/VPet.Plugin.ChatVPet/CVPTTalkAPI.cs b/VPet.Plugin.ChatVPet/CVPTTalkAPI.cs index 1d4c672..4682cf3 100644 --- a/VPet.Plugin.ChatVPet/CVPTTalkAPI.cs +++ b/VPet.Plugin.ChatVPet/CVPTTalkAPI.cs @@ -84,16 +84,16 @@ private void VoiceRecognize() //{ // return int.Max(7, (int)Math.Sqrt(like / 16) - 2); //} - public override void Responded(string content) + public override void Responded(string content) // 处理响应内容 { if (string.IsNullOrEmpty(content)) { return; } - DisplayThink(); + DisplayThink(); // 显示思考动画 if (Plugin.CGPTClient == null) { - DisplayThinkToSayRnd("请先前往设置中设置 GPT API".Translate()); + MessageBox.Show("请先前往设置中设置 GPT API".Translate()); return; } Dispatcher.Invoke(() => this.IsEnabled = false); @@ -104,7 +104,7 @@ public override void Responded(string content) { if (pr.IsError) { - Plugin.MW.Main.LabelDisplayShow("VCP报错: ".Translate() + pr.Reply); + MessageBox.Show("VCP报错: ".Translate() + pr.Reply); // 显示错误消息弹窗Label } else if (!string.IsNullOrWhiteSpace(pr.Reply)) { @@ -130,7 +130,7 @@ public override void Responded(string content) { string? model = Plugin.CGPTClient.Completions["vpet"].model?.ToLower(); if (string.IsNullOrWhiteSpace(model) || !model.Contains("gpt-4") || !model.Contains("o1") || !model.Contains("pro") || - !model.Contains("plus") || !model.Contains("max"))//确保提交质量 + !model.Contains("plus") || !model.Contains("max"))//确保提交质量 return; string[]? msg = Plugin.VPetChatProcess.Dialogues.LastOrDefault()?.ToMessages(Plugin.VPetChatProcess.Localization); @@ -158,7 +158,9 @@ public override void Responded(string content) { str = "请检查API token设置".Translate(); } - DisplayThinkToSayRnd("API调用失败".Translate() + $",{str}\n{e}");//, GraphCore.Helper.SayType.Serious); + DisplayThinkToSayRndAutoNoForce("API调用失败".Translate() + $",{str}\n{e}"); //, GraphCore.Helper.SayType.Serious); + MessageBox.Show("API调用失败".Translate() + $",{str}\n{e}"); // 显示错误消息弹窗 + Dispatcher.Invoke(() => this.IsEnabled = true); // 恢复按钮可用状态 } } bool istalksuccess = false; diff --git a/VPet.Plugin.ChatVPet/CVP_Tool.cs b/VPet.Plugin.ChatVPet/CVP_Tool.cs index 93b9214..313eab5 100644 --- a/VPet.Plugin.ChatVPet/CVP_Tool.cs +++ b/VPet.Plugin.ChatVPet/CVP_Tool.cs @@ -53,7 +53,7 @@ public partial class CVPPlugin public string? ToolStopWork(Dictionary args) { - MW.Main.WorkTimer.Stop(reason: FinishWorkInfo.StopReason.MenualStop); + MW.Dispatcher.Invoke(() => MW.Main.WorkTimer.Stop(reason: FinishWorkInfo.StopReason.MenualStop)); return null; } public string? ToolDance(Dictionary args) @@ -87,14 +87,21 @@ public partial class CVPPlugin } public string? ToolSleep(Dictionary args) { - MW.Main.WorkTimer.Stop(reason: FinishWorkInfo.StopReason.MenualStop); var m = MW.Main; - if (m.State == Main.WorkingState.Nomal) - m.DisplaySleep(true); - else if (m.State != Main.WorkingState.Sleep) + MW.Dispatcher.Invoke(() => { - m.WorkTimer.Stop(() => m.DisplaySleep(true), WorkTimer.FinishWorkInfo.StopReason.MenualStop); - } + if (m.State == Main.WorkingState.Nomal) + { + // 正常状态直接睡觉 + m.DisplaySleep(true); + } + else if (m.State != Main.WorkingState.Sleep) + { + // 如果正在工作,先停止工作再睡觉 + m.WorkTimer.Stop(() => m.DisplaySleep(true), WorkTimer.FinishWorkInfo.StopReason.MenualStop); + } + // 如果已经是睡眠状态,什么都不做 + }); return null; } public string? ToolWakeup(Dictionary args) diff --git a/VPet.Plugin.ChatVPet/VPet.Plugin.ChatVPet.csproj b/VPet.Plugin.ChatVPet/VPet.Plugin.ChatVPet.csproj index 6385757..a243e28 100644 --- a/VPet.Plugin.ChatVPet/VPet.Plugin.ChatVPet.csproj +++ b/VPet.Plugin.ChatVPet/VPet.Plugin.ChatVPet.csproj @@ -5,6 +5,8 @@ enable true true + true + true