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