From d1e969d74248bab5a960a84e9d19ca937a11dc0c Mon Sep 17 00:00:00 2001 From: camileko Date: Tue, 22 Sep 2026 23:25:55 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=89=AA=E8=B4=B4=E6=9D=BF?= =?UTF-8?q?=E8=A2=AB=E5=8D=A0=E7=94=A8=E6=97=B6=E6=97=A0=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Modules/Base/ModBase.vb | 26 +++++++++---------- .../Pages/PageLink/PageLinkMain.xaml.vb | 6 ++--- .../Pages/PageSpeedLeft.xaml.vb | 3 +-- 3 files changed, 15 insertions(+), 20 deletions(-) diff --git a/Plain Craft Launcher 2/Modules/Base/ModBase.vb b/Plain Craft Launcher 2/Modules/Base/ModBase.vb index 197870c..c591cc6 100644 --- a/Plain Craft Launcher 2/Modules/Base/ModBase.vb +++ b/Plain Craft Launcher 2/Modules/Base/ModBase.vb @@ -1021,22 +1021,20 @@ Public Module ModBase ''' ''' 设置剪贴板。将在另一线程运行,且不会抛出异常。 ''' - Public Sub ClipboardSet(Text As String, Optional ShowSuccessHint As Boolean = True) + Public Sub ClipboardSet(Text As String, Optional ShowSuccessHint As Boolean = True, Optional SuccessHint As String = "") RunInThread( Sub() - Try - Retrier.Attempt(delay:=Function(Attempt) TimeSpan.FromMilliseconds(200), maxAttempts:=4, isRetryAllowed:=Function(ex) True, action:= - Sub() - RunInUi( - Sub() - My.Computer.Clipboard.Clear() - If Not String.IsNullOrEmpty(Text) Then My.Computer.Clipboard.SetText(Text) - End Sub) - End Sub) - If ShowSuccessHint Then Hint("已成功复制!", HintType.Green) - Catch ex As Exception - Logger.Error(ex, "可能由于剪贴板被其他程序占用,文本复制失败", LogBehavior.Toast) - End Try + RunInUi( + Sub() + Try + My.Computer.Clipboard.Clear() + If Not String.IsNullOrEmpty(Text) Then My.Computer.Clipboard.SetText(Text) + If ShowSuccessHint Then Hint(If(String.IsNullOrEmpty(SuccessHint), "已成功复制!", SuccessHint), HintType.Green) + Catch ex As Exception + Logger.Error(ex, behavior:=LogBehavior.None) + Hint("复制失败,可能由于剪贴板被其他程序占用!", HintType.Red) + End Try + End Sub) End Sub) End Sub ''' diff --git a/Plain Craft Launcher 2/Pages/PageLink/PageLinkMain.xaml.vb b/Plain Craft Launcher 2/Pages/PageLink/PageLinkMain.xaml.vb index 447dbcc..43f66de 100644 --- a/Plain Craft Launcher 2/Pages/PageLink/PageLinkMain.xaml.vb +++ b/Plain Craft Launcher 2/Pages/PageLink/PageLinkMain.xaml.vb @@ -358,9 +358,8 @@ Public Class PageLinkMain '复制邀请码 Private Sub Copy() Handles BtnFinishCopy.Click Dim CodeText As String = $"在 PCL 启动器中输入邀请码【{GetInviteCode()}】,即可加入联机房间!" - ClipboardSet(CodeText, False) + ClipboardSet(CodeText, SuccessHint:="已复制邀请码!") Settings.Set("LinkLastAutoJoinInviteCode", CodeText) - Hint("已复制邀请码!", HintType.Green) End Sub Private Function GetInviteCode() As String Return $"{NetworkName}-{NetworkSecret}-{INVITE_CODE_VERSION.ToString.PadLeft(2, "0"c)}{ _ @@ -369,8 +368,7 @@ Public Class PageLinkMain '复制 IP Private Sub BtnFinishIp_MouseLeftButtonUp(sender As Object, e As MouseButtonEventArgs) Handles BtnFinishIp.MouseLeftButtonUp - ClipboardSet(ClientAddress, False) - Hint("已复制服务器地址!", HintType.Green) + ClipboardSet(ClientAddress, SuccessHint:="已复制服务器地址!") End Sub #End Region diff --git a/Plain Craft Launcher 2/Pages/PageSpeedLeft.xaml.vb b/Plain Craft Launcher 2/Pages/PageSpeedLeft.xaml.vb index 9d25d25..af4485f 100644 --- a/Plain Craft Launcher 2/Pages/PageSpeedLeft.xaml.vb +++ b/Plain Craft Launcher 2/Pages/PageSpeedLeft.xaml.vb @@ -93,8 +93,7 @@ Public Class PageSpeedLeft Tb.Text = Loader.Error.GetDisplay(True) AddHandler Tb.MouseLeftButtonDown, Sub(sender As TextBlock, e As EventArgs) - ClipboardSet(sender.Text, False) - Hint("已复制错误详情!", HintType.Green) + ClipboardSet(sender.Text, SuccessHint:="已复制错误详情!") End Sub Card.Children.Add(Tb) #End Region