Merge branch 'main' into main
This commit is contained in:
@@ -96,6 +96,12 @@ Public Class Application
|
|||||||
End If
|
End If
|
||||||
'动态 DLL 调用
|
'动态 DLL 调用
|
||||||
AddHandler AppDomain.CurrentDomain.AssemblyResolve, AddressOf AssemblyResolve
|
AddHandler AppDomain.CurrentDomain.AssemblyResolve, AddressOf AssemblyResolve
|
||||||
|
SetDllDirectory(Path & "PCL\")
|
||||||
|
If Is32BitSystem Then
|
||||||
|
File.WriteAllBytes(Path & "PCL\libwebp.dll", GetResources("libwebp32"))
|
||||||
|
Else
|
||||||
|
File.WriteAllBytes(Path & "PCL\libwebp.dll", GetResources("libwebp64"))
|
||||||
|
End If
|
||||||
'日志初始化
|
'日志初始化
|
||||||
LogStart()
|
LogStart()
|
||||||
'添加日志
|
'添加日志
|
||||||
@@ -171,9 +177,11 @@ Public Class Application
|
|||||||
Private Shared AssemblyNAudio As Assembly
|
Private Shared AssemblyNAudio As Assembly
|
||||||
Private Shared AssemblyJson As Assembly
|
Private Shared AssemblyJson As Assembly
|
||||||
Private Shared AssemblyDialog As Assembly
|
Private Shared AssemblyDialog As Assembly
|
||||||
|
Private Shared AssemblyWebp As Assembly
|
||||||
Private Shared ReadOnly AssemblyNAudioLock As New Object
|
Private Shared ReadOnly AssemblyNAudioLock As New Object
|
||||||
Private Shared ReadOnly AssemblyJsonLock As New Object
|
Private Shared ReadOnly AssemblyJsonLock As New Object
|
||||||
Private Shared ReadOnly AssemblyDialogLock As New Object
|
Private Shared ReadOnly AssemblyDialogLock As New Object
|
||||||
|
Private Shared ReadOnly AssemblyWebpLock As New Object
|
||||||
Public Shared Function AssemblyResolve(sender As Object, args As ResolveEventArgs) As Assembly
|
Public Shared Function AssemblyResolve(sender As Object, args As ResolveEventArgs) As Assembly
|
||||||
If args.Name.StartsWithF("NAudio") Then
|
If args.Name.StartsWithF("NAudio") Then
|
||||||
SyncLock AssemblyNAudioLock
|
SyncLock AssemblyNAudioLock
|
||||||
@@ -199,6 +207,14 @@ Public Class Application
|
|||||||
End If
|
End If
|
||||||
Return AssemblyDialog
|
Return AssemblyDialog
|
||||||
End SyncLock
|
End SyncLock
|
||||||
|
ElseIf args.Name.StartsWithF("Imazen.WebP") Then
|
||||||
|
SyncLock AssemblyWebpLock
|
||||||
|
If AssemblyWebp Is Nothing Then
|
||||||
|
Log("[Start] 加载 DLL:Imazen.WebP")
|
||||||
|
AssemblyWebp = Assembly.Load(GetResources("WebP"))
|
||||||
|
End If
|
||||||
|
Return AssemblyWebp
|
||||||
|
End SyncLock
|
||||||
Else
|
Else
|
||||||
Return Nothing
|
Return Nothing
|
||||||
End If
|
End If
|
||||||
|
|||||||
@@ -10,6 +10,16 @@ Public Class FormMain
|
|||||||
Dim FeatureList As New List(Of KeyValuePair(Of Integer, String))
|
Dim FeatureList As New List(Of KeyValuePair(Of Integer, String))
|
||||||
'统计更新日志条目
|
'统计更新日志条目
|
||||||
#If BETA Then
|
#If BETA Then
|
||||||
|
If LastVersion < 336 Then 'Release 2.8.6
|
||||||
|
FeatureList.Add(New KeyValuePair(Of Integer, String)(4, "下载 Mod 时会使用 MCIM 国内镜像源"))
|
||||||
|
FeatureList.Add(New KeyValuePair(Of Integer, String)(4, "Mod 管理页面允许筛选可更新/启用/禁用的 Mod"))
|
||||||
|
FeatureList.Add(New KeyValuePair(Of Integer, String)(3, "打开 PCL 时会自动安装同目录下的 modpack.zip"))
|
||||||
|
FeatureList.Add(New KeyValuePair(Of Integer, String)(3, "爱发电域名迁移至 afdian.com"))
|
||||||
|
FeatureList.Add(New KeyValuePair(Of Integer, String)(1, "修复 1.20.1+ 离线登录使用正版皮肤时无法保存游戏的 Bug"))
|
||||||
|
FeatureList.Add(New KeyValuePair(Of Integer, String)(1, "修复安装的 1.14~1.15 Forge+OptiFine 无法进入世界的 Bug"))
|
||||||
|
FeatureCount += 19
|
||||||
|
BugCount += 24
|
||||||
|
End If
|
||||||
If LastVersion < 332 Then 'Release 2.8.3
|
If LastVersion < 332 Then 'Release 2.8.3
|
||||||
If LastVersion = 330 Then FeatureList.Add(New KeyValuePair(Of Integer, String)(2, "修复部分玩家无法启动 MC 的 Bug"))
|
If LastVersion = 330 Then FeatureList.Add(New KeyValuePair(Of Integer, String)(2, "修复部分玩家无法启动 MC 的 Bug"))
|
||||||
End If
|
End If
|
||||||
@@ -124,6 +134,9 @@ Public Class FormMain
|
|||||||
'3:BUG+ IMP* FEAT-
|
'3:BUG+ IMP* FEAT-
|
||||||
'2:BUG* IMP-
|
'2:BUG* IMP-
|
||||||
'1:BUG-
|
'1:BUG-
|
||||||
|
If LastVersion < 335 Then 'Snapshot 2.8.6
|
||||||
|
BugCount += 2
|
||||||
|
End If
|
||||||
If LastVersion < 334 Then 'Snapshot 2.8.5
|
If LastVersion < 334 Then 'Snapshot 2.8.5
|
||||||
FeatureList.Add(New KeyValuePair(Of Integer, String)(4, "Mod 管理页面允许筛选可更新/启用/禁用的 Mod"))
|
FeatureList.Add(New KeyValuePair(Of Integer, String)(4, "Mod 管理页面允许筛选可更新/启用/禁用的 Mod"))
|
||||||
If LastVersion = 333 Then
|
If LastVersion = 333 Then
|
||||||
|
|||||||
@@ -11,13 +11,13 @@ Public Module ModBase
|
|||||||
#Region "声明"
|
#Region "声明"
|
||||||
|
|
||||||
'下列版本信息由更新器自动修改
|
'下列版本信息由更新器自动修改
|
||||||
Public Const VersionBaseName As String = "2.8.5" '不含分支前缀的显示用版本名
|
Public Const VersionBaseName As String = "2.8.6" '不含分支前缀的显示用版本名
|
||||||
Public Const VersionStandardCode As String = "2.8.5." & VersionBranchCode '标准格式的四段式版本号
|
Public Const VersionStandardCode As String = "2.8.6." & VersionBranchCode '标准格式的四段式版本号
|
||||||
Public Const CommitHash As String = "" 'Commit Hash
|
Public Const CommitHash As String = "" 'Commit Hash
|
||||||
#If BETA Then
|
#If BETA Then
|
||||||
Public Const VersionCode As Integer = 332 'Release
|
Public Const VersionCode As Integer = 336 'Release
|
||||||
#Else
|
#Else
|
||||||
Public Const VersionCode As Integer = 334 'Snapshot
|
Public Const VersionCode As Integer = 335 'Snapshot
|
||||||
#End If
|
#End If
|
||||||
'自动生成的版本信息
|
'自动生成的版本信息
|
||||||
Public Const VersionDisplayName As String = VersionBranchName & " " & VersionBaseName
|
Public Const VersionDisplayName As String = VersionBranchName & " " & VersionBaseName
|
||||||
|
|||||||
@@ -506,6 +506,7 @@ NextInner:
|
|||||||
End If
|
End If
|
||||||
'尝试登录
|
'尝试登录
|
||||||
Dim OAuthTokens As String()
|
Dim OAuthTokens As String()
|
||||||
|
Dim ClientId As String = ""
|
||||||
If Input.OAuthRefreshToken = "" Then
|
If Input.OAuthRefreshToken = "" Then
|
||||||
'无 RefreshToken
|
'无 RefreshToken
|
||||||
Relogin:
|
Relogin:
|
||||||
@@ -513,10 +514,10 @@ Relogin:
|
|||||||
If OAuthCode = "Cancel" Then Exit Sub
|
If OAuthCode = "Cancel" Then Exit Sub
|
||||||
If Data.IsAborted Then Throw New ThreadInterruptedException
|
If Data.IsAborted Then Throw New ThreadInterruptedException
|
||||||
Data.Progress = 0.2
|
Data.Progress = 0.2
|
||||||
OAuthTokens = MsLoginStep2(OAuthCode, False)
|
OAuthTokens = MsLoginStep2(OAuthCode, False, ClientId)
|
||||||
Else
|
Else
|
||||||
'有 RefreshToken
|
'有 RefreshToken
|
||||||
OAuthTokens = MsLoginStep2(Input.OAuthRefreshToken, True)
|
OAuthTokens = MsLoginStep2(Input.OAuthRefreshToken, True, ClientId)
|
||||||
End If
|
End If
|
||||||
'要求重新打开登录网页认证
|
'要求重新打开登录网页认证
|
||||||
If OAuthTokens(0) = "Cancel" Then Exit Sub
|
If OAuthTokens(0) = "Cancel" Then Exit Sub
|
||||||
@@ -837,39 +838,59 @@ LoginFinish:
|
|||||||
Return RegexSeek(Result, "(?<=code\=)[^&]+")
|
Return RegexSeek(Result, "(?<=code\=)[^&]+")
|
||||||
End If
|
End If
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
'微软登录步骤 2:从 OAuth Code 或 OAuth RefreshToken 获取 {OAuth AccessToken, OAuth RefreshToken}
|
'微软登录步骤 2:从 OAuth Code 或 OAuth RefreshToken 获取 {OAuth AccessToken, OAuth RefreshToken}
|
||||||
Private Function MsLoginStep2(Code As String, IsRefresh As Boolean) As String()
|
Private Function MsLoginStep2(Code As String, IsRefresh As Boolean, ClientId As String, Optional ExpiresIn As String = "900") As String()
|
||||||
McLaunchLog("开始微软登录步骤 2(" & If(IsRefresh, "", "非") & "刷新登录)")
|
McLaunchLog("开始微软登录步骤 2(" & If(IsRefresh, "", "非") & "刷新登录)")
|
||||||
|
|
||||||
Dim Request As String
|
Dim Request As String
|
||||||
If IsRefresh Then
|
If IsRefresh Then
|
||||||
Request = "client_id=00000000402b5328" & "&" &
|
Request = "grant_type=refresh_token" & "&" &
|
||||||
|
"client_id=" & ClientId & "&" &
|
||||||
|
"device_code=" & Code & "&" &
|
||||||
"refresh_token=" & Uri.EscapeDataString(Code) & "&" &
|
"refresh_token=" & Uri.EscapeDataString(Code) & "&" &
|
||||||
"grant_type=refresh_token" & "&" &
|
"scope=XboxLive.signin%20offline_access"
|
||||||
"redirect_uri=" & Uri.EscapeDataString("https://login.live.com/oauth20_desktop.srf") & "&" &
|
|
||||||
"scope=" & Uri.EscapeDataString("service::user.auth.xboxlive.com::MBI_SSL")
|
|
||||||
Else
|
Else
|
||||||
Request = "client_id=00000000402b5328" & "&" &
|
Request = "grant_type=urn:ietf:params:oauth:grant-type:device_code" & "&" &
|
||||||
"code=" & Uri.EscapeDataString(Code) & "&" &
|
"client_id=" & ClientId & "&" &
|
||||||
"grant_type=authorization_code" & "&" &
|
"device_code=" & Code & "&" &
|
||||||
"redirect_uri=" & Uri.EscapeDataString("https://login.live.com/oauth20_desktop.srf") & "&" &
|
"scope=XboxLive.signin%20offline_access"
|
||||||
"scope=" & Uri.EscapeDataString("service::user.auth.xboxlive.com::MBI_SSL")
|
|
||||||
End If
|
End If
|
||||||
Dim Result As String
|
Dim Result As String
|
||||||
Try
|
Dim stopwatch As Stopwatch = Stopwatch.StartNew()
|
||||||
Result = NetRequestMulty("https://login.live.com/oauth20_token.srf", "POST", Request, "application/x-www-form-urlencoded", 2)
|
|
||||||
Catch ex As Exception
|
While stopwatch.Elapsed < TimeSpan.FromSeconds(ExpiresIn)
|
||||||
If ex.Message.Contains("must sign in again") OrElse ex.Message.Contains("invalid_grant") Then '#269
|
Try
|
||||||
Return {"Relogin", ""}
|
Result = NetRequestMulty("https://login.microsoftonline.com/consumers/oauth2/v2.0/token", "POST", Request, "application/x-www-form-urlencoded", 2)
|
||||||
Else
|
Catch ex As Exception
|
||||||
Throw
|
If ex.Message.Contains("must sign in again") OrElse ex.Message.Contains("invalid_grant") Then '#269
|
||||||
|
Return {"Relogin", ""}
|
||||||
|
ElseIf ex.Message.Contains("authorization_declined") Then
|
||||||
|
Hint("你拒绝了 PCL2 的访问权限申请,验证过程被中断!")
|
||||||
|
Return {"Cancel", ""}
|
||||||
|
ElseIf ex.Message.Contains("expired_token") Then
|
||||||
|
Hint("Token 已过期,请尝试重新验证!")
|
||||||
|
Exit While
|
||||||
|
ElseIf ex.Message.Contains("AADSTS70016") Then
|
||||||
|
Continue While
|
||||||
|
Else
|
||||||
|
Throw
|
||||||
|
End If
|
||||||
|
End Try
|
||||||
|
|
||||||
|
If Result IsNot Nothing Then
|
||||||
|
Dim ResultJson As JObject = GetJson(Result)
|
||||||
|
Dim AccessToken As String = ResultJson("access_token").ToString
|
||||||
|
Dim RefreshToken As String = ResultJson("refresh_token").ToString
|
||||||
|
Return {AccessToken, RefreshToken}
|
||||||
End If
|
End If
|
||||||
End Try
|
|
||||||
|
Thread.Sleep(1000)
|
||||||
|
End While
|
||||||
|
|
||||||
|
Hint("验证超时,请尝试重新验证!")
|
||||||
|
Return {"Cancel", ""}
|
||||||
|
|
||||||
Dim ResultJson As JObject = GetJson(Result)
|
|
||||||
Dim AccessToken As String = ResultJson("access_token").ToString
|
|
||||||
Dim RefreshToken As String = ResultJson("refresh_token").ToString
|
|
||||||
Return {AccessToken, RefreshToken}
|
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
''微软登录步骤 1:获取 DeviceCode 并显示验证提示
|
''微软登录步骤 1:获取 DeviceCode 并显示验证提示
|
||||||
|
|||||||
@@ -260,7 +260,7 @@ Retry:
|
|||||||
'获取 Mod 下载信息
|
'获取 Mod 下载信息
|
||||||
ModDownloadLoaders.Add(New LoaderTask(Of Integer, JArray)("获取 Mod 下载信息",
|
ModDownloadLoaders.Add(New LoaderTask(Of Integer, JArray)("获取 Mod 下载信息",
|
||||||
Sub(Task As LoaderTask(Of Integer, JArray))
|
Sub(Task As LoaderTask(Of Integer, JArray))
|
||||||
Task.Output = GetJson(NetRequestRetry("https://api.curseforge.com/v1/mods/files", "POST", "{""fileIds"": [" & Join(ModList, ",") & "]}", "application/json"))("data")
|
Task.Output = GetJson(DlModRequest("https://api.curseforge.com/v1/mods/files", "POST", "{""fileIds"": [" & Join(ModList, ",") & "]}", "application/json"))("data")
|
||||||
'如果文件已被删除,则 API 会跳过那一项
|
'如果文件已被删除,则 API 会跳过那一项
|
||||||
If ModList.Count > Task.Output.Count Then Throw New Exception("整合包所需要的部分 Mod 版本已被 Mod 作者删除,因此无法完成整合包安装,请联系整合包作者更新整合包中的 Mod 版本")
|
If ModList.Count > Task.Output.Count Then Throw New Exception("整合包所需要的部分 Mod 版本已被 Mod 作者删除,因此无法完成整合包安装,请联系整合包作者更新整合包中的 Mod 版本")
|
||||||
End Sub) With {.ProgressWeight = ModList.Count / 10}) '每 10 Mod 需要 1s
|
End Sub) With {.ProgressWeight = ModList.Count / 10}) '每 10 Mod 需要 1s
|
||||||
|
|||||||
@@ -18,9 +18,6 @@
|
|||||||
'网络图片
|
'网络图片
|
||||||
If File.Exists(FileAddress) Then
|
If File.Exists(FileAddress) Then
|
||||||
PathLogo.Source = New MyBitmap(FileAddress)
|
PathLogo.Source = New MyBitmap(FileAddress)
|
||||||
ElseIf _Logo.EndsWithF(".webp", True) Then 'Modrinth 林业 Mod 使用了不支持的 WebP 格式 Logo
|
|
||||||
Log($"[Comp] 发现不支持的 WebP 格式图标,已更改为默认图标:{_Logo}")
|
|
||||||
PathLogo.Source = New MyBitmap(PathImage & "Icons/NoIcon.png")
|
|
||||||
Else
|
Else
|
||||||
PathLogo.Source = New MyBitmap(PathImage & "Icons/NoIcon.png")
|
PathLogo.Source = New MyBitmap(PathImage & "Icons/NoIcon.png")
|
||||||
RunInNewThread(Sub() LogoLoader(FileAddress), "Comp Logo Loader " & Uuid & "#", ThreadPriority.BelowNormal)
|
RunInNewThread(Sub() LogoLoader(FileAddress), "Comp Logo Loader " & Uuid & "#", ThreadPriority.BelowNormal)
|
||||||
@@ -58,6 +55,12 @@ RetryStart:
|
|||||||
End If
|
End If
|
||||||
'下载图片
|
'下载图片
|
||||||
NetDownload(Url, LocalFileAddress & DownloadEnd, True)
|
NetDownload(Url, LocalFileAddress & DownloadEnd, True)
|
||||||
|
If Url.EndsWithF("webp") Then
|
||||||
|
Log($"[Comp] Webp 格式转换:{LocalFileAddress}")
|
||||||
|
Dim dec = New Imazen.WebP.SimpleDecoder()
|
||||||
|
Dim picFile = File.ReadAllBytes(LocalFileAddress & DownloadEnd)
|
||||||
|
dec.DecodeFromBytes(picFile, picFile.Length).Save(LocalFileAddress & DownloadEnd)
|
||||||
|
End If
|
||||||
Dim LoadError As Exception = Nothing
|
Dim LoadError As Exception = Nothing
|
||||||
RunInUiWait(
|
RunInUiWait(
|
||||||
Sub()
|
Sub()
|
||||||
|
|||||||
@@ -20,9 +20,6 @@ Public Class MyLocalModItem
|
|||||||
'网络图片
|
'网络图片
|
||||||
If File.Exists(FileAddress) Then
|
If File.Exists(FileAddress) Then
|
||||||
PathLogo.Source = New MyBitmap(FileAddress)
|
PathLogo.Source = New MyBitmap(FileAddress)
|
||||||
ElseIf _Logo.EndsWithF(".webp", True) Then 'Modrinth 林业 Mod 使用了不支持的 WebP 格式 Logo
|
|
||||||
Log($"[LocalModItem] 发现不支持的 WebP 格式图标,已更改为默认图标:{_Logo}")
|
|
||||||
PathLogo.Source = New MyBitmap(PathImage & "Icons/NoIcon.png")
|
|
||||||
Else
|
Else
|
||||||
PathLogo.Source = New MyBitmap(PathImage & "Icons/NoIcon.png")
|
PathLogo.Source = New MyBitmap(PathImage & "Icons/NoIcon.png")
|
||||||
RunInNewThread(Sub() LogoLoader(FileAddress), "Comp Logo Loader " & Uuid & "#", ThreadPriority.BelowNormal)
|
RunInNewThread(Sub() LogoLoader(FileAddress), "Comp Logo Loader " & Uuid & "#", ThreadPriority.BelowNormal)
|
||||||
@@ -60,6 +57,12 @@ RetryStart:
|
|||||||
End If
|
End If
|
||||||
'下载图片
|
'下载图片
|
||||||
NetDownload(Url, LocalFileAddress & DownloadEnd, True)
|
NetDownload(Url, LocalFileAddress & DownloadEnd, True)
|
||||||
|
If Url.EndsWithF("webp") Then
|
||||||
|
Log($"[Comp] Webp 格式转换:{LocalFileAddress}")
|
||||||
|
Dim dec = New Imazen.WebP.SimpleDecoder()
|
||||||
|
Dim picFile = File.ReadAllBytes(LocalFileAddress & DownloadEnd)
|
||||||
|
dec.DecodeFromBytes(picFile, picFile.Length).Save(LocalFileAddress & DownloadEnd)
|
||||||
|
End If
|
||||||
Dim LoadError As Exception = Nothing
|
Dim LoadError As Exception = Nothing
|
||||||
RunInUiWait(
|
RunInUiWait(
|
||||||
Sub()
|
Sub()
|
||||||
|
|||||||
@@ -798,6 +798,8 @@ NextFile:
|
|||||||
Public Declare Function SetForegroundWindow Lib "user32" (hWnd As IntPtr) As Integer
|
Public Declare Function SetForegroundWindow Lib "user32" (hWnd As IntPtr) As Integer
|
||||||
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (hWnd As IntPtr, msg As UInteger, wParam As Long, lParam As Long) As Boolean
|
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (hWnd As IntPtr, msg As UInteger, wParam As Long, lParam As Long) As Boolean
|
||||||
|
|
||||||
|
Public Declare Function SetDllDirectory Lib "kernel32" Alias "SetDllDirectoryA" (lpPathName As String) As Boolean
|
||||||
|
|
||||||
#End Region
|
#End Region
|
||||||
|
|
||||||
Public DragControl = Nothing
|
Public DragControl = Nothing
|
||||||
|
|||||||
@@ -51,6 +51,6 @@ Imports System.Runtime.InteropServices
|
|||||||
' 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
|
' 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
|
||||||
' 方法是按如下所示使用“*”
|
' 方法是按如下所示使用“*”
|
||||||
|
|
||||||
<Assembly: AssemblyVersion("2.8.5.0")>
|
<Assembly: AssemblyVersion("2.8.6.0")>
|
||||||
<Assembly: AssemblyFileVersion("2.8.5.0")>
|
<Assembly: AssemblyFileVersion("2.8.6.0")>
|
||||||
<Assembly: NeutralResourcesLanguage("")>
|
<Assembly: NeutralResourcesLanguage("")>
|
||||||
|
|||||||
@@ -120,6 +120,26 @@ Namespace My.Resources
|
|||||||
End Get
|
End Get
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' 查找 System.Byte[] 类型的本地化资源。
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property libwebp32() As Byte()
|
||||||
|
Get
|
||||||
|
Dim obj As Object = ResourceManager.GetObject("libwebp32", resourceCulture)
|
||||||
|
Return CType(obj,Byte())
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' 查找 System.Byte[] 类型的本地化资源。
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property libwebp64() As Byte()
|
||||||
|
Get
|
||||||
|
Dim obj As Object = ResourceManager.GetObject("libwebp64", resourceCulture)
|
||||||
|
Return CType(obj,Byte())
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
'''<summary>
|
'''<summary>
|
||||||
''' 查找 System.Byte[] 类型的本地化资源。
|
''' 查找 System.Byte[] 类型的本地化资源。
|
||||||
'''</summary>
|
'''</summary>
|
||||||
@@ -149,5 +169,15 @@ Namespace My.Resources
|
|||||||
Return CType(obj,Byte())
|
Return CType(obj,Byte())
|
||||||
End Get
|
End Get
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' 查找 System.Byte[] 类型的本地化资源。
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property WebP() As Byte()
|
||||||
|
Get
|
||||||
|
Dim obj As Object = ResourceManager.GetObject("WebP", resourceCulture)
|
||||||
|
Return CType(obj,Byte())
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
End Module
|
End Module
|
||||||
End Namespace
|
End Namespace
|
||||||
|
|||||||
@@ -136,6 +136,12 @@
|
|||||||
<data name="Json" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="Json" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\Newtonsoft.Json.dll;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>..\Resources\Newtonsoft.Json.dll;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="libwebp32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\libwebp32.dll;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="libwebp64" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\libwebp64.dll;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
<data name="ModData" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="ModData" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\ModData.txt;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>..\Resources\ModData.txt;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -145,4 +151,7 @@
|
|||||||
<data name="Transformer" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="Transformer" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\transformer.jar;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>..\Resources\transformer.jar;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="WebP" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\Imazen.WebP.dll;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
@@ -104,91 +104,81 @@
|
|||||||
</local:MyCard>
|
</local:MyCard>
|
||||||
<local:MyCard Margin="0,0,0,15" Title="赞助者">
|
<local:MyCard Margin="0,0,0,15" Title="赞助者">
|
||||||
<StackPanel Margin="25,40,10,20">
|
<StackPanel Margin="25,40,10,20">
|
||||||
<TextBlock HorizontalAlignment="Left" Text="以下是 2024 年 7 月的高级赞助者们!感谢各位对 PCL 和伟大的咕咕咕事业的支持!" Margin="0,0,25,5.5" TextTrimming="None" TextWrapping="WrapWithOverflow" />
|
<TextBlock HorizontalAlignment="Left" Text="以下是 2024 年 8 月的高级赞助者们!感谢各位对 PCL 和伟大的咕咕咕事业的支持!" Margin="0,0,25,5.5" TextTrimming="None" TextWrapping="WrapWithOverflow" />
|
||||||
<WrapPanel Margin="0,0,0,10">
|
<WrapPanel Margin="0,0,0,10">
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="nemonemo" />
|
<TextBlock Width="120" Margin="0,1.5" Text="没用的元元" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="矢坕" />
|
<TextBlock Width="120" Margin="0,1.5" Text="鸮不是号鸟" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="梁景瑜" />
|
<TextBlock Width="120" Margin="0,1.5" Text="兮兮要次糖糖" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="GhostZiLie" />
|
<TextBlock Width="120" Margin="0,1.5" Text="wxzsghh114514" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="靈曦蠡醯" />
|
<TextBlock Width="120" Margin="0,1.5" Text="地了排子" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="zzdr" />
|
<TextBlock Width="120" Margin="0,1.5" Text="阿宅cheli" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="井下啊~" />
|
<TextBlock Width="120" Margin="0,1.5" Text="笑脸114514" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="zkQkWyQkz" />
|
<TextBlock Width="120" Margin="0,1.5" Text="小麦A" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="fill" />
|
<TextBlock Width="120" Margin="0,1.5" Text="未名小七TAO" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="法老" />
|
<TextBlock Width="120" Margin="0,1.5" Text="雪冥" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="aleafsautumn" />
|
<TextBlock Width="120" Margin="0,1.5" Text="氟西汀" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="聪明的凉生" />
|
<TextBlock Width="120" Margin="0,1.5" Text="阿巴阿巴" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="干嘛1337" />
|
<TextBlock Width="120" Margin="0,1.5" Text="侦探hj" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="dlxw4" />
|
<TextBlock Width="120" Margin="0,1.5" Text="666" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="古神" />
|
<TextBlock Width="120" Margin="0,1.5" Text="萬帆WanFan" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="朝仓理香子" />
|
<TextBlock Width="120" Margin="0,1.5" Text="swayst" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="Raper_Sulin" />
|
<TextBlock Width="120" Margin="0,1.5" Text="yuchen" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="vv" />
|
<TextBlock Width="120" Margin="0,1.5" Text="鲸落猫南北" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="QuinnL" />
|
<TextBlock Width="120" Margin="0,1.5" Text="念池鱼思故渊" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="pigeno" />
|
<TextBlock Width="120" Margin="0,1.5" Text="No_1died" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="whx61" />
|
<TextBlock Width="120" Margin="0,1.5" Text="Error02" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="peoprem" />
|
<TextBlock Width="120" Margin="0,1.5" Text="橙子皮" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="慕言" />
|
<TextBlock Width="120" Margin="0,1.5" Text="丨丨丨丨" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="白雾云-白少" />
|
<TextBlock Width="120" Margin="0,1.5" Text="零崽" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="S0CK" />
|
<TextBlock Width="120" Margin="0,1.5" Text="叁無" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="1111" />
|
<TextBlock Width="120" Margin="0,1.5" Text="火星上行走的柠檬精" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="怕做苦力的苦力怕" />
|
<TextBlock Width="120" Margin="0,1.5" Text="北极椰子" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="慕柒茗桜" />
|
<TextBlock Width="120" Margin="0,1.5" Text="流玉髓" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="DsxiaKsxia" />
|
<TextBlock Width="120" Margin="0,1.5" Text="咕咕" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="lucca" />
|
<TextBlock Width="120" Margin="0,1.5" Text="小鹏1098" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="时酱" />
|
<TextBlock Width="120" Margin="0,1.5" Text="风雪" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="666a" />
|
<TextBlock Width="120" Margin="0,1.5" Text="梦幻の小店" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="Rigilkent" />
|
<TextBlock Width="120" Margin="0,1.5" Text="nhrnick" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="亡灵引渡" />
|
<TextBlock Width="120" Margin="0,1.5" Text="天天的周末" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="初音末来" />
|
<TextBlock Width="120" Margin="0,1.5" Text="雪梨" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="king" />
|
<TextBlock Width="120" Margin="0,1.5" Text="Z_ebra" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="zzhm" />
|
<TextBlock Width="120" Margin="0,1.5" Text="acmzyh" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="半自动M9716" />
|
<TextBlock Width="120" Margin="0,1.5" Text="yuyyyu" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="MMIAO780" />
|
<TextBlock Width="120" Margin="0,1.5" Text="看看" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="7930" />
|
<TextBlock Width="120" Margin="0,1.5" Text="墨霜夜" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="Jedro" />
|
<TextBlock Width="120" Margin="0,1.5" Text="皇势力" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="寂灭星云" />
|
<TextBlock Width="120" Margin="0,1.5" Text="曦予千山" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="天上北辰星" />
|
<TextBlock Width="120" Margin="0,1.5" Text="Lv50.疾旋鼬" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="黄为很高" />
|
<TextBlock Width="120" Margin="0,1.5" Text="雪暮" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="a酱" />
|
<TextBlock Width="120" Margin="0,1.5" Text="铁树" />
|
||||||
<TextBlock Width="240" Margin="0,1.5" Text="Pedlar Mayweather" />
|
<TextBlock Width="120" Margin="0,1.5" Text="ZHypocrite" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="Daddy江" />
|
<TextBlock Width="120" Margin="0,1.5" Text="闫雁" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="汣魰" />
|
<TextBlock Width="120" Margin="0,1.5" Text="不知道叫啥" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="lawaass" />
|
<TextBlock Width="120" Margin="0,1.5" Text="隔壁家老张" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="scz" />
|
<TextBlock Width="120" Margin="0,1.5" Text="DZY" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="tiredl" />
|
<TextBlock Width="120" Margin="0,1.5" Text="Hugh" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="Jeffy0314" />
|
<TextBlock Width="120" Margin="0,1.5" Text="Jto" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="青云一梦" />
|
<TextBlock Width="120" Margin="0,1.5" Text="JO极名字" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="摸鱼大湿" />
|
<TextBlock Width="120" Margin="0,1.5" Text="啊猫" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="PIGEON" />
|
<TextBlock Width="120" Margin="0,1.5" Text="章九连" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="Redio" />
|
<TextBlock Width="120" Margin="0,1.5" Text="zeq_killjsj" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="无垠星海" />
|
<TextBlock Width="120" Margin="0,1.5" Text="重庆你周哥" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="Z10" />
|
<TextBlock Width="120" Margin="0,1.5" Text="我是桶子哥" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="嗯哼" />
|
<TextBlock Width="120" Margin="0,1.5" Text="chenxingyin" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="_Ejvy" />
|
<TextBlock Width="120" Margin="0,1.5" Text="koimiaori" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="LG.神梦" />
|
<TextBlock Width="120" Margin="0,1.5" Text="Awfrlu+" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="叫爱丽丝的墨鱼" />
|
<TextBlock Width="120" Margin="0,1.5" Text="古河渚上花" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="芙芙雪糕" />
|
<TextBlock Width="120" Margin="0,1.5" Text="THE END" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="屑萨你" />
|
<TextBlock Width="120" Margin="0,1.5" Text="哎呀菜菜子" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="qianlan" />
|
<TextBlock Width="120" Margin="0,1.5" Text="AptS:1547" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="dndjkdkdms" />
|
<TextBlock Width="120" Margin="0,1.5" Text="安麓" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="时空乂猎人" />
|
<TextBlock Width="120" Margin="0,1.5" Text="彘彘彘彘彘彘" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="芒果" />
|
<TextBlock Width="120" Margin="0,1.5" Text="通大小学弟" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="小比登T^T" />
|
<TextBlock Width="120" Margin="0,1.5" Text="Ender__sun" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="北川兔兔" />
|
<TextBlock Width="120" Margin="0,1.5" Text="此生浮" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="q_q!!!" />
|
<TextBlock Width="120" Margin="0,1.5" Text="皮皮恒" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="eric" />
|
<TextBlock Width="120" Margin="0,1.5" Text="charlesmin" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="Min" />
|
<TextBlock Width="120" Margin="0,1.5" Text="snow" />
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="JTOPfujo》" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="CZALIZI" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="outsider" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="Kimmo" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="超爱居居巧" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="quin22" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="贤者摸鱼" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="chsero" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="幽梦瞳鸭" />
|
|
||||||
<TextBlock Width="120" Margin="0,1.5" Text="Thankscrazy" />
|
|
||||||
|
|
||||||
</WrapPanel>
|
</WrapPanel>
|
||||||
<Grid Height="35">
|
<Grid Height="35">
|
||||||
|
|||||||
@@ -86,7 +86,7 @@
|
|||||||
{"LaunchArgumentWindowHeight", New SetupEntry(480)},
|
{"LaunchArgumentWindowHeight", New SetupEntry(480)},
|
||||||
{"LaunchArgumentWindowType", New SetupEntry(1)},
|
{"LaunchArgumentWindowType", New SetupEntry(1)},
|
||||||
{"LaunchArgumentRam", New SetupEntry(False, Source:=SetupSource.Registry)},
|
{"LaunchArgumentRam", New SetupEntry(False, Source:=SetupSource.Registry)},
|
||||||
{"LaunchAdvanceJvm", New SetupEntry("-XX:+UseG1GC -XX:-UseAdaptiveSizePolicy -XX:-OmitStackTraceInFastThrow -Dfml.ignoreInvalidMinecraftCertificates=True -Dfml.ignorePatchDiscrepancies=True -Dlog4j2.formatMsgNoLookups=true")},
|
{"LaunchAdvanceJvm", New SetupEntry("-XX:+UseG1GC -XX:-UseAdaptiveSizePolicy -XX:-OmitStackTraceInFastThrow -Djdk.lang.Process.allowAmbiguousCommands=true -Dfml.ignoreInvalidMinecraftCertificates=True -Dfml.ignorePatchDiscrepancies=True -Dlog4j2.formatMsgNoLookups=true")},
|
||||||
{"LaunchAdvanceGame", New SetupEntry("")},
|
{"LaunchAdvanceGame", New SetupEntry("")},
|
||||||
{"LaunchAdvanceRun", New SetupEntry("")},
|
{"LaunchAdvanceRun", New SetupEntry("")},
|
||||||
{"LaunchAdvanceRunWait", New SetupEntry(True)},
|
{"LaunchAdvanceRunWait", New SetupEntry(True)},
|
||||||
|
|||||||
@@ -647,6 +647,7 @@
|
|||||||
SelectedMods.Remove(ModEntity.RawFileName)
|
SelectedMods.Remove(ModEntity.RawFileName)
|
||||||
'更改 Loader 和 UI 中的列表
|
'更改 Loader 和 UI 中的列表
|
||||||
McModLoader.Output.Remove(ModEntity)
|
McModLoader.Output.Remove(ModEntity)
|
||||||
|
SearchResult?.Remove(ModEntity)
|
||||||
ModItems.Remove(ModEntity.RawFileName)
|
ModItems.Remove(ModEntity.RawFileName)
|
||||||
Dim IndexOfUi As Integer = PanList.Children.IndexOf(PanList.Children.OfType(Of MyLocalModItem).FirstOrDefault(Function(i) i.Entry.Equals(ModEntity)))
|
Dim IndexOfUi As Integer = PanList.Children.IndexOf(PanList.Children.OfType(Of MyLocalModItem).FirstOrDefault(Function(i) i.Entry.Equals(ModEntity)))
|
||||||
If IndexOfUi >= 0 Then PanList.Children.RemoveAt(IndexOfUi)
|
If IndexOfUi >= 0 Then PanList.Children.RemoveAt(IndexOfUi)
|
||||||
|
|||||||
@@ -140,6 +140,10 @@
|
|||||||
<Prefer32Bit>false</Prefer32Bit>
|
<Prefer32Bit>false</Prefer32Bit>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<Reference Include="Imazen.WebP, Version=10.0.1.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<SpecificVersion>False</SpecificVersion>
|
||||||
|
<HintPath>Resources\Imazen.WebP.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
<Reference Include="NAudio, Version=1.7.3.0, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="NAudio, Version=1.7.3.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<SpecificVersion>False</SpecificVersion>
|
<SpecificVersion>False</SpecificVersion>
|
||||||
<Private>False</Private>
|
<Private>False</Private>
|
||||||
@@ -185,9 +189,6 @@
|
|||||||
<Compile Include="Controls\MyIconTextButton.xaml.vb">
|
<Compile Include="Controls\MyIconTextButton.xaml.vb">
|
||||||
<DependentUpon>MyIconTextButton.xaml</DependentUpon>
|
<DependentUpon>MyIconTextButton.xaml</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<Compile Include="Modules\Minecraft\ModComp.vb" />
|
<Compile Include="Modules\Minecraft\ModComp.vb" />
|
||||||
<Compile Include="Modules\Minecraft\ModJava.vb" />
|
<Compile Include="Modules\Minecraft\ModJava.vb" />
|
||||||
<Compile Include="Modules\Minecraft\ModMod.vb" />
|
<Compile Include="Modules\Minecraft\ModMod.vb" />
|
||||||
@@ -472,7 +473,6 @@
|
|||||||
<DependentUpon>FormMain.xaml</DependentUpon>
|
<DependentUpon>FormMain.xaml</DependentUpon>
|
||||||
<SubType>Code</SubType>
|
<SubType>Code</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
|
||||||
<Page Include="Modules\Minecraft\MyLocalModItem.xaml">
|
<Page Include="Modules\Minecraft\MyLocalModItem.xaml">
|
||||||
<Generator>MSBuild:Compile</Generator>
|
<Generator>MSBuild:Compile</Generator>
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
@@ -927,7 +927,9 @@
|
|||||||
<Resource Include="Images\Heads\MCBBS.png" />
|
<Resource Include="Images\Heads\MCBBS.png" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<Content Include="Resources\Imazen.WebP.dll" />
|
||||||
|
<Content Include="Resources\libwebp32.dll" />
|
||||||
|
<Content Include="Resources\libwebp64.dll" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Resource Include="Images\Blocks\NeoForge.png" />
|
<Resource Include="Images\Blocks\NeoForge.png" />
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user