diff --git a/Link/Lobby/LobbyController.cs b/Link/Lobby/LobbyController.cs index b61b6989..5187b8f7 100644 --- a/Link/Lobby/LobbyController.cs +++ b/Link/Lobby/LobbyController.cs @@ -15,6 +15,7 @@ using System.Text; using System.Text.Json.Nodes; using System.Threading.Tasks; +using PCL.Core.UI; using static PCL.Core.Link.Lobby.LobbyInfoProvider; using static PCL.Core.Link.Natayark.NatayarkProfileManager; using LobbyType = PCL.Core.Link.Scaffolding.Client.Models.LobbyType; @@ -44,7 +45,7 @@ public sealed class LobbyController /// /// Launch a Scaffolding Client. /// - /// Join user name. + /// Join username. /// Lobby share code. /// Created . public async Task LaunchClientAsync(string username, string code) @@ -74,11 +75,10 @@ public sealed class LobbyController foreach (var profile in scfEntity.Client.PlayerList) { - if (profile.Kind == PlayerKind.HOST) - { - hostname = profile.Name; - LogWrapper.Debug($"大厅创建者的用户名: {hostname}"); - } + if (profile.Kind != PlayerKind.HOST) continue; + + hostname = profile.Name; + LogWrapper.Debug($"大厅创建者的用户名: {hostname}"); } var localPort = await scfEntity.EasyTier.AddPortForwardAsync(scfEntity.HostInfo.Ip, port) @@ -96,20 +96,24 @@ public sealed class LobbyController catch (ArgumentNullException e) { LogWrapper.Error(e, "大厅创建者的用户名为空"); + HintWrapper.Show("大厅创建者的用户名为空", HintType.Critical); } catch (ArgumentException e) { if (e.Message.Contains("lobby code")) { LogWrapper.Error(e, "大厅编号无效"); + HintWrapper.Show("大厅编号无效", HintType.Critical); } else if (e.Message.Contains("hostname")) { LogWrapper.Error(e, "大厅创建者的用户名无效"); + HintWrapper.Show("大厅创建者的用户名无效", HintType.Critical); } else { LogWrapper.Error(e, "在加入大厅时出现意外的无效参数"); + HintWrapper.Show("在加入大厅时出现意外的无效参数", HintType.Critical); } } catch (Exception e) @@ -123,7 +127,7 @@ public sealed class LobbyController /// /// Launch a Scaffolding Server. /// - /// Host user name. + /// Host username. /// Minecraft port. /// Created . /// @@ -147,7 +151,7 @@ public sealed class LobbyController } catch (Exception e) { - LogWrapper.Error(e, "Occurred error when launching Scafolding Server."); + LogWrapper.Error(e, "Occurred error when launching Scaffolding Server."); } return null; diff --git a/Link/Natayark/NatayarkProfileManager.cs b/Link/Natayark/NatayarkProfileManager.cs index 0fe97243..923a055b 100644 --- a/Link/Natayark/NatayarkProfileManager.cs +++ b/Link/Natayark/NatayarkProfileManager.cs @@ -135,7 +135,7 @@ public static async Task GetNaidDataAsync(string token, bool isRefresh = false, void WarnLog(string msg) { LogWrapper.Warn(ex, LogModule, msg); - HintWrapper.Show(msg, HintTheme.Error); + HintWrapper.Show(msg, HintType.Critical); } } finally diff --git a/Logging/LogService.cs b/Logging/LogService.cs index b4277c0d..67e70cbb 100644 --- a/Logging/LogService.cs +++ b/Logging/LogService.cs @@ -52,7 +52,7 @@ private static void _LogAction(ActionLevel level, string formatted, string plain // hint if (level is ActionLevel.Hint or ActionLevel.HintErr) { - HintWrapper.Show(plain, (level == ActionLevel.Hint) ? HintTheme.Normal : HintTheme.Error); + HintWrapper.Show(plain, (level == ActionLevel.Hint) ? HintType.Info : HintType.Critical); } // message box diff --git a/Minecraft/Folder/FolderManager.cs b/Minecraft/Folder/FolderManager.cs index 102caa1c..8c9603b7 100644 --- a/Minecraft/Folder/FolderManager.cs +++ b/Minecraft/Folder/FolderManager.cs @@ -39,7 +39,7 @@ public async Task McFolderListLoadAsync() { foreach (var folder in Config.Launch.Folders.Split('|', StringSplitOptions.RemoveEmptyEntries)) { if (!folder.Contains('>') || !folder.EndsWith('\\')) { - HintWrapper.Show($"无效的 Minecraft 文件夹:{folder}", HintTheme.Error); + HintWrapper.Show($"无效的 Minecraft 文件夹:{folder}", HintType.Critical); continue; } diff --git a/Minecraft/Launch/Services/Argument/LaunchArgBuilder.cs b/Minecraft/Launch/Services/Argument/LaunchArgBuilder.cs index e8c742d9..b7c040bd 100644 --- a/Minecraft/Launch/Services/Argument/LaunchArgBuilder.cs +++ b/Minecraft/Launch/Services/Argument/LaunchArgBuilder.cs @@ -179,7 +179,7 @@ private void AddLegacyServerArguments(string server) { _arguments.Add($"--server {host} --port {port}"); if (instance.InstanceInfo.HasPatch("optifine")) { - HintWrapper.Show("OptiFine 与自动进入服务器可能不兼容,有概率导致材质丢失甚至游戏崩溃!", HintTheme.Error); + HintWrapper.Show("OptiFine 与自动进入服务器可能不兼容,有概率导致材质丢失甚至游戏崩溃!", HintType.Critical); } } diff --git a/UI/HintWrapper.cs b/UI/HintWrapper.cs index 2f9b66a9..ac9112ce 100644 --- a/UI/HintWrapper.cs +++ b/UI/HintWrapper.cs @@ -1,23 +1,35 @@ namespace PCL.Core.UI; -public enum HintTheme +/// +/// 提示信息的种类W +/// +public enum HintType { - Normal, - Success, - Error + /// + /// 信息 + /// + Info, + /// + /// 已完成 + /// + Finish, + /// + /// 错误 + /// + Critical } public delegate void HintHandler( string message, - HintTheme theme + HintType type ); public static class HintWrapper { public static event HintHandler? OnShow; - public static void Show(string message, HintTheme theme = HintTheme.Normal) + public static void Show(string message, HintType type = HintType.Info) { - OnShow?.Invoke(message, theme); + OnShow?.Invoke(message, type); } }