Skip to content
31 changes: 22 additions & 9 deletions Plain Craft Launcher 2/FormMain.xaml.vb
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
Imports System.ComponentModel
Imports System.IO
Imports System.Runtime.InteropServices
Imports System.Windows.Interop
Imports System.Windows.Media.Effects
Expand Down Expand Up @@ -742,21 +743,28 @@ Public Class FormMain
End If
'确定拖放效果
e.Effects = DragDropEffects.None
If e.Data.GetDataPresent(DataFormats.Text) Then
Dim Str As String = e.Data.GetData(DataFormats.Text)
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 = 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
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 Path.IsPathRooted(Str) Then
e.Effects = DragDropEffects.Copy
End If
End If
PrevData = e.Data
PrevEffects = e.Effects
PrevData = e.Data
Log("[System] 设置拖放类型:" & GetStringFromEnum(e.Effects))
Catch ex As Exception
Log(ex, "处理拖放时出错", LogLevel.Feedback)
Expand All @@ -767,8 +775,12 @@ 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)
'虽然不想用 GoTo 这个晦气玩意儿,但是龙猫的代码只适合这玩意儿
'之后重写吧(逃
If Path.IsPathRooted(Str) Then GoTo PathText
If Str.StartsWithF("authlib-injector:yggdrasil-server:") Then
'Authlib 拖拽
e.Handled = True
Expand Down Expand Up @@ -801,6 +813,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
Expand Down
Loading