diff --git a/Compatible/Compatible.csproj b/Compatible/Compatible.csproj index 54370f4..45991ae 100644 --- a/Compatible/Compatible.csproj +++ b/Compatible/Compatible.csproj @@ -8,7 +8,7 @@ - + diff --git a/Igniter/MSG/ViewAllowWindow.cs b/Igniter/MSG/ViewAllowWindow.cs index d0b7a2b..08a02b1 100644 --- a/Igniter/MSG/ViewAllowWindow.cs +++ b/Igniter/MSG/ViewAllowWindow.cs @@ -3,7 +3,7 @@ namespace Igniter.MSG { - public sealed class ViewAllowWindow : AsyncRequestMessage + public sealed class ViewAllowWindow : RequestMessage { public string Text { get; set; } diff --git a/Igniter/View/MainWindow.xaml.cs b/Igniter/View/MainWindow.xaml.cs index 196cd2f..001536e 100644 --- a/Igniter/View/MainWindow.xaml.cs +++ b/Igniter/View/MainWindow.xaml.cs @@ -11,7 +11,7 @@ { InitializeComponent(); - StrongReferenceMessenger.Default.Register(this, (recipient, message) => message.Reply(Dispatcher.InvokeAsync(() => MessageBox.Show(this, message.Text, "Qwilight", message.Input, message.Drawing)).Task)); + StrongReferenceMessenger.Default.Register(this, (recipient, message) => message.Reply(MessageBox.Show(this, message.Text, "Qwilight", message.Input, message.Drawing))); } void OnLoaded(object sender, RoutedEventArgs e) => _ = (DataContext as MainViewModel).OnLoaded(); diff --git a/Igniter/ViewModels/MainViewModel.cs b/Igniter/ViewModels/MainViewModel.cs index b1778af..d82fbc8 100644 --- a/Igniter/ViewModels/MainViewModel.cs +++ b/Igniter/ViewModels/MainViewModel.cs @@ -39,7 +39,7 @@ public async Task OnLoaded() { - switch (await StrongReferenceMessenger.Default.Send(new ViewAllowWindow + switch (StrongReferenceMessenger.Default.Send(new ViewAllowWindow { Text = LanguageSystem.Instance.Levy, Input = MessageBoxButton.OKCancel, @@ -65,14 +65,14 @@ Text = fileName; } }; - await Task.Run(() => zipFile.ExtractAll(Path.GetDirectoryName(IgniterComponent.QwilightFilePath), ExtractExistingFileAction.OverwriteSilently)).ConfigureAwait(false); + await Task.Run(() => zipFile.ExtractAll(Path.GetDirectoryName(IgniterComponent.QwilightFilePath), ExtractExistingFileAction.OverwriteSilently)); } - await OnIgnited().ConfigureAwait(false); + OnIgnited(); } catch (Exception e) { - await OnIgnitingFault(e).ConfigureAwait(false); + OnIgnitingFault(e); if (IsVisible) { continue; @@ -84,16 +84,16 @@ break; } - async ValueTask OnIgnited() + async void OnIgnited() { IsVisible = false; - await StrongReferenceMessenger.Default.Send(new ViewAllowWindow + StrongReferenceMessenger.Default.Send(new ViewAllowWindow { Text = LanguageSystem.Instance.Ignited, Input = MessageBoxButton.OK, Drawing = MessageBoxImage.Information }); - switch (await StrongReferenceMessenger.Default.Send(new ViewAllowWindow + switch (StrongReferenceMessenger.Default.Send(new ViewAllowWindow { Text = LanguageSystem.Instance.ExeQwilight, Input = MessageBoxButton.YesNo, @@ -107,16 +107,16 @@ Environment.Exit(0); } - async ValueTask OnIgnitingFault(Exception e) + async void OnIgnitingFault(Exception e) { IsVisible = false; - await StrongReferenceMessenger.Default.Send(new ViewAllowWindow + StrongReferenceMessenger.Default.Send(new ViewAllowWindow { Text = e.Message, Input = MessageBoxButton.OK, Drawing = MessageBoxImage.Error }); - switch (await StrongReferenceMessenger.Default.Send(new ViewAllowWindow + switch (StrongReferenceMessenger.Default.Send(new ViewAllowWindow { Text = LanguageSystem.Instance.IgnitingFault, Input = MessageBoxButton.YesNo, diff --git a/Qwilight/Assets/Language.json b/Qwilight/Assets/Language.json index dbc0b6d..38da704 100644 --- a/Qwilight/Assets/Language.json +++ b/Qwilight/Assets/Language.json @@ -769,7 +769,7 @@ }, "DefaultComputeInNetSiteFault": { "ko-KR": "일반 플레이를 하시려면 먼저 멀티방에서 나가주세요", - "en-US": "If you want to play normally, please leave the multi-room first" + "en-US": "To play normally, leave the multiplayer room first" }, "DefaultComputingSituationContents": { "ko-KR": "게임 플레이 중… ({0})", @@ -1309,7 +1309,7 @@ }, "HasNotNetNoteFile": { "ko-KR": "해당 멀티방의 노트 파일을 가지지 않아서 시작이 불가능합니다.", - "en-US": "It is impossible to start because it does not have the note file of the multi-room." + "en-US": "Can't start because you don't have the note file for that multiroom." }, "HellBPMContents": { "ko-KR": "기믹 노트 파일만 보여줄지 설정합니다.", @@ -1733,7 +1733,7 @@ }, "IOHigherContents": { "ko-KR": "#,##0 명 관전 중…", - "en-US": "#,##0 people are spectating..." + "en-US": "#,##0 people are spectating…" }, "IOLowerContents": { "ko-KR": "{0} 관전 중…", @@ -2269,11 +2269,11 @@ }, "NewNetSiteContents": { "ko-KR": "멀티방 이름과 비밀번호를 입력하세요", - "en-US": "Enter the name and password of the multi-room" + "en-US": "Enter your multiroom name and password" }, "NewNetSiteText": { "ko-KR": "멀티방 만들기", - "en-US": "Creating a multi-room" + "en-US": "Create a multiroom" }, "NewSilentSite": { "ko-KR": "1대1 대화", @@ -2793,7 +2793,7 @@ }, "PlatformQuitMode": { "ko-KR": "결과 보는 중…", - "en-US": "Viewing results..." + "en-US": "Viewing results…" }, "PlatformSiteName": { "ko-KR": "비공식 디스코드 대화방", @@ -3003,14 +3003,14 @@ "ko-KR": "추가 스킨 받기", "en-US": "Download additional skins" }, - "SavedFileContents": { - "ko-KR": "파일 압축 풀기 완료", - "en-US": "File unzipping complete" - }, "SavedLevelContents": { "ko-KR": "난이도 테이블 다운로드 완료", "en-US": "Difficulty table download complete" }, + "SavedNoteContents": { + "ko-KR": "노트 파일 압축 풀기 완료", + "en-US": "Note file unzipping completed" + }, "SavedQwilightBundleContents": { "ko-KR": "게임을 다시 시작한 후 복원이 진행됩니다.", "en-US": "Restoration proceeds after restarting the game." @@ -3027,10 +3027,6 @@ "ko-KR": "스킨 등록 완료", "en-US": "Skin registration completed" }, - "SaveFileFault": { - "ko-KR": "파일 압축 풀기가 불가능합니다. ({0})", - "en-US": "It is not possible to unzip the file. ({0})" - }, "SaveModeComponent": { "ko-KR": "여기에 저장", "en-US": "Save here" @@ -3043,9 +3039,13 @@ "ko-KR": "공유 받기", "en-US": "Get a Share" }, + "SaveNoteFault": { + "ko-KR": "노트 파일 압축 풀기가 불가능합니다. ({0})", + "en-US": "Unable to extract note file ({0})" + }, "SaveUIFault": { "ko-KR": "스킨 등록이 불가능합니다. ({0})", - "en-US": "Skin registration is not possible. ({0})" + "en-US": "Unable to register skin ({0})" }, "SavingAsBundleContents": { "ko-KR": "꾸러미로 업로드 중…", @@ -3063,14 +3063,14 @@ "ko-KR": "추가 스킨을 백그라운드에서 받습니다.", "en-US": "Downloading additional skins in the background." }, - "SavingFileContents": { - "ko-KR": "파일 압축 푸는 중…", - "en-US": "Unzipping files..." - }, "SavingLevelContents": { "ko-KR": "난이도 테이블 다운로드 중…", "en-US": "Downloading difficulty table…" }, + "SavingNoteContents": { + "ko-KR": "노트 파일 압축 푸는 중…", + "en-US": "Unzipping note file…" + }, "SavingQwilightContents": { "ko-KR": "새 버전 다운로드 중…", "en-US": "Downloading new version…" @@ -3189,7 +3189,7 @@ }, "SiteYellNewNetSite": { "ko-KR": "새 멀티방을 만듦", - "en-US": "Create a new multi-room" + "en-US": "Create a new multiroom" }, "SiteYellNewSite": { "ko-KR": "새 대화방을 만듦", @@ -3385,7 +3385,7 @@ }, "TwilightCommentaryAssist": { "ko-KR": "코멘트를 입력하세요", - "en-US": "Write a comment..." + "en-US": "Please enter a comment" }, "TwilightCommentIOContents": { "ko-KR": "다른 사용자의 실시간 멀티 플레이 화면을 클릭하면 바로 관전 가능합니다.", diff --git a/Qwilight/Compute/DefaultCompute.cs b/Qwilight/Compute/DefaultCompute.cs index ad69e56..1e422b2 100644 --- a/Qwilight/Compute/DefaultCompute.cs +++ b/Qwilight/Compute/DefaultCompute.cs @@ -3552,7 +3552,7 @@ _failedDrawingMillis = Math.Max(0.0, _failedDrawingMillis - millisLoopUnit); - GetNetItems(); + _ = GetNetItems(); GetNetComments(); HandleNetItems(millisLoopUnit); } @@ -4789,7 +4789,7 @@ return targetPosition; } - public virtual void GetNetItems() + public virtual async Task GetNetItems() { if (!_wasNetItems) { @@ -4810,49 +4810,45 @@ } } - _ = Awaitable(); - async Task Awaitable() + var eventNoteID = EventNoteEntryItem?.EventNoteID; + var netItems = new List(); + switch (!string.IsNullOrEmpty(eventNoteID) || NoteFile.IsBanned ? 0 : Configure.Instance.CommentViewTabPosition) { - var eventNoteID = EventNoteEntryItem?.EventNoteID; - var netItems = new List(); - switch (!string.IsNullOrEmpty(eventNoteID) || NoteFile.IsBanned ? 0 : Configure.Instance.CommentViewTabPosition) - { - case 0: - netItems.AddRange(GetNetItemsImpl(DB.Instance.GetCommentItems(NoteFiles[0], eventNoteID, NoteFiles.Length))); - _totalComments = netItems.Count; - break; - case 1: - case 2: - var www = $"{QwilightComponent.QwilightAPI}/comment?noteID={NoteFile.GetNoteID512()}&avatarID={Configure.Instance.AvatarID}&isUbuntu={Configure.Instance.UbuntuNetItemTarget || !string.IsNullOrEmpty(UbuntuID)}&ubuntuID={UbuntuID}&viewUnit=50"; - var twilightWwwComment = await TwilightSystem.Instance.GetWwwParallel(www).ConfigureAwait(false); - if (twilightWwwComment.HasValue) - { - var twilightWwwCommentValue = twilightWwwComment.Value; - PositionSystem.Instance.SetData(www, twilightWwwCommentValue.comments); - _totalComments = twilightWwwCommentValue.totalComments; - netItems.AddRange(GetNetItemsImpl(HandleTwilightNetItems(Utility.GetCommentItems(twilightWwwCommentValue, NoteFile, www)))); - } - break; - } - netItems.Add(netItemMe); - _netItems.AddRange(netItems); - lock (IsTwilightNetItemsCSX) - { - if (!IsTwilightNetItems) + case 0: + netItems.AddRange(GetNetItemsImpl(DB.Instance.GetCommentItems(NoteFiles[0], eventNoteID, NoteFiles.Length))); + _totalComments = netItems.Count; + break; + case 1: + case 2: + var www = $"{QwilightComponent.QwilightAPI}/comment?noteID={NoteFile.GetNoteID512()}&avatarID={Configure.Instance.AvatarID}&isUbuntu={Configure.Instance.UbuntuNetItemTarget || !string.IsNullOrEmpty(UbuntuID)}&ubuntuID={UbuntuID}&viewUnit=50"; + var twilightWwwComment = await TwilightSystem.Instance.GetWwwParallel(www); + if (twilightWwwComment.HasValue) { - SetNetItems(netItems); + var twilightWwwCommentValue = twilightWwwComment.Value; + PositionSystem.Instance.SetData(www, twilightWwwCommentValue.comments); + _totalComments = twilightWwwCommentValue.totalComments; + netItems.AddRange(GetNetItemsImpl(HandleTwilightNetItems(Utility.GetCommentItems(twilightWwwCommentValue, NoteFile, www)))); } - } - _wasGetNetItems = true; - - IEnumerable GetNetItemsImpl(ICollection commentItems) => commentItems.Select(commentItem => new NetItem(commentItem.AvatarWwwValue.AvatarID, commentItem.AvatarName, commentItem.Date, commentItem.Stand, commentItem.Band, commentItem.Point, commentItem.Stand / (1000000.0 * NoteFiles.Length)) - { - CommentItem = commentItem, - AvatarNetStatus = Event.Types.AvatarNetStatus.Clear, - QuitValue = Utility.GetQuitStatusValue(commentItem.Point, commentItem.Stand, 1.0, NoteFiles.Length), - HitPointsModeValue = commentItem.ModeComponentValue.HandlingHitPointsModeValue - }); + break; } + netItems.Add(netItemMe); + _netItems.AddRange(netItems); + lock (IsTwilightNetItemsCSX) + { + if (!IsTwilightNetItems) + { + SetNetItems(netItems); + } + } + _wasGetNetItems = true; + + IEnumerable GetNetItemsImpl(ICollection commentItems) => commentItems.Select(commentItem => new NetItem(commentItem.AvatarWwwValue.AvatarID, commentItem.AvatarName, commentItem.Date, commentItem.Stand, commentItem.Band, commentItem.Point, commentItem.Stand / (1000000.0 * NoteFiles.Length)) + { + CommentItem = commentItem, + AvatarNetStatus = Event.Types.AvatarNetStatus.Clear, + QuitValue = Utility.GetQuitStatusValue(commentItem.Point, commentItem.Stand, 1.0, NoteFiles.Length), + HitPointsModeValue = commentItem.ModeComponentValue.HandlingHitPointsModeValue + }); } } diff --git a/Qwilight/Compute/IOCompute.cs b/Qwilight/Compute/IOCompute.cs index f5943af..695de3c 100644 --- a/Qwilight/Compute/IOCompute.cs +++ b/Qwilight/Compute/IOCompute.cs @@ -29,15 +29,16 @@ IOMillis = time - ((time - twilightCallIOComponent.ioMillis) / 2 + twilightCallIOComponent.targetIOMillis); } - public override void GetNetItems() + public override async Task GetNetItems() { lock (IsTwilightNetItemsCSX) { if (!IsTwilightNetItems) { - base.GetNetItems(); + _ = base.GetNetItems(); } } + await Task.CompletedTask; } public override void GetNetComments() diff --git a/Qwilight/Compute/NetCompute.cs b/Qwilight/Compute/NetCompute.cs index 56eb1d0..80c5570 100644 --- a/Qwilight/Compute/NetCompute.cs +++ b/Qwilight/Compute/NetCompute.cs @@ -69,8 +69,9 @@ Configure.Instance.NotifyTutorial(Configure.TutorialID.NetQuitMode); } - public override void GetNetItems() + public override async Task GetNetItems() { + await Task.CompletedTask; } public override void GetNetComments() diff --git a/Qwilight/JSON.cs b/Qwilight/JSON.cs index 0384833..8fa6a92 100644 --- a/Qwilight/JSON.cs +++ b/Qwilight/JSON.cs @@ -151,7 +151,7 @@ } } - public struct TaehuiQwilight + public struct TaehuiQwilightDate { public string date; #if X64 diff --git a/Qwilight/NoteFile/DefaultEntryItemNoteFile.cs b/Qwilight/NoteFile/DefaultEntryItemNoteFile.cs index 50afd7e..4b86efb 100644 --- a/Qwilight/NoteFile/DefaultEntryItemNoteFile.cs +++ b/Qwilight/NoteFile/DefaultEntryItemNoteFile.cs @@ -20,10 +20,7 @@ { Title = entryItem.Title; Artist = entryItem.Artist; - OnLevyNoteFile = new(() => - { - ViewModels.Instance.MainValue.SetLastDefaultEntryItem(isEnter ? DefaultEntryItem : null); - }); + OnLevyNoteFile = new(() => ViewModels.Instance.MainValue.SetLastDefaultEntryItem(isEnter ? DefaultEntryItem : null)); } } } \ No newline at end of file diff --git a/Qwilight/Qwilight.csproj b/Qwilight/Qwilight.csproj index 56fb29d..76fad16 100644 --- a/Qwilight/Qwilight.csproj +++ b/Qwilight/Qwilight.csproj @@ -47,7 +47,7 @@ - + diff --git a/Qwilight/QwilightComponent.cs b/Qwilight/QwilightComponent.cs index 98e5685..8aaa259 100644 --- a/Qwilight/QwilightComponent.cs +++ b/Qwilight/QwilightComponent.cs @@ -1,5 +1,4 @@ using CommandLine; -using Microsoft.Win32; using Qwilight.UIComponent; using Qwilight.Utilities; #if DEBUG @@ -9,8 +8,6 @@ using System.IO; using System.Reflection; using System.Text.RegularExpressions; -using System.Windows; -using System.Windows.Media.Animation; using Windows.Win32; using Windows.Win32.Graphics.Gdi; diff --git a/Qwilight/System/AvatarDrawingSystem.cs b/Qwilight/System/AvatarDrawingSystem.cs index 57eec2d..7c9b128 100644 --- a/Qwilight/System/AvatarDrawingSystem.cs +++ b/Qwilight/System/AvatarDrawingSystem.cs @@ -49,7 +49,7 @@ var avatarCSX = _avatarCSXs.GetOrAdd(avatarID, GetCSX); try { - await avatarCSX.WaitAsync().ConfigureAwait(false); + await avatarCSX.WaitAsync(); if (!_avatarDrawings.TryGetValue(avatarID, out var avatarDrawing)) { if (string.IsNullOrEmpty(avatarID)) @@ -60,7 +60,7 @@ { try { - using var s = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/drawing?avatarID={WebUtility.UrlEncode(avatarID)}&drawingVariety=0").ConfigureAwait(false); + using var s = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/drawing?avatarID={WebUtility.UrlEncode(avatarID)}&drawingVariety=0"); avatarDrawing = new() { Drawing = DrawingSystem.Instance.Load(s, null), diff --git a/Qwilight/System/AvatarEdgeSystem.cs b/Qwilight/System/AvatarEdgeSystem.cs index d0ccb48..a143b05 100644 --- a/Qwilight/System/AvatarEdgeSystem.cs +++ b/Qwilight/System/AvatarEdgeSystem.cs @@ -49,7 +49,7 @@ var avatarCSX = _avatarCSXs.GetOrAdd(avatarID, GetCSX); try { - await avatarCSX.WaitAsync().ConfigureAwait(false); + await avatarCSX.WaitAsync(); if (!_avatarEdges.TryGetValue(avatarID, out var avatarEdge)) { if (string.IsNullOrEmpty(avatarID)) @@ -60,7 +60,7 @@ { try { - using var s = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/drawing?avatarID={WebUtility.UrlEncode(avatarID)}&drawingVariety=2").ConfigureAwait(false); + using var s = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/drawing?avatarID={WebUtility.UrlEncode(avatarID)}&drawingVariety=2"); avatarEdge = new() { Drawing = DrawingSystem.Instance.Load(s, null), diff --git a/Qwilight/System/AvatarTitleSystem.cs b/Qwilight/System/AvatarTitleSystem.cs index 8a372ff..fddb693 100644 --- a/Qwilight/System/AvatarTitleSystem.cs +++ b/Qwilight/System/AvatarTitleSystem.cs @@ -33,7 +33,7 @@ var avatarCSX = _avatarCSXs.GetOrAdd(avatarID, GetCSX); try { - await avatarCSX.WaitAsync().ConfigureAwait(false); + await avatarCSX.WaitAsync(); if (!_avatarTitles.TryGetValue(avatarID, out var avatarTitle)) { if (string.IsNullOrEmpty(avatarID)) @@ -44,7 +44,7 @@ { try { - var twilightWwwTitle = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/title?avatarID={WebUtility.UrlEncode(avatarID)}&language={Configure.Instance.Language}").ConfigureAwait(false); + var twilightWwwTitle = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/title?avatarID={WebUtility.UrlEncode(avatarID)}&language={Configure.Instance.Language}"); avatarTitle = twilightWwwTitle.HasValue ? new AvatarTitle(twilightWwwTitle.Value.title, Utility.GetTitlePaint(twilightWwwTitle.Value.titleColor), Utility.GetTitleColor(twilightWwwTitle.Value.titleColor)) : new AvatarTitle(string.Empty, default, default); } catch diff --git a/Qwilight/System/Configure/UIConfigure.cs b/Qwilight/System/Configure/UIConfigure.cs index d9ba1eb..eca45c5 100644 --- a/Qwilight/System/Configure/UIConfigure.cs +++ b/Qwilight/System/Configure/UIConfigure.cs @@ -137,7 +137,7 @@ { get => _judgmentVisualizerPosition; - set =>SetProperty(ref _judgmentVisualizerPosition, value, nameof(JudgmentVisualizerPosition)); + set => SetProperty(ref _judgmentVisualizerPosition, value, nameof(JudgmentVisualizerPosition)); } public Dictionary HitNotePaintAreas { get; set; } = new(); diff --git a/Qwilight/System/DrawingSystem/DrawingSystem.cs b/Qwilight/System/DrawingSystem/DrawingSystem.cs index 23b807f..787de43 100644 --- a/Qwilight/System/DrawingSystem/DrawingSystem.cs +++ b/Qwilight/System/DrawingSystem/DrawingSystem.cs @@ -402,9 +402,9 @@ var handleUndoImpl = new Action(mainViewModel.HandleUndoComment); var handleQuitMove0Impl = new Action(() => defaultComputer.NotifyCompute(-1)); var handleQuitMove1Impl = new Action(() => defaultComputer.NotifyCompute(1)); - var getAvatarDrawing = new Action(avatarID => _ = AvatarDrawingSystem.Instance.GetAvatarDrawing(avatarID as string)); - var getAvatarTitle = new Action(avatarID => _ = AvatarTitleSystem.Instance.GetAvatarTitle(avatarID as string)); - var getAvatarEdge = new Action(avatarID => _ = AvatarEdgeSystem.Instance.GetAvatarEdge(avatarID as string)); + var getAvatarDrawing = new Action(async avatarID => await AvatarDrawingSystem.Instance.GetAvatarDrawing(avatarID as string)); + var getAvatarTitle = new Action(async avatarID => await AvatarTitleSystem.Instance.GetAvatarTitle(avatarID as string)); + var getAvatarEdge = new Action(async avatarID => await AvatarEdgeSystem.Instance.GetAvatarEdge(avatarID as string)); var distanceMillisMax = double.MinValue; var frametime = 0.0; diff --git a/Qwilight/System/LanguageSystem/LanguageSystem.g.cs b/Qwilight/System/LanguageSystem/LanguageSystem.g.cs index f7ccd0e..f5849fc 100644 --- a/Qwilight/System/LanguageSystem/LanguageSystem.g.cs +++ b/Qwilight/System/LanguageSystem/LanguageSystem.g.cs @@ -753,23 +753,23 @@ public string SaveDefaultUIContents { get; set; } public string SaveDefaultUINotify { get; set; } public string SaveDefaultUIText { get; set; } - public string SavedFileContents { get; set; } public string SavedLevelContents { get; set; } + public string SavedNoteContents { get; set; } public string SavedQwilightBundleContents { get; set; } public string SavedQwilightContents { get; set; } public string SavedStillDrawing { get; set; } public string SavedUIContents { get; set; } - public string SaveFileFault { get; set; } public string SaveModeComponent { get; set; } public string SaveModeComponentContents { get; set; } public string SaveNetBundle { get; set; } + public string SaveNoteFault { get; set; } public string SaveUIFault { get; set; } public string SavingAsBundleContents { get; set; } public string SavingBundleContents { get; set; } public string SavingDefaultNotesContents { get; set; } public string SavingDefaultUIContents { get; set; } - public string SavingFileContents { get; set; } public string SavingLevelContents { get; set; } + public string SavingNoteContents { get; set; } public string SavingQwilightContents { get; set; } public string SavingUIContents { get; set; } public string SetAutoNoteWait { get; set; } diff --git a/Qwilight/System/LevelSystem.cs b/Qwilight/System/LevelSystem.cs index 8c59e6b..42a6516 100644 --- a/Qwilight/System/LevelSystem.cs +++ b/Qwilight/System/LevelSystem.cs @@ -106,7 +106,7 @@ public async ValueTask GetWww(string www) { - using var s = await TwilightSystem.Instance.GetWwwParallel(www).ConfigureAwait(false); + using var s = await TwilightSystem.Instance.GetWwwParallel(www); using var sr = new StreamReader(s); return await (www.IsTailCaselsss(".json") ? GetJSON(s, www) : GetHTML(await sr.ReadToEndAsync().ConfigureAwait(false), www)); } @@ -119,7 +119,7 @@ levelCompiler.LoadHtml(text); using var s = await TwilightSystem.Instance.GetWwwParallel(WebUtility.HtmlDecode(ModifyDataValue(levelCompiler.CreateNavigator().SelectSingleNode("/html/head/meta[@name='bmstable']/@content")?.ToString() ?? levelCompiler.CreateNavigator().SelectSingleNode("/html/body/meta[@name='bmstable']/@content")?.ToString() - ?? levelCompiler.CreateNavigator().SelectSingleNode("/html/head/body/meta[@name='bmstable']/@content")?.ToString(), www))).ConfigureAwait(false); + ?? levelCompiler.CreateNavigator().SelectSingleNode("/html/head/body/meta[@name='bmstable']/@content")?.ToString(), www))); return await GetJSON(s, www); } catch (Exception e) @@ -165,7 +165,7 @@ var length = 0; while ((length = await ws.ReadAsync(data.AsMemory(0, data.Length)).ConfigureAwait(false)) > 0) { - await fs.WriteAsync(data.AsMemory(0, length)).ConfigureAwait(false); + await fs.WriteAsync(data.AsMemory(0, length)); savingLevelItem.Status += length; } } @@ -173,7 +173,7 @@ using (var fs = File.Open(Path.Combine(EntryPath, $"#{levelTableFileName}.json"), FileMode.Create)) { s.Position = 0; - await s.CopyToAsync(fs).ConfigureAwait(false); + await s.CopyToAsync(fs); } savingLevelItem.Variety = NotifySystem.NotifyVariety.Quit; savingLevelItem.Text = LanguageSystem.Instance.SavedLevelContents; diff --git a/Qwilight/System/MediaInputSystem.cs b/Qwilight/System/MediaInputSystem.cs index f50d823..2c6f4c4 100644 --- a/Qwilight/System/MediaInputSystem.cs +++ b/Qwilight/System/MediaInputSystem.cs @@ -28,13 +28,12 @@ { if (SetProperty(ref _mediaInputItem, value, nameof(MediaInputItemValue)) && value.HasValue) { - _ = Awaitable(); - async Task Awaitable() + _mediaInputSystem.CreateFrameReaderAsync(_mediaInputSystem.FrameSources[value.Value.ID], MediaEncodingSubtypes.Bgra8).AsTask().ContinueWith(async t => { - _mediaInputComputer = await _mediaInputSystem.CreateFrameReaderAsync(_mediaInputSystem.FrameSources[value.Value.ID], MediaEncodingSubtypes.Bgra8); + _mediaInputComputer = await t; _mediaInputComputer.FrameArrived += OnMediaFrameAvailable; await _mediaInputComputer.StartAsync(); - } + }); } } } diff --git a/Qwilight/System/TwilightSystem.cs b/Qwilight/System/TwilightSystem.cs index b8e0263..4cd12ff 100644 --- a/Qwilight/System/TwilightSystem.cs +++ b/Qwilight/System/TwilightSystem.cs @@ -46,9 +46,9 @@ public TwilightSystem() { _wwwClient.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0"); - _handleSendParallel = obj => + _handleSendParallel = o => { - var eventItem = obj as Event; + var eventItem = o as Event; if (eventItem != null) { eventItem.Millis = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(); @@ -330,7 +330,7 @@ break; case Event.Types.EventID.NotifyPass: var twilightNotifyPass = Utility.GetJSON(eventItemText); - NotifySystem.Instance.Notify(NotifySystem.NotifyVariety.Info, NotifySystem.NotifyConfigure.Default, string.Format(LanguageSystem.Instance.PassNotify, Utility.GetPlatformText(twilightNotifyPass.title, twilightNotifyPass.artist, Utility.GetGenreText(twilightNotifyPass.genre), twilightNotifyPass.levelText), twilightNotifyPass.avatarName), false, "Notify Pass", () => mainViewModel.MoveEntryItemsView(twilightNotifyPass.noteID)); + NotifySystem.Instance.Notify(NotifySystem.NotifyVariety.Info, NotifySystem.NotifyConfigure.Default, string.Format(LanguageSystem.Instance.PassNotify, Utility.GetPlatformText(twilightNotifyPass.title, twilightNotifyPass.artist, Utility.GetGenreText(twilightNotifyPass.genre), twilightNotifyPass.levelText), twilightNotifyPass.avatarName), false, "Notify Pass", async () => await mainViewModel.MoveEntryItemsView(twilightNotifyPass.noteID)); break; case Event.Types.EventID.LevelUp: var twilightLevelUp = Utility.GetJSON(eventItemText); @@ -1428,9 +1428,9 @@ try { var dataGet = new HttpRequestMessage(HttpMethod.Get, target); - var www = await _wwwClient.SendAsync(dataGet).ConfigureAwait(false); + var www = await _wwwClient.SendAsync(dataGet); www.EnsureSuccessStatusCode(); - return await www.Content.ReadAsStreamAsync().ConfigureAwait(false); + return await www.Content.ReadAsStreamAsync(); } catch { @@ -1440,16 +1440,16 @@ return Stream.Null; } - public async ValueTask GetWwwParallel(string target) + public async Task GetWwwParallel(string target) { if (target.EqualsCaseless($"{QwilightComponent.TaehuiNetFE}/qwilight/qwilight.json") || !target.IsFrontCaselsss(QwilightComponent.TaehuiNetFE) || IsEstablished) { try { var dataGet = new HttpRequestMessage(HttpMethod.Get, target); - using var www = await _wwwClient.SendAsync(dataGet).ConfigureAwait(false); + using var www = await _wwwClient.SendAsync(dataGet); www.EnsureSuccessStatusCode(); - var text = await www.Content.ReadAsStringAsync().ConfigureAwait(false); + var text = await www.Content.ReadAsStringAsync(); if (!string.IsNullOrEmpty(text)) { return Utility.GetJSON(text); @@ -1474,7 +1474,7 @@ Content = new StringContent(data, Encoding.UTF8, dataVariety) }; dataPost.Headers.Add("millis", DateTimeOffset.UtcNow.ToUnixTimeMilliseconds().ToString()); - using var www = await _wwwClient.SendAsync(dataPost).ConfigureAwait(false); + using var www = await _wwwClient.SendAsync(dataPost); www.EnsureSuccessStatusCode(); return true; } @@ -1508,7 +1508,7 @@ }; dataPost.Headers.Add("millis", DateTimeOffset.UtcNow.ToUnixTimeMilliseconds().ToString()); dataPost.Headers.Add("totem", Totem); - using var www = await _wwwClient.SendAsync(dataPost).ConfigureAwait(false); + using var www = await _wwwClient.SendAsync(dataPost); www.EnsureSuccessStatusCode(); return true; } @@ -1531,9 +1531,9 @@ Content = new ByteArrayContent(data) }; dataPost.Headers.Add("millis", DateTimeOffset.UtcNow.ToUnixTimeMilliseconds().ToString()); - using var www = await _wwwClient.SendAsync(dataPost).ConfigureAwait(false); + using var www = await _wwwClient.SendAsync(dataPost); www.EnsureSuccessStatusCode(); - return await www.Content.ReadAsStringAsync().ConfigureAwait(false); + return await www.Content.ReadAsStringAsync(); } catch { @@ -1555,7 +1555,7 @@ }; dataPut.Headers.Add("millis", DateTimeOffset.UtcNow.ToUnixTimeMilliseconds().ToString()); dataPut.Headers.Add("totem", Totem); - using var www = await _wwwClient.SendAsync(dataPut).ConfigureAwait(false); + using var www = await _wwwClient.SendAsync(dataPut); www.EnsureSuccessStatusCode(); } catch @@ -1566,7 +1566,7 @@ public async Task GetDefaultNoteDate(long defaultNoteDate, bool isSilent) { - var twilightWwwDefaultDate = await GetWwwParallel($"{QwilightComponent.QwilightAPI}/defaultNoteDate?date={defaultNoteDate}").ConfigureAwait(false); + var twilightWwwDefaultDate = await GetWwwParallel($"{QwilightComponent.QwilightAPI}/defaultNoteDate?date={defaultNoteDate}"); if (twilightWwwDefaultDate.HasValue) { var date = twilightWwwDefaultDate.Value.date; @@ -1597,7 +1597,7 @@ public async Task GetDefaultUIDate(long defaultUIDate, bool isSilent) { - var twilightWwwDefaultDate = await GetWwwParallel($"{QwilightComponent.QwilightAPI}/defaultUIDate?date={defaultUIDate}").ConfigureAwait(false); + var twilightWwwDefaultDate = await GetWwwParallel($"{QwilightComponent.QwilightAPI}/defaultUIDate?date={defaultUIDate}"); if (twilightWwwDefaultDate.HasValue) { var date = twilightWwwDefaultDate.Value.date; diff --git a/Qwilight/System/ValveSystem.cs b/Qwilight/System/ValveSystem.cs index d7417dc..189c90a 100644 --- a/Qwilight/System/ValveSystem.cs +++ b/Qwilight/System/ValveSystem.cs @@ -30,7 +30,7 @@ SteamScreenshots.Hooked = true; SteamScreenshots.OnScreenshotRequested += ViewModels.Instance.MainValue.HandleF12; ValveName = SteamClient.Name; - var largeAvatarDrawing = await SteamFriends.GetLargeAvatarAsync(SteamClient.SteamId).ConfigureAwait(false); + var largeAvatarDrawing = await SteamFriends.GetLargeAvatarAsync(SteamClient.SteamId); if (largeAvatarDrawing.HasValue) { var largeAvatarDrawingValue = largeAvatarDrawing.Value; diff --git a/Qwilight/UIComponent/EntryItem.cs b/Qwilight/UIComponent/EntryItem.cs index c6508bc..4bb03f7 100644 --- a/Qwilight/UIComponent/EntryItem.cs +++ b/Qwilight/UIComponent/EntryItem.cs @@ -111,7 +111,7 @@ public int HighestInputCount { get; set; } - public double AverageInputCount => Length > 0.0 ? TotalNotes / Length : TotalNotes; + public double AverageInputCount { get; set; } public BaseNoteFile[] NoteFiles { get; set; } diff --git a/Qwilight/View/AvatarWindow.xaml.cs b/Qwilight/View/AvatarWindow.xaml.cs index d500742..368d7a7 100644 --- a/Qwilight/View/AvatarWindow.xaml.cs +++ b/Qwilight/View/AvatarWindow.xaml.cs @@ -17,9 +17,6 @@ } } - void OnLevyNoteFile(object sender, MouseButtonEventArgs e) - { - ((sender as FrameworkElement).DataContext as AvatarViewModel.AvatarComputing).OnLevyNoteFile(e); - } + void OnLevyNoteFile(object sender, MouseButtonEventArgs e) => _ = ((sender as FrameworkElement).DataContext as AvatarViewModel.AvatarComputing).OnLevyNoteFile(e); } } \ No newline at end of file diff --git a/Qwilight/View/EdgePanel.xaml.cs b/Qwilight/View/EdgePanel.xaml.cs index d9bc03f..af4ff22 100644 --- a/Qwilight/View/EdgePanel.xaml.cs +++ b/Qwilight/View/EdgePanel.xaml.cs @@ -1,6 +1,5 @@ using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; -using Microsoft.Web.WebView2.Core; using Microsoft.Web.WebView2.Wpf; using System.Windows; using System.Windows.Input; diff --git a/Qwilight/View/EnrollWindow.xaml.cs b/Qwilight/View/EnrollWindow.xaml.cs index cad3d58..c44a8d9 100644 --- a/Qwilight/View/EnrollWindow.xaml.cs +++ b/Qwilight/View/EnrollWindow.xaml.cs @@ -19,6 +19,6 @@ })); } - void OnInputLower(object sender, KeyEventArgs e) => _ = (DataContext as EnrollViewModel).OnInputLower(e); + void OnInputLower(object sender, KeyEventArgs e) => (DataContext as EnrollViewModel).OnInputLower(e); } } \ No newline at end of file diff --git a/Qwilight/View/LevelVoteWindow.xaml.cs b/Qwilight/View/LevelVoteWindow.xaml.cs index d1f145e..5c68949 100644 --- a/Qwilight/View/LevelVoteWindow.xaml.cs +++ b/Qwilight/View/LevelVoteWindow.xaml.cs @@ -1,6 +1,4 @@ -using Qwilight.ViewModel; - -namespace Qwilight.View +namespace Qwilight.View { public sealed partial class LevelVoteWindow { diff --git a/Qwilight/View/MainWindow/MainWindow.xaml.cs b/Qwilight/View/MainWindow/MainWindow.xaml.cs index 9a421c3..a3bc62d 100644 --- a/Qwilight/View/MainWindow/MainWindow.xaml.cs +++ b/Qwilight/View/MainWindow/MainWindow.xaml.cs @@ -3,7 +3,6 @@ using Microsoft.UI; using Microsoft.UI.Content; using Microsoft.UI.Input; -using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; using Microsoft.UI.Xaml.Hosting; using Microsoft.UI.Xaml.Input; @@ -16,12 +15,10 @@ using System.Windows.Interop; using Windows.Foundation; using Windows.Graphics; -using Windows.Storage.Pickers; using Windows.Win32; using Windows.Win32.Foundation; using Windows.Win32.Graphics.Dwm; using Windows.Win32.UI.WindowsAndMessaging; -using WinRT.Interop; using DragEventArgs = System.Windows.DragEventArgs; using KeyEventArgs = System.Windows.Input.KeyEventArgs; using ResizeMode = System.Windows.ResizeMode; diff --git a/Qwilight/View/VoteWindow.xaml.cs b/Qwilight/View/VoteWindow.xaml.cs index d3fca19..062c702 100644 --- a/Qwilight/View/VoteWindow.xaml.cs +++ b/Qwilight/View/VoteWindow.xaml.cs @@ -1,8 +1,4 @@ -using CommunityToolkit.Mvvm.Messaging; -using Qwilight.MSG; -using Qwilight.ViewModel; - -namespace Qwilight.View +namespace Qwilight.View { public sealed partial class VoteWindow { diff --git a/Qwilight/ViewModel/AvatarViewModel.cs b/Qwilight/ViewModel/AvatarViewModel.cs index 736d6a9..d6ff1f2 100644 --- a/Qwilight/ViewModel/AvatarViewModel.cs +++ b/Qwilight/ViewModel/AvatarViewModel.cs @@ -27,10 +27,10 @@ { } - public new void OnLevyNoteFile(MouseButtonEventArgs e) + public new async Task OnLevyNoteFile(MouseButtonEventArgs e) { var mainViewModel = ViewModels.Instance.MainValue; - var noteFile = mainViewModel.MoveEntryItemsView(GetNoteID512()); + var noteFile = await mainViewModel.MoveEntryItemsView(GetNoteID512()); if (noteFile != null && e.ClickCount >= 2) { mainViewModel.HandleLevyNoteFile(noteFile, noteFile.EntryItem, _avatarID); diff --git a/Qwilight/ViewModel/ConfigureViewModel.cs b/Qwilight/ViewModel/ConfigureViewModel.cs index cd40d4a..3fe8844 100644 --- a/Qwilight/ViewModel/ConfigureViewModel.cs +++ b/Qwilight/ViewModel/ConfigureViewModel.cs @@ -456,7 +456,7 @@ static void OnStopLastEqualAudio() => Configure.Instance.StopLastEqualAudio = !Configure.Instance.StopLastEqualAudio; [RelayCommand] - static async Task OnGetMIDI() => await MIDISystem.Instance.GetMIDIs().ConfigureAwait(false); + static async Task OnGetMIDI() => await MIDISystem.Instance.GetMIDIs(); [RelayCommand] static void OnFontFamily(int? e) @@ -804,10 +804,10 @@ } [RelayCommand] - static async Task OnDefaultNote() => await TwilightSystem.Instance.GetDefaultNoteDate(0, false).ConfigureAwait(false); + static async Task OnDefaultNote() => await TwilightSystem.Instance.GetDefaultNoteDate(0, false); [RelayCommand] - static async Task OnDefaultUI() => await TwilightSystem.Instance.GetDefaultUIDate(0, false).ConfigureAwait(false); + static async Task OnDefaultUI() => await TwilightSystem.Instance.GetDefaultUIDate(0, false); [RelayCommand] static void OnLoadBanalFailedMedia() @@ -829,7 +829,7 @@ { if (Configure.Instance.MediaInput) { - await MediaInputSystem.Instance.GetMediaInputItems().ConfigureAwait(false); + await MediaInputSystem.Instance.GetMediaInputItems(); } else { @@ -838,10 +838,10 @@ } [RelayCommand] - static async Task OnGetMedia() => await MediaInputSystem.Instance.GetMediaInputItems().ConfigureAwait(false); + static async Task OnGetMedia() => await MediaInputSystem.Instance.GetMediaInputItems(); [RelayCommand] - static async Task OnGetQwilight() => await ViewModels.Instance.MainValue.GetQwilight(false).ConfigureAwait(false); + static async Task OnGetQwilight() => await ViewModels.Instance.MainValue.GetQwilight(false); [RelayCommand] static void OnAutoHighlight() => Configure.Instance.AutoHighlight = !Configure.Instance.AutoHighlight; diff --git a/Qwilight/ViewModel/EnrollViewModel.cs b/Qwilight/ViewModel/EnrollViewModel.cs index 1b58625..533b910 100644 --- a/Qwilight/ViewModel/EnrollViewModel.cs +++ b/Qwilight/ViewModel/EnrollViewModel.cs @@ -56,11 +56,11 @@ Fax = string.Empty; } - public async Task OnInputLower(KeyEventArgs e) + public void OnInputLower(KeyEventArgs e) { if (e.Key == Key.Enter) { - await OnEnroll(); + _ = OnEnroll(); } } diff --git a/Qwilight/ViewModel/MainViewModel.cs b/Qwilight/ViewModel/MainViewModel.cs index 9d4ac3b..2d132cb 100644 --- a/Qwilight/ViewModel/MainViewModel.cs +++ b/Qwilight/ViewModel/MainViewModel.cs @@ -687,19 +687,19 @@ StrongReferenceMessenger.Default.Send(new SetWindowedMode()); - await MIDISystem.Instance.HandleSystem().ConfigureAwait(false); + await MIDISystem.Instance.HandleSystem(); AudioSystem.Instance.LoadDefaultAudioItems(); AudioSystem.Instance.LoadBanalAudio(); DrawingSystem.Instance.LoadDefaultDrawing(); DrawingSystem.Instance.LoadVeilDrawings(); - await ValveSystem.Instance.Init().ConfigureAwait(false); + await ValveSystem.Instance.Init(); await Task.Run(() => { Utility.SetBaseUIItem(null, Configure.Instance.BaseUIItemValue, false); Utility.SetUIItem(null, Configure.Instance.UIItemValue, false); - }).ConfigureAwait(false); + }); _isLoaded = true; @@ -746,7 +746,7 @@ if (Configure.Instance.AutoGetQwilight) { - _ = GetQwilight(true); + await GetQwilight(true); } } @@ -1022,12 +1022,12 @@ } } - public void SetLastDefaultEntryItem(DefaultEntryItem defaultEntryItem) + public async Task SetLastDefaultEntryItem(DefaultEntryItem defaultEntryItem) { if (Configure.Instance.LastDefaultEntryItem != defaultEntryItem) { Configure.Instance.LastDefaultEntryItem = defaultEntryItem; - LoadDefaultEntryItem(false); + await LoadDefaultEntryItem(false); } } @@ -1117,7 +1117,7 @@ e.Handled = true; break; case Key.Back: - SetLastDefaultEntryItem(null); + _ = SetLastDefaultEntryItem(null); break; case Key.Up: LowerEntryItem(); @@ -1280,7 +1280,7 @@ var commentID = TwilightCommentItem?.CommentID; if (!string.IsNullOrEmpty(noteID) && !string.IsNullOrEmpty(commentID)) { - using var s = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/comment?noteID={noteID}&commentID={commentID}").ConfigureAwait(false); + using var s = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/comment?noteID={noteID}&commentID={commentID}"); var noteFile = EntryItemValue?.NoteFile; var twilightCommentItem = TwilightCommentItem; if (IsNoteFileMode && noteFile?.GetNoteID512() == noteID && twilightCommentItem?.CommentID == commentID) @@ -1395,7 +1395,7 @@ } var assistFileViewModel = ViewModels.Instance.AssistFileValue; assistFileViewModel.Title = noteFile.EntryItem.Title; - assistFileViewModel.Assist = await File.ReadAllTextAsync(assistFilePath, Encoding.GetEncoding(format)).ConfigureAwait(false); + assistFileViewModel.Assist = await File.ReadAllTextAsync(assistFilePath, Encoding.GetEncoding(format)); assistFileViewModel.Open(); } } @@ -1780,16 +1780,16 @@ public void HandleNoteBundle(string filePath) { - var savingFileItem = new NotifyItem + var savingNoteItem = new NotifyItem { - Text = LanguageSystem.Instance.SavingFileContents, + Text = LanguageSystem.Instance.SavingNoteContents, Variety = NotifySystem.NotifyVariety.Levying, OnStop = wipeTotal => false, }; try { - UIHandler.Instance.HandleParallel(() => ViewModels.Instance.NotifyValue.NotifyItemCollection.Insert(0, savingFileItem)); - NotifySystem.Instance.Notify(NotifySystem.NotifyVariety.Info, NotifySystem.NotifyConfigure.NotSave, savingFileItem.Text, true, null, null, NotifySystem.SaveFileID); + UIHandler.Instance.HandleParallel(() => ViewModels.Instance.NotifyValue.NotifyItemCollection.Insert(0, savingNoteItem)); + NotifySystem.Instance.Notify(NotifySystem.NotifyVariety.Info, NotifySystem.NotifyConfigure.NotSave, savingNoteItem.Text, true, null, null, NotifySystem.SaveFileID); var bundleEntryItem = Configure.Instance.LastDefaultEntryItem ?? DefaultEntryItem.EssentialBundle; if (bundleEntryItem.DefaultEntryVarietyValue != DefaultEntryItem.DefaultEntryVariety.Default && bundleEntryItem.DefaultEntryVarietyValue != DefaultEntryItem.DefaultEntryVariety.Essential) { @@ -1802,10 +1802,10 @@ if (rar || lzma) { using IArchive rarLZMAFile = rar ? RarArchive.Open(filePath) : SevenZipArchive.Open(filePath); - rarLZMAFile.ExtractToDirectory(bundleEntryPath, obj => + rarLZMAFile.ExtractToDirectory(bundleEntryPath, status => { - savingFileItem.Status = 100.0 * obj; - savingFileItem.MaxStatus = 100.0; + savingNoteItem.Status = 100.0 * status; + savingNoteItem.MaxStatus = 100.0; }); } else @@ -1818,26 +1818,26 @@ { if (e.EntriesTotal > 0) { - savingFileItem.Status = e.EntriesExtracted; - savingFileItem.MaxStatus = e.EntriesTotal; + savingNoteItem.Status = e.EntriesExtracted; + savingNoteItem.MaxStatus = e.EntriesTotal; } }; zipFile.ExtractAll(bundleEntryPath, ExtractExistingFileAction.OverwriteSilently); } LoadEntryItem(bundleEntryItem, bundleEntryPath); - savingFileItem.Variety = NotifySystem.NotifyVariety.Quit; - savingFileItem.Text = LanguageSystem.Instance.SavedFileContents; - NotifySystem.Instance.Notify(NotifySystem.NotifyVariety.OK, NotifySystem.NotifyConfigure.Default, savingFileItem.Text, true, null, null, NotifySystem.SaveFileID); + savingNoteItem.Variety = NotifySystem.NotifyVariety.Quit; + savingNoteItem.Text = LanguageSystem.Instance.SavedNoteContents; + NotifySystem.Instance.Notify(NotifySystem.NotifyVariety.OK, NotifySystem.NotifyConfigure.Default, savingNoteItem.Text, true, null, null, NotifySystem.SaveFileID); } catch (Exception e) { - savingFileItem.Variety = NotifySystem.NotifyVariety.Stopped; - savingFileItem.Text = string.Format(LanguageSystem.Instance.SaveFileFault, e.Message); - NotifySystem.Instance.Notify(NotifySystem.NotifyVariety.Fault, NotifySystem.NotifyConfigure.Default, savingFileItem.Text, true, null, null, NotifySystem.SaveFileID); + savingNoteItem.Variety = NotifySystem.NotifyVariety.Stopped; + savingNoteItem.Text = string.Format(LanguageSystem.Instance.SaveNoteFault, e.Message); + NotifySystem.Instance.Notify(NotifySystem.NotifyVariety.Fault, NotifySystem.NotifyConfigure.Default, savingNoteItem.Text, true, null, null, NotifySystem.SaveFileID); } finally { - savingFileItem.OnStop = wipeTotal => true; + savingNoteItem.OnStop = wipeTotal => true; } } @@ -1868,7 +1868,7 @@ } } - public void LoadDefaultEntryItem(bool isF5) + public async Task LoadDefaultEntryItem(bool isF5) { var lastDefaultEntryItem = Configure.Instance.LastDefaultEntryItem; if (lastDefaultEntryItem == null) @@ -1880,7 +1880,7 @@ _setCancelDefaultEntryLoading?.Cancel(); _setCancelDefaultEntryLoading = new(); IsDefaultEntryLoading = true; - Task.Run(() => + await Task.Run(() => { try { @@ -2240,7 +2240,6 @@ var levelID256s = LevelSystem.Instance.LevelID256s.ToFrozenDictionary(); var levelID128NoteFiles = new Dictionary(LevelSystem.Instance.LevelID128NoteFiles); var levelID256NoteFiles = new Dictionary(LevelSystem.Instance.LevelID256NoteFiles); - var logicalNoteFiles = new HashSet(); var titles = new List(); var bpms = new List(); var lengths = new List(); @@ -2263,13 +2262,15 @@ { foreach (var noteFile in noteFiles) { - if (!logicalNoteFiles.Contains(noteFile) && IsSatisfy(noteFile, false)) + if (NoteID512s.TryGetValue(noteFile.GetNoteID512(), out var loadedNoteFile) && noteFile == loadedNoteFile) { - wellNoteFiles.Add(noteFile); - logicalNoteFiles.Add(noteFile); + if (IsSatisfy(noteFile, false)) + { + wellNoteFiles.Add(noteFile); + } + levelID128NoteFiles.Remove(noteFile.GetNoteID128()); + levelID256NoteFiles.Remove(noteFile.GetNoteID256()); } - levelID128NoteFiles.Remove(noteFile.GetNoteID128()); - levelID256NoteFiles.Remove(noteFile.GetNoteID256()); } if (wellNoteFiles.Count > 0) { @@ -2285,6 +2286,7 @@ var levelTextValue = 0.0; var wantLevelID = string.Empty; var highestInputCount = 0; + var averageInputCount = 0.0; var totalNotes = 0; DateTime? latestDate = null; var handledCount = 0; @@ -2305,6 +2307,7 @@ lengths.Add(wellNoteFile.Length); totalNotes = Math.Max(totalNotes, wellNoteFile.TotalNotes); highestInputCount = Math.Max(highestInputCount, wellNoteFile.HighestInputCount); + averageInputCount = Math.Max(averageInputCount, wellNoteFile.AverageInputCount); hitPointsValue = Math.Max(hitPointsValue, wellNoteFile.HitPointsValue); if (handled < wellNoteFile.HandledValue) { @@ -2333,6 +2336,7 @@ entryItem.TotalNotes = totalNotes; entryItem.LevelTextValue = levelTextValue; entryItem.HighestInputCount = highestInputCount; + entryItem.AverageInputCount = averageInputCount; entryItem.HitPointsValue = hitPointsValue; entryItem.HandledValue = handled; if (!isEntryItemEventNote) @@ -2698,7 +2702,7 @@ }).Response) { case MESSAGEBOX_RESULT.IDYES: - LoadDefaultEntryItem(true); + _ = LoadDefaultEntryItem(true); break; case MESSAGEBOX_RESULT.IDNO: LoadEntryItem(EntryItemValue.DefaultEntryItem, EntryItemValue.EntryPath); @@ -2713,7 +2717,7 @@ Data = MESSAGEBOX_STYLE.MB_YESNO | MESSAGEBOX_STYLE.MB_ICONQUESTION | MESSAGEBOX_STYLE.MB_DEFBUTTON1 }) == MESSAGEBOX_RESULT.IDYES) { - LoadDefaultEntryItem(true); + _ = LoadDefaultEntryItem(true); } } } @@ -3215,11 +3219,11 @@ Target = EntryItemValue }); - public BaseNoteFile MoveEntryItemsView(string noteID) + public async ValueTask MoveEntryItemsView(string noteID) { if (NoteID512s.TryGetValue(noteID, out var noteFile)) { - SetLastDefaultEntryItem(noteFile.DefaultEntryItem); + await SetLastDefaultEntryItem(noteFile.DefaultEntryItem); var entryItem = noteFile.EntryItem; EntryItemValue = entryItem; if (entryItem.ModifyNotePosition(Array.IndexOf(entryItem.NoteFiles, noteFile))) @@ -3254,10 +3258,10 @@ }; try { - var taehuiQwilight = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.TaehuiNetFE}/qwilight/qwilight.json").ConfigureAwait(false); - if (taehuiQwilight.HasValue) + var taehuiQwilightDate = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.TaehuiNetFE}/qwilight/qwilight.json"); + if (taehuiQwilightDate.HasValue) { - var taehuiQwilightValue = taehuiQwilight.Value; + var taehuiQwilightValue = taehuiQwilightDate.Value; var date = Version.Parse(taehuiQwilightValue.date); if (QwilightComponent.Date < date || QwilightComponent.HashText != taehuiQwilightValue.hash) { @@ -3297,7 +3301,7 @@ var length = 0; while ((length = await ws.ReadAsync(data.AsMemory(0, data.Length)).ConfigureAwait(false)) > 0) { - await fs.WriteAsync(data.AsMemory(0, length)).ConfigureAwait(false); + await fs.WriteAsync(data.AsMemory(0, length)); savingQwilightItem.Status += length; } } @@ -3824,7 +3828,7 @@ return x.DefaultEntryVarietyValue.CompareTo(y.DefaultEntryVarietyValue); } }); - LoadDefaultEntryItem(false); + _ = LoadDefaultEntryItem(false); } public void WipeLoadedDefaultEntryItems() diff --git a/Qwilight/ViewModel/NoteFileViewModel.cs b/Qwilight/ViewModel/NoteFileViewModel.cs index f320c9e..fad3de5 100644 --- a/Qwilight/ViewModel/NoteFileViewModel.cs +++ b/Qwilight/ViewModel/NoteFileViewModel.cs @@ -100,13 +100,13 @@ if (!string.IsNullOrEmpty(filePath)) { Configure.Instance.BMSEditorFilePath = filePath; - await Edit().ConfigureAwait(false); + await Edit(); NotifySystem.Instance.Notify(NotifySystem.NotifyVariety.Info, NotifySystem.NotifyConfigure.Default, LanguageSystem.Instance.ModifyEditorContents); } } else { - await Edit().ConfigureAwait(false); + await Edit(); } async ValueTask Edit() @@ -129,7 +129,7 @@ if (!bmseViewerData.Contains(flintFilePath)) { bmseViewerData.AddRange(data.Split(Environment.NewLine)); - await File.WriteAllTextAsync(bmseViewerFilePath, string.Join(Environment.NewLine, bmseViewerData) + Environment.NewLine, Encoding.UTF8).ConfigureAwait(false); + await File.WriteAllTextAsync(bmseViewerFilePath, string.Join(Environment.NewLine, bmseViewerData) + Environment.NewLine, Encoding.UTF8); } var bmseCompiler = new FileIniDataParser(); diff --git a/Qwilight/ViewModel/SiteWindowViewModel.cs b/Qwilight/ViewModel/SiteWindowViewModel.cs index 0f882e0..72f2ca3 100644 --- a/Qwilight/ViewModel/SiteWindowViewModel.cs +++ b/Qwilight/ViewModel/SiteWindowViewModel.cs @@ -138,7 +138,7 @@ { if (IsOpened) { - var twilightWwwSites = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/sites").ConfigureAwait(false); + var twilightWwwSites = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/sites"); if (twilightWwwSites != null) { Utility.SetUICollection(SiteItemCollection, twilightWwwSites.Select(data => new SiteItem diff --git a/Qwilight/ViewModel/VoteViewModel.cs b/Qwilight/ViewModel/VoteViewModel.cs index 04afde6..8c69949 100644 --- a/Qwilight/ViewModel/VoteViewModel.cs +++ b/Qwilight/ViewModel/VoteViewModel.cs @@ -1,6 +1,4 @@ -using CommunityToolkit.Mvvm.Messaging; -using Qwilight.MSG; -using Qwilight.NoteFile; +using Qwilight.NoteFile; using Qwilight.Utilities; using System.Collections.ObjectModel; using System.Windows.Media; @@ -70,11 +68,10 @@ { if (SetProperty(ref _voteName, value, nameof(VoteName))) { - _ = Awaitable(); - async Task Awaitable() + IsVoteGroupLoading = true; + TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/vote?voteName={value}").ContinueWith(async t => { - IsVoteGroupLoading = true; - var twilightWwwVotes = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/vote?voteName={value}"); + var twilightWwwVotes = await t; if (twilightWwwVotes != null && VoteName == value) { Utility.SetUICollection(ComputingValues, twilightWwwVotes.Select(data => new VoteComputing @@ -87,7 +84,7 @@ }).ToArray()); } IsVoteGroupLoading = false; - } + }); } } } diff --git a/Qwilight/ViewModel/WwwLevelViewModel.cs b/Qwilight/ViewModel/WwwLevelViewModel.cs index cb8b3bd..bc2f027 100644 --- a/Qwilight/ViewModel/WwwLevelViewModel.cs +++ b/Qwilight/ViewModel/WwwLevelViewModel.cs @@ -306,12 +306,11 @@ { _lastWwwLevelItem = value; - _ = Awaitable(); - async Task Awaitable() + var levelID = value.LevelID; + IsLevelItemLoading = true; + TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/level?levelID={levelID}&language={Configure.Instance.Language}").ContinueWith(async t => { - var levelID = value.LevelID; - IsLevelItemLoading = true; - var twilightWwwLevel = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/level?levelID={levelID}&language={Configure.Instance.Language}"); + var twilightWwwLevel = await t; if (twilightWwwLevel.HasValue && WwwLevelItemValue?.LevelID == levelID) { var twilightWwwLevelValue = twilightWwwLevel.Value; @@ -446,11 +445,11 @@ { Value = autoMode, OnInput = new(() => - { - mainViewModel.ModeComponentValue.AutoModeValue = autoMode; - siteContainerViewModel.CallSetModeComponent(); - OnPropertyChanged(nameof(IsAutoModeCompatible)); - }) + { + mainViewModel.ModeComponentValue.AutoModeValue = autoMode; + siteContainerViewModel.CallSetModeComponent(); + OnPropertyChanged(nameof(IsAutoModeCompatible)); + }) }); } } @@ -464,12 +463,12 @@ { Value = noteSaltMode, OnInput = new(() => - { - mainViewModel.ModeComponentValue.NoteSaltModeValue = noteSaltMode; - siteContainerViewModel.CallSetModeComponent(); - mainViewModel.HandleAutoComputer(); - OnPropertyChanged(nameof(IsNoteSaltModeCompatible)); - }) + { + mainViewModel.ModeComponentValue.NoteSaltModeValue = noteSaltMode; + siteContainerViewModel.CallSetModeComponent(); + mainViewModel.HandleAutoComputer(); + OnPropertyChanged(nameof(IsNoteSaltModeCompatible)); + }) }); } } @@ -483,11 +482,11 @@ { Value = faintNoteMode, OnInput = new(() => - { - mainViewModel.ModeComponentValue.FaintNoteModeValue = faintNoteMode; - siteContainerViewModel.CallSetModeComponent(); - OnPropertyChanged(nameof(IsFaintNoteModeCompatible)); - }) + { + mainViewModel.ModeComponentValue.FaintNoteModeValue = faintNoteMode; + siteContainerViewModel.CallSetModeComponent(); + OnPropertyChanged(nameof(IsFaintNoteModeCompatible)); + }) }); } } @@ -501,12 +500,12 @@ { Value = judgmentMode, OnInput = new(() => - { - mainViewModel.ModeComponentValue.JudgmentModeValue = judgmentMode; - mainViewModel.OnJudgmentMeterMillisModified(); - siteContainerViewModel.CallSetModeComponent(); - OnPropertyChanged(nameof(IsJudgmentModeCompatible)); - }) + { + mainViewModel.ModeComponentValue.JudgmentModeValue = judgmentMode; + mainViewModel.OnJudgmentMeterMillisModified(); + siteContainerViewModel.CallSetModeComponent(); + OnPropertyChanged(nameof(IsJudgmentModeCompatible)); + }) }); } } @@ -520,11 +519,11 @@ { Value = hitPointsMode, OnInput = new(() => - { - mainViewModel.ModeComponentValue.HitPointsModeValue = hitPointsMode; - siteContainerViewModel.CallSetModeComponent(); - OnPropertyChanged(nameof(IsHitPointsModeCompatible)); - }) + { + mainViewModel.ModeComponentValue.HitPointsModeValue = hitPointsMode; + siteContainerViewModel.CallSetModeComponent(); + OnPropertyChanged(nameof(IsHitPointsModeCompatible)); + }) }); } } @@ -538,11 +537,11 @@ { Value = noteMobilityMode, OnInput = new(() => - { - mainViewModel.ModeComponentValue.NoteMobilityModeValue = noteMobilityMode; - siteContainerViewModel.CallSetModeComponent(); - OnPropertyChanged(nameof(IsNoteMobilityModeCompatible)); - }) + { + mainViewModel.ModeComponentValue.NoteMobilityModeValue = noteMobilityMode; + siteContainerViewModel.CallSetModeComponent(); + OnPropertyChanged(nameof(IsNoteMobilityModeCompatible)); + }) }); } } @@ -556,12 +555,12 @@ { Value = longNoteMode, OnInput = new(() => - { - mainViewModel.ModeComponentValue.LongNoteModeValue = longNoteMode; - siteContainerViewModel.CallSetModeComponent(); - mainViewModel.HandleAutoComputer(); - OnPropertyChanged(nameof(IsLongNoteModeCompatible)); - }) + { + mainViewModel.ModeComponentValue.LongNoteModeValue = longNoteMode; + siteContainerViewModel.CallSetModeComponent(); + mainViewModel.HandleAutoComputer(); + OnPropertyChanged(nameof(IsLongNoteModeCompatible)); + }) }); } } @@ -575,12 +574,12 @@ { Value = inputFavorMode, OnInput = new(() => - { - mainViewModel.ModeComponentValue.InputFavorModeValue = inputFavorMode; - siteContainerViewModel.CallSetModeComponent(); - mainViewModel.HandleAutoComputer(); - OnPropertyChanged(nameof(IsInputFavorModeCompatible)); - }) + { + mainViewModel.ModeComponentValue.InputFavorModeValue = inputFavorMode; + siteContainerViewModel.CallSetModeComponent(); + mainViewModel.HandleAutoComputer(); + OnPropertyChanged(nameof(IsInputFavorModeCompatible)); + }) }); } } @@ -594,12 +593,12 @@ { Value = noteModifyMode, OnInput = new(() => - { - mainViewModel.ModeComponentValue.NoteModifyModeValue = noteModifyMode; - siteContainerViewModel.CallSetModeComponent(); - mainViewModel.HandleAutoComputer(); - OnPropertyChanged(nameof(IsNoteModifyModeCompatible)); - }) + { + mainViewModel.ModeComponentValue.NoteModifyModeValue = noteModifyMode; + siteContainerViewModel.CallSetModeComponent(); + mainViewModel.HandleAutoComputer(); + OnPropertyChanged(nameof(IsNoteModifyModeCompatible)); + }) }); } } @@ -613,12 +612,12 @@ { Value = bpmMode, OnInput = new(() => - { - mainViewModel.ModeComponentValue.BPMModeValue = bpmMode; - siteContainerViewModel.CallSetModeComponent(); - mainViewModel.HandleAutoComputer(); - OnPropertyChanged(nameof(IsBPMModeCompatible)); - }) + { + mainViewModel.ModeComponentValue.BPMModeValue = bpmMode; + siteContainerViewModel.CallSetModeComponent(); + mainViewModel.HandleAutoComputer(); + OnPropertyChanged(nameof(IsBPMModeCompatible)); + }) }); } } @@ -632,12 +631,12 @@ { Value = waveMode, OnInput = new(() => - { - mainViewModel.ModeComponentValue.WaveModeValue = waveMode; - siteContainerViewModel.CallSetModeComponent(); - mainViewModel.HandleAutoComputer(); - OnPropertyChanged(nameof(IsWaveModeCompatible)); - }) + { + mainViewModel.ModeComponentValue.WaveModeValue = waveMode; + siteContainerViewModel.CallSetModeComponent(); + mainViewModel.HandleAutoComputer(); + OnPropertyChanged(nameof(IsWaveModeCompatible)); + }) }); } } @@ -651,12 +650,12 @@ { Value = setNoteMode, OnInput = new(() => - { - mainViewModel.ModeComponentValue.SetNoteModeValue = setNoteMode; - siteContainerViewModel.CallSetModeComponent(); - mainViewModel.HandleAutoComputer(); - OnPropertyChanged(nameof(IsSetNoteModeCompatible)); - }) + { + mainViewModel.ModeComponentValue.SetNoteModeValue = setNoteMode; + siteContainerViewModel.CallSetModeComponent(); + mainViewModel.HandleAutoComputer(); + OnPropertyChanged(nameof(IsSetNoteModeCompatible)); + }) }); } } @@ -670,11 +669,11 @@ { Value = lowestJudgmentConditionMode, OnInput = new(() => - { - mainViewModel.ModeComponentValue.LowestJudgmentConditionModeValue = lowestJudgmentConditionMode; - siteContainerViewModel.CallSetModeComponent(); - OnPropertyChanged(nameof(IsLowestJudgmentConditionModeCompatible)); - }) + { + mainViewModel.ModeComponentValue.LowestJudgmentConditionModeValue = lowestJudgmentConditionMode; + siteContainerViewModel.CallSetModeComponent(); + OnPropertyChanged(nameof(IsLowestJudgmentConditionModeCompatible)); + }) }); } } @@ -711,7 +710,7 @@ NotifyIsCompatible(); } IsLevelItemLoading = false; - } + }); } } } @@ -758,19 +757,18 @@ _lastLevelName = null; _lastWwwLevelItem = null; - _ = Awaitable(); - async Task Awaitable() + var avatarID = value?.AvatarWwwValue?.AvatarID ?? string.Empty; + IsLevelNamesLoading = true; + TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/level?avatarID={WebUtility.UrlEncode(avatarID)}").ContinueWith(async t => { - var avatarID = value?.AvatarWwwValue?.AvatarID ?? string.Empty; - IsLevelNamesLoading = true; - var levelNames = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/level?avatarID={WebUtility.UrlEncode(avatarID)}"); + var levelNames = await t; if (levelNames != null && (WwwLevelAvatarValue?.AvatarWwwValue?.AvatarID ?? string.Empty) == avatarID) { Utility.SetUICollection(LevelNameCollection, levelNames); LevelName ??= _lastLevelName ?? LevelNameCollection.FirstOrDefault(); } IsLevelNamesLoading = false; - } + }); } } } @@ -804,11 +802,10 @@ _lastLevelName = value; _lastWwwLevelItem = null; - _ = Awaitable(); - async Task Awaitable() + IsLevelNameLoading = true; + TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/level?levelName={WebUtility.UrlEncode(value)}").ContinueWith(async t => { - IsLevelNameLoading = true; - var twilightWwwLevels = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/level?levelName={WebUtility.UrlEncode(value)}"); + var twilightWwwLevels = await t; if (twilightWwwLevels != null && LevelName == value) { Utility.SetUICollection(WwwLevelItemCollection, twilightWwwLevels.Select(twilightWwwLevel => @@ -828,7 +825,7 @@ WwwLevelItemValue ??= _lastWwwLevelItem ?? WwwLevelItemCollection.FirstOrDefault(); } IsLevelNameLoading = false; - } + }); } } }