From 0d1eb25cc9ef43e074816884160bdf5fcb23daed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E8=BD=BB=E8=AF=AD?= Date: Wed, 15 Apr 2026 13:32:00 +0800 Subject: [PATCH 01/12] fix: IDM Drop Resolve #2220 --- Plain Craft Launcher 2/FormMain.xaml.vb | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/Plain Craft Launcher 2/FormMain.xaml.vb b/Plain Craft Launcher 2/FormMain.xaml.vb index e92410fcf..60e5aeecb 100644 --- a/Plain Craft Launcher 2/FormMain.xaml.vb +++ b/Plain Craft Launcher 2/FormMain.xaml.vb @@ -742,17 +742,19 @@ Public Class FormMain End If '确定拖放效果 e.Effects = DragDropEffects.None - If e.Data.GetDataPresent(DataFormats.Text) Then + If e.Data.GetDataPresent(DataFormats.FileDrop) Then + Dim Files As String() = e.Data.GetData(DataFormats.FileDrop) + If Files IsNot Nothing AndAlso Files.Length > 0 Then + e.Effects = DragDropEffects.Link + End If + ElseIf e.Data.GetDataPresent(DataFormats.Text) Then Dim Str As String = e.Data.GetData(DataFormats.Text) If Str.StartsWithF("authlib-injector:yggdrasil-server:") Then e.Effects = DragDropEffects.Copy ElseIf Str.StartsWithF("file:///") Then e.Effects = DragDropEffects.Copy - End If - ElseIf e.Data.GetDataPresent(DataFormats.FileDrop) Then - Dim Files As String() = e.Data.GetData(DataFormats.FileDrop) - If Files IsNot Nothing AndAlso Files.Length > 0 Then - e.Effects = DragDropEffects.Link + ElseIf File.Exist(Str) Then + e.Effects = DragDropEffects.Copy End If End If PrevData = e.Data From 15e37ad0f604cf773057a28b0cb95080e2484d03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E8=BD=BB=E8=AF=AD?= Date: Wed, 15 Apr 2026 13:36:35 +0800 Subject: [PATCH 02/12] fix: Invalid method --- Plain Craft Launcher 2/FormMain.xaml.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plain Craft Launcher 2/FormMain.xaml.vb b/Plain Craft Launcher 2/FormMain.xaml.vb index 60e5aeecb..94d834308 100644 --- a/Plain Craft Launcher 2/FormMain.xaml.vb +++ b/Plain Craft Launcher 2/FormMain.xaml.vb @@ -753,7 +753,7 @@ Public Class FormMain e.Effects = DragDropEffects.Copy ElseIf Str.StartsWithF("file:///") Then e.Effects = DragDropEffects.Copy - ElseIf File.Exist(Str) Then + ElseIf File.Exists(Str) Then e.Effects = DragDropEffects.Copy End If End If From aa435b2fd04cea393a218c5a382f51cb07454d8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E8=BD=BB=E8=AF=AD?= Date: Wed, 15 Apr 2026 13:45:20 +0800 Subject: [PATCH 03/12] chore: Use TryCast --- Plain Craft Launcher 2/FormMain.xaml.vb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Plain Craft Launcher 2/FormMain.xaml.vb b/Plain Craft Launcher 2/FormMain.xaml.vb index 94d834308..50fd0d647 100644 --- a/Plain Craft Launcher 2/FormMain.xaml.vb +++ b/Plain Craft Launcher 2/FormMain.xaml.vb @@ -748,7 +748,8 @@ Public Class FormMain e.Effects = DragDropEffects.Link End If ElseIf e.Data.GetDataPresent(DataFormats.Text) Then - Dim Str As String = e.Data.GetData(DataFormats.Text) + Dim Str As String = TryCast(e.Data.GetData(DataFormats.Text), String) + If Str Is Nothing Then Return If Str.StartsWithF("authlib-injector:yggdrasil-server:") Then e.Effects = DragDropEffects.Copy ElseIf Str.StartsWithF("file:///") Then From 3a503de2a7119c1f408e85764e1b12f353206a68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E8=BD=BB=E8=AF=AD?= Date: Wed, 15 Apr 2026 13:52:53 +0800 Subject: [PATCH 04/12] chore: set PrevData --- Plain Craft Launcher 2/FormMain.xaml.vb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Plain Craft Launcher 2/FormMain.xaml.vb b/Plain Craft Launcher 2/FormMain.xaml.vb index 50fd0d647..395f710a7 100644 --- a/Plain Craft Launcher 2/FormMain.xaml.vb +++ b/Plain Craft Launcher 2/FormMain.xaml.vb @@ -749,7 +749,10 @@ Public Class FormMain End If ElseIf e.Data.GetDataPresent(DataFormats.Text) Then Dim Str As String = TryCast(e.Data.GetData(DataFormats.Text), String) - If Str Is Nothing Then Return + If Str Is Nothing Then + Return + PrevData = e.Data + End If If Str.StartsWithF("authlib-injector:yggdrasil-server:") Then e.Effects = DragDropEffects.Copy ElseIf Str.StartsWithF("file:///") Then From 18f7a4d11c7601987ad9d002c77e5f280fb14793 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E8=BD=BB=E8=AF=AD?= Date: Wed, 15 Apr 2026 14:46:40 +0800 Subject: [PATCH 05/12] chore: Add Path check --- Plain Craft Launcher 2/FormMain.xaml.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plain Craft Launcher 2/FormMain.xaml.vb b/Plain Craft Launcher 2/FormMain.xaml.vb index 395f710a7..263821e21 100644 --- a/Plain Craft Launcher 2/FormMain.xaml.vb +++ b/Plain Craft Launcher 2/FormMain.xaml.vb @@ -757,7 +757,7 @@ Public Class FormMain e.Effects = DragDropEffects.Copy ElseIf Str.StartsWithF("file:///") Then e.Effects = DragDropEffects.Copy - ElseIf File.Exists(Str) Then + ElseIf Str.Contains(":\") OrElse Str.Contains("\") AndAlso File.Exists(Str) Then e.Effects = DragDropEffects.Copy End If End If From 6b4d1414e0d53afa5486e294c9180bdd1826a706 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E8=BD=BB=E8=AF=AD?= Date: Wed, 15 Apr 2026 15:33:57 +0800 Subject: [PATCH 06/12] fix: incorrect code --- Plain Craft Launcher 2/FormMain.xaml.vb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Plain Craft Launcher 2/FormMain.xaml.vb b/Plain Craft Launcher 2/FormMain.xaml.vb index 263821e21..0356f63de 100644 --- a/Plain Craft Launcher 2/FormMain.xaml.vb +++ b/Plain Craft Launcher 2/FormMain.xaml.vb @@ -749,15 +749,15 @@ Public Class FormMain End If ElseIf e.Data.GetDataPresent(DataFormats.Text) Then Dim Str As String = TryCast(e.Data.GetData(DataFormats.Text), String) - If Str Is Nothing Then - Return + If Str Is Nothing Then PrevData = e.Data + Return End If If Str.StartsWithF("authlib-injector:yggdrasil-server:") Then e.Effects = DragDropEffects.Copy ElseIf Str.StartsWithF("file:///") Then e.Effects = DragDropEffects.Copy - ElseIf Str.Contains(":\") OrElse Str.Contains("\") AndAlso File.Exists(Str) Then + ElseIf (Str.Contains(":\") OrElse Str.Contains("\")) AndAlso File.Exists(Str) Then e.Effects = DragDropEffects.Copy End If End If From 2695d2414988b115586e275cfe3e219a32caf533 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E8=BD=BB=E8=AF=AD?= Date: Wed, 15 Apr 2026 16:28:17 +0800 Subject: [PATCH 07/12] chore: modify handle --- Plain Craft Launcher 2/FormMain.xaml.vb | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Plain Craft Launcher 2/FormMain.xaml.vb b/Plain Craft Launcher 2/FormMain.xaml.vb index 0356f63de..846e337ee 100644 --- a/Plain Craft Launcher 2/FormMain.xaml.vb +++ b/Plain Craft Launcher 2/FormMain.xaml.vb @@ -740,6 +740,7 @@ Public Class FormMain e.Effects = PrevEffects Return End If + PrevData = e.Data '确定拖放效果 e.Effects = DragDropEffects.None If e.Data.GetDataPresent(DataFormats.FileDrop) Then @@ -750,18 +751,16 @@ Public Class FormMain ElseIf e.Data.GetDataPresent(DataFormats.Text) Then Dim Str As String = TryCast(e.Data.GetData(DataFormats.Text), String) If Str Is Nothing Then - PrevData = e.Data Return End If If Str.StartsWithF("authlib-injector:yggdrasil-server:") Then e.Effects = DragDropEffects.Copy ElseIf Str.StartsWithF("file:///") Then e.Effects = DragDropEffects.Copy - ElseIf (Str.Contains(":\") OrElse Str.Contains("\")) AndAlso File.Exists(Str) Then + ElseIf (Path.IsPathRooted(Str) OrElse Str.Starts("\\")) AndAlso File.Exists(Str) Then e.Effects = DragDropEffects.Copy End If End If - PrevData = e.Data PrevEffects = e.Effects Log("[System] 设置拖放类型:" & GetStringFromEnum(e.Effects)) Catch ex As Exception From 635b6210e412aa89580a8375294fe2ee80d0bcf6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E8=BD=BB=E8=AF=AD?= Date: Wed, 15 Apr 2026 16:30:31 +0800 Subject: [PATCH 08/12] fix: add System.IO ref --- Plain Craft Launcher 2/FormMain.xaml.vb | 1 + 1 file changed, 1 insertion(+) diff --git a/Plain Craft Launcher 2/FormMain.xaml.vb b/Plain Craft Launcher 2/FormMain.xaml.vb index 846e337ee..54ba8fd1f 100644 --- a/Plain Craft Launcher 2/FormMain.xaml.vb +++ b/Plain Craft Launcher 2/FormMain.xaml.vb @@ -1,4 +1,5 @@ Imports System.ComponentModel +Imports System.IO Imports System.Runtime.InteropServices Imports System.Windows.Interop Imports System.Windows.Media.Effects From ec9638148119e95e096aca1410e8d495d1af6a01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E8=BD=BB=E8=AF=AD?= Date: Wed, 15 Apr 2026 16:32:07 +0800 Subject: [PATCH 09/12] fix: incorrect method --- Plain Craft Launcher 2/FormMain.xaml.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plain Craft Launcher 2/FormMain.xaml.vb b/Plain Craft Launcher 2/FormMain.xaml.vb index 54ba8fd1f..06a172e62 100644 --- a/Plain Craft Launcher 2/FormMain.xaml.vb +++ b/Plain Craft Launcher 2/FormMain.xaml.vb @@ -758,7 +758,7 @@ Public Class FormMain e.Effects = DragDropEffects.Copy ElseIf Str.StartsWithF("file:///") Then e.Effects = DragDropEffects.Copy - ElseIf (Path.IsPathRooted(Str) OrElse Str.Starts("\\")) AndAlso File.Exists(Str) Then + ElseIf (Path.IsPathRooted(Str) OrElse Str.StartsWith("\\")) AndAlso File.Exists(Str) Then e.Effects = DragDropEffects.Copy End If End If From 0ae736b0ea9953c45dfebfcfb3e35b949c6b875a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E8=BD=BB=E8=AF=AD?= Date: Wed, 15 Apr 2026 18:39:34 +0800 Subject: [PATCH 10/12] fix: remove File.Exist check --- Plain Craft Launcher 2/FormMain.xaml.vb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Plain Craft Launcher 2/FormMain.xaml.vb b/Plain Craft Launcher 2/FormMain.xaml.vb index 06a172e62..5687e5356 100644 --- a/Plain Craft Launcher 2/FormMain.xaml.vb +++ b/Plain Craft Launcher 2/FormMain.xaml.vb @@ -758,7 +758,7 @@ Public Class FormMain e.Effects = DragDropEffects.Copy ElseIf Str.StartsWithF("file:///") Then e.Effects = DragDropEffects.Copy - ElseIf (Path.IsPathRooted(Str) OrElse Str.StartsWith("\\")) AndAlso File.Exists(Str) Then + ElseIf Path.IsPathRooted(Str) Then e.Effects = DragDropEffects.Copy End If End If @@ -773,7 +773,8 @@ Public Class FormMain If e.Data.GetDataPresent(DataFormats.Text) Then '获取文本 Try - Dim Str As String = e.Data.GetData(DataFormats.Text) + Dim Str As String = TryCast(e.Data.GetData(DataFormats.Text), String) + If Str Is Nothing Then Return Log("[System] 接受文本拖拽:" & Str) If Str.StartsWithF("authlib-injector:yggdrasil-server:") Then 'Authlib 拖拽 From 4a1c32c2cb4601956d1dbf17ae969c56964c476d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E8=BD=BB=E8=AF=AD?= Date: Wed, 15 Apr 2026 20:29:51 +0800 Subject: [PATCH 11/12] fix: handler behavior --- Plain Craft Launcher 2/FormMain.xaml.vb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Plain Craft Launcher 2/FormMain.xaml.vb b/Plain Craft Launcher 2/FormMain.xaml.vb index 5687e5356..3b39a95ff 100644 --- a/Plain Craft Launcher 2/FormMain.xaml.vb +++ b/Plain Craft Launcher 2/FormMain.xaml.vb @@ -776,6 +776,9 @@ Public Class FormMain Dim Str As String = TryCast(e.Data.GetData(DataFormats.Text), String) If Str Is Nothing Then Return Log("[System] 接受文本拖拽:" & Str) + '虽然不想用 GoTo 这个晦气玩意儿,但是龙猫的代码只适合这玩意儿 + '之后重写吧(逃 + If Path.IsPathRooted(Str) Then GoTo PathText If Str.StartsWithF("authlib-injector:yggdrasil-server:") Then 'Authlib 拖拽 e.Handled = True @@ -808,6 +811,7 @@ Public Class FormMain Return End Try ElseIf e.Data.GetDataPresent(DataFormats.FileDrop) Then + PathText: '获取文件并检查 Dim FilePathRaw = e.Data.GetData(DataFormats.FileDrop) If FilePathRaw Is Nothing Then '#2690 From c6735383aaf28d56ed8c65ee35f7af651ac69366 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E8=BD=BB=E8=AF=AD?= Date: Wed, 15 Apr 2026 20:37:57 +0800 Subject: [PATCH 12/12] fix: drag status update --- Plain Craft Launcher 2/FormMain.xaml.vb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Plain Craft Launcher 2/FormMain.xaml.vb b/Plain Craft Launcher 2/FormMain.xaml.vb index 3b39a95ff..ec7bda7da 100644 --- a/Plain Craft Launcher 2/FormMain.xaml.vb +++ b/Plain Craft Launcher 2/FormMain.xaml.vb @@ -741,7 +741,6 @@ Public Class FormMain e.Effects = PrevEffects Return End If - PrevData = e.Data '确定拖放效果 e.Effects = DragDropEffects.None If e.Data.GetDataPresent(DataFormats.FileDrop) Then @@ -752,6 +751,8 @@ Public Class FormMain ElseIf e.Data.GetDataPresent(DataFormats.Text) Then Dim Str As String = TryCast(e.Data.GetData(DataFormats.Text), String) If Str Is Nothing Then + PrevEffects = e.Effects + PrevData = e.Data Return End If If Str.StartsWithF("authlib-injector:yggdrasil-server:") Then @@ -763,6 +764,7 @@ Public Class FormMain End If End If PrevEffects = e.Effects + PrevData = e.Data Log("[System] 设置拖放类型:" & GetStringFromEnum(e.Effects)) Catch ex As Exception Log(ex, "处理拖放时出错", LogLevel.Feedback)