Compare commits
28 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 96c178b310 | |||
| bbac69b79e | |||
| 97b38ed90c | |||
| c0fb1e3904 | |||
| fd701f3615 | |||
| 34fa5fbffe | |||
| 0776611de4 | |||
| 0e9667ab59 | |||
| 8692c40323 | |||
| 69c5de7e42 | |||
| f1dc55c63f | |||
| 7e814b37c3 | |||
| 9407f3fed6 | |||
| 5925836736 | |||
| 461efe7d14 | |||
| b74cc0d633 | |||
| 52943e03be | |||
| 2c69c3eb1b | |||
| 60c625ae08 | |||
| 0c1ffd82c5 | |||
| 0d7e570676 | |||
| 6dd6721667 | |||
| a7c31d6086 | |||
| cc558ab274 | |||
| ad18e33a6b | |||
| fa9bb19e79 | |||
| c0c8878bc3 | |||
| 2be12d0630 |
12
ModpackUpdater.GitLab/ModpackUpdater.GitLab.vbproj
Normal file
12
ModpackUpdater.GitLab/ModpackUpdater.GitLab.vbproj
Normal file
@@ -0,0 +1,12 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<RootNamespace>ModpackUpdater.GitLab</RootNamespace>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\ModpackUpdater.Model\ModpackUpdater.Model.vbproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
33
ModpackUpdater.GitLab/UpdateConfigExt.vb
Normal file
33
ModpackUpdater.GitLab/UpdateConfigExt.vb
Normal file
@@ -0,0 +1,33 @@
|
||||
Imports System.Net.Http
|
||||
|
||||
Imports ModpackUpdater.Model
|
||||
|
||||
Imports Newtonsoft.Json
|
||||
|
||||
Public Class UpdateConfigExt
|
||||
|
||||
'<Extension>
|
||||
'Public Sub SaveToSnippet(config As UpdateConfig, gitlabUrl As String, gitlabToken As String, projectId As Integer, snippetId As Integer, snippetFilePath As String)
|
||||
' Dim client As New GitLabClient(gitlabUrl, gitlabToken)
|
||||
' Dim update As New SnippetProjectUpdate With {
|
||||
' .Visibility = VisibilityLevel.Public,
|
||||
' .ProjectId = projectId,
|
||||
' .SnippetId = snippetId,
|
||||
' .Files = {
|
||||
' New SnippetUpdateFile With {
|
||||
' .Action = SnippetUpdateFileAction.Update.Create,
|
||||
' .FilePath = snippetFilePath,
|
||||
' .Content = JsonConvert.SerializeObject(config)
|
||||
' }
|
||||
' }
|
||||
' }
|
||||
' client.Snippets.Update(update)
|
||||
'End Sub
|
||||
|
||||
Public Shared Function LoadFromSnippet(url As String) As UpdateConfig
|
||||
Dim client As New HttpClient
|
||||
Dim result = client.GetStringAsync(url).Result
|
||||
Return JsonConvert.DeserializeObject(Of UpdateConfig)(result)
|
||||
End Function
|
||||
|
||||
End Class
|
||||
16
ModpackUpdater.Manager/ModpackUpdater.Manager.vbproj
Normal file
16
ModpackUpdater.Manager/ModpackUpdater.Manager.vbproj
Normal file
@@ -0,0 +1,16 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<RootNamespace>ModpackUpdater.Manager</RootNamespace>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="WebDav.Client" Version="2.8.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\ModpackUpdater.Model\ModpackUpdater.Model.vbproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
23
ModpackUpdater.Manager/UpdateCheckResult.vb
Normal file
23
ModpackUpdater.Manager/UpdateCheckResult.vb
Normal file
@@ -0,0 +1,23 @@
|
||||
Imports ModpackUpdater.Model
|
||||
|
||||
Public Class UpdateCheckResult
|
||||
|
||||
Public Property IsLegacy As Boolean
|
||||
Public ReadOnly Property SyncFiles As New List(Of UpdateSyncFile)
|
||||
|
||||
Public Property CurrentVersion As Version
|
||||
Public Property LatestVersion As Version
|
||||
Public ReadOnly Property UpdateActions As New List(Of UpdateAction)
|
||||
Public Property HasError As Boolean
|
||||
|
||||
Public ReadOnly Property HasUpdates As Boolean
|
||||
Get
|
||||
If IsLegacy Then
|
||||
Return SyncFiles.Where(Function(n) n.SyncAction <> UpdateSyncAction.None).Any
|
||||
Else
|
||||
Return CurrentVersion < LatestVersion
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
|
||||
End Class
|
||||
@@ -1,5 +1,8 @@
|
||||
Imports System.IO
|
||||
Imports System.Net
|
||||
Imports System.Net.Http
|
||||
|
||||
Imports ModpackUpdater.Model
|
||||
|
||||
Imports WebDav
|
||||
|
||||
@@ -11,12 +14,18 @@ Public Class UpdateInstaller
|
||||
Private ReadOnly updateConfig As UpdateConfig
|
||||
Private ReadOnly localPath As String
|
||||
Private webdavClient As WebDavClient = Nothing
|
||||
Private httpClient As New HttpClient
|
||||
|
||||
Public Sub New(updateConfig As UpdateConfig, localPath As String)
|
||||
Me.updateConfig = updateConfig
|
||||
Me.localPath = localPath
|
||||
End Sub
|
||||
|
||||
Protected Overrides Sub Finalize()
|
||||
httpClient.Dispose()
|
||||
MyBase.Finalize()
|
||||
End Sub
|
||||
|
||||
Private Function CreateClient() As WebDavClient
|
||||
If webdavClient Is Nothing Then
|
||||
Dim params As New WebDavClientParams With {
|
||||
@@ -29,13 +38,57 @@ Public Class UpdateInstaller
|
||||
Return webdavClient
|
||||
End Function
|
||||
|
||||
Private Async Function DownloadUpdateInfos() As Task(Of UpdateInfos)
|
||||
Dim content As String = Await httpClient.GetStringAsync(updateConfig.UpdateUrl)
|
||||
Return UpdateInfos.Parse(content)
|
||||
End Function
|
||||
|
||||
Public Async Function CheckForUpdates(ignoreRevmoedFiles As Boolean) As Task(Of UpdateCheckResult)
|
||||
Dim infos As UpdateInfos = Await DownloadUpdateInfos()
|
||||
Dim result As New UpdateCheckResult
|
||||
|
||||
If infos IsNot Nothing AndAlso infos.Updates.Any Then
|
||||
Dim updatesOrderes = infos.Updates.OrderByDescending(Function(n) n.Version)
|
||||
result.LatestVersion = updatesOrderes.First.Version
|
||||
|
||||
If ModpackInfo.HasModpackInfo(localPath) Then
|
||||
Dim modpackInfo As ModpackInfo = ModpackInfo.Load(localPath)
|
||||
result.CurrentVersion = modpackInfo.Version
|
||||
|
||||
Dim checkingVersionIndex As Integer = 0
|
||||
Dim checkingVersion As UpdateInfo = updatesOrderes(checkingVersionIndex)
|
||||
|
||||
Do While checkingVersion IsNot Nothing AndAlso checkingVersion.Version > result.CurrentVersion
|
||||
Dim actionsToAdd As New List(Of UpdateAction)
|
||||
|
||||
For Each action In checkingVersion.Actions
|
||||
If Not result.UpdateActions.Any(Function(n) n.DestPath = action.DestPath) Then
|
||||
actionsToAdd.Add(action)
|
||||
End If
|
||||
Next
|
||||
|
||||
result.UpdateActions.InsertRange(0, actionsToAdd)
|
||||
|
||||
checkingVersionIndex += 1
|
||||
checkingVersion = updatesOrderes.ElementAtOrDefault(checkingVersionIndex)
|
||||
Loop
|
||||
Else
|
||||
Await CheckForUpdatesLegacy(result, ignoreRevmoedFiles)
|
||||
End If
|
||||
End If
|
||||
|
||||
Return result
|
||||
End Function
|
||||
|
||||
Private Async Function CheckForUpdatesLegacy(result As UpdateCheckResult, ignoreRevmoedFiles As Boolean) As Task
|
||||
Dim client As WebDavClient = CreateClient()
|
||||
Dim resTopFolder As WebDavResource = Nothing
|
||||
Dim checkedFiles = New List(Of String)()
|
||||
Dim responseSuccessfull As Boolean = False
|
||||
|
||||
result.CurrentVersion = New Version("0.0.0.0")
|
||||
result.IsLegacy = True
|
||||
|
||||
'Check for new & updated files
|
||||
Dim response = Await client.Propfind(String.Empty, New PropfindParameters() With {.ApplyTo = ApplyTo.Propfind.ResourceAndAncestors})
|
||||
If resTopFolder Is Nothing AndAlso response.IsSuccessful AndAlso response.Resources.Any() Then
|
||||
@@ -101,11 +154,73 @@ Public Class UpdateInstaller
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
|
||||
Return result
|
||||
End Function
|
||||
|
||||
Public Async Function InstallUpdates(checkResult As UpdateCheckResult, Optional ignoreActions As UpdateSyncAction = UpdateSyncAction.None) As Task(Of Boolean?)
|
||||
Dim isSuccessfully As Boolean
|
||||
Dim modpackInfo As ModpackInfo
|
||||
|
||||
If ModpackInfo.HasModpackInfo(localPath) Then
|
||||
modpackInfo = ModpackInfo.Load(localPath)
|
||||
Else
|
||||
modpackInfo = New ModpackInfo
|
||||
End If
|
||||
|
||||
If checkResult.IsLegacy Then
|
||||
isSuccessfully = Await InstallUpdatesLegacy(checkResult, ignoreActions)
|
||||
Else
|
||||
Dim processed As Integer = 0
|
||||
For Each action As UpdateAction In checkResult.UpdateActions
|
||||
Dim destFilePath As String = Path.Combine(localPath, action.DestPath)
|
||||
|
||||
Select Case action.Type
|
||||
Case UpdateActionType.Update
|
||||
Directory.CreateDirectory(Path.GetDirectoryName(destFilePath))
|
||||
Dim sRemote As Stream = Await httpClient.GetStreamAsync(action.DownloadUrl)
|
||||
Dim fs As New FileStream(destFilePath, FileMode.Create, FileAccess.ReadWrite)
|
||||
Await sRemote.CopyToAsync(fs)
|
||||
sRemote.Close()
|
||||
fs.Close()
|
||||
Case UpdateActionType.Delete
|
||||
If action.IsDirectory Then
|
||||
If Directory.Exists(destFilePath) Then
|
||||
Directory.Delete(destFilePath, True)
|
||||
End If
|
||||
Else
|
||||
If File.Exists(destFilePath) Then
|
||||
File.Delete(destFilePath)
|
||||
End If
|
||||
End If
|
||||
Case UpdateActionType.Copy
|
||||
Dim srcFilePath As String = Path.Combine(localPath, action.SrcPath)
|
||||
If File.Exists(srcFilePath) Then
|
||||
Directory.CreateDirectory(Path.GetDirectoryName(destFilePath))
|
||||
File.Copy(srcFilePath, destFilePath, True)
|
||||
End If
|
||||
Case UpdateActionType.Move
|
||||
Dim srcFilePath As String = Path.Combine(localPath, action.SrcPath)
|
||||
If File.Exists(srcFilePath) Then
|
||||
Directory.CreateDirectory(Path.GetDirectoryName(destFilePath))
|
||||
File.Move(srcFilePath, destFilePath, True)
|
||||
End If
|
||||
End Select
|
||||
|
||||
processed += 1
|
||||
RaiseEvent InstallProgessUpdated(checkResult, processed)
|
||||
Next
|
||||
|
||||
isSuccessfully = True
|
||||
End If
|
||||
|
||||
If isSuccessfully Then
|
||||
modpackInfo.Version = checkResult.LatestVersion
|
||||
modpackInfo.Save(localPath)
|
||||
End If
|
||||
|
||||
Return isSuccessfully
|
||||
End Function
|
||||
|
||||
Private Async Function InstallUpdatesLegacy(checkResult As UpdateCheckResult, Optional ignoreActions As UpdateSyncAction = UpdateSyncAction.None) As Task(Of Boolean?)
|
||||
Dim client As WebDavClient = CreateClient()
|
||||
Dim success As Boolean? = False
|
||||
Dim processed As Integer = 0
|
||||
11
ModpackUpdater.Manager/UpdateSyncAction.vb
Normal file
11
ModpackUpdater.Manager/UpdateSyncAction.vb
Normal file
@@ -0,0 +1,11 @@
|
||||
Imports Newtonsoft.Json
|
||||
Imports Newtonsoft.Json.Converters
|
||||
|
||||
<JsonConverter(GetType(StringEnumConverter))>
|
||||
<Flags>
|
||||
Public Enum UpdateSyncAction
|
||||
None
|
||||
NewFile
|
||||
RemovedFile
|
||||
UpdatedFile = 4
|
||||
End Enum
|
||||
29
ModpackUpdater.Model/ModpackInfo.vb
Normal file
29
ModpackUpdater.Model/ModpackInfo.vb
Normal file
@@ -0,0 +1,29 @@
|
||||
Imports System.IO
|
||||
|
||||
Imports Newtonsoft.Json
|
||||
Imports Newtonsoft.Json.Converters
|
||||
|
||||
Public Class ModpackInfo
|
||||
|
||||
Private Const FILENAME_MODPACKINFO = "modpack-info.json"
|
||||
|
||||
<JsonConverter(GetType(VersionConverter))>
|
||||
Public Property Version As Version
|
||||
|
||||
Public Sub Save(mcRoot As String)
|
||||
File.WriteAllText(GetFilePath(mcRoot), JsonConvert.SerializeObject(Me))
|
||||
End Sub
|
||||
|
||||
Public Shared Function Load(mcRoot As String) As ModpackInfo
|
||||
Return JsonConvert.DeserializeObject(Of ModpackInfo)(File.ReadAllText(GetFilePath(mcRoot)))
|
||||
End Function
|
||||
|
||||
Public Shared Function HasModpackInfo(mcRoot As String) As Boolean
|
||||
Return File.Exists(GetFilePath(mcRoot))
|
||||
End Function
|
||||
|
||||
Private Shared Function GetFilePath(mcRoot As String)
|
||||
Return Path.Combine(mcRoot, FILENAME_MODPACKINFO)
|
||||
End Function
|
||||
|
||||
End Class
|
||||
12
ModpackUpdater.Model/ModpackUpdater.Model.vbproj
Normal file
12
ModpackUpdater.Model/ModpackUpdater.Model.vbproj
Normal file
@@ -0,0 +1,12 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<RootNamespace>ModpackUpdater.Model</RootNamespace>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Pilz.Cryptography" Version="2.0.1" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
13
ModpackUpdater.Model/UpdateAction.vb
Normal file
13
ModpackUpdater.Model/UpdateAction.vb
Normal file
@@ -0,0 +1,13 @@
|
||||
Imports Newtonsoft.Json
|
||||
Imports Newtonsoft.Json.Converters
|
||||
|
||||
Public Class UpdateAction
|
||||
|
||||
<JsonConverter(GetType(StringEnumConverter))>
|
||||
Public Property Type As UpdateActionType
|
||||
Public Property DestPath As String
|
||||
Public Property SrcPath As String
|
||||
Public Property DownloadUrl As String
|
||||
Public Property IsDirectory As Boolean
|
||||
|
||||
End Class
|
||||
7
ModpackUpdater.Model/UpdateActionType.vb
Normal file
7
ModpackUpdater.Model/UpdateActionType.vb
Normal file
@@ -0,0 +1,7 @@
|
||||
Public Enum UpdateActionType
|
||||
None
|
||||
Update
|
||||
Delete
|
||||
Move
|
||||
Copy
|
||||
End Enum
|
||||
22
ModpackUpdater.Model/UpdateConfig.vb
Normal file
22
ModpackUpdater.Model/UpdateConfig.vb
Normal file
@@ -0,0 +1,22 @@
|
||||
Imports System.IO
|
||||
|
||||
Imports Newtonsoft.Json
|
||||
|
||||
Imports Pilz.Cryptography
|
||||
|
||||
Public Class UpdateConfig
|
||||
|
||||
Public Property UpdateUrl As String
|
||||
Public Property WebdavURL As SecureString
|
||||
Public Property WebdavUsername As SecureString
|
||||
Public Property WebdavPassword As SecureString
|
||||
|
||||
Public Sub SaveToFile(filePath As String)
|
||||
File.WriteAllText(filePath, JsonConvert.SerializeObject(Me))
|
||||
End Sub
|
||||
|
||||
Public Shared Function LoadFromFile(filePath As String) As UpdateConfig
|
||||
Return JsonConvert.DeserializeObject(Of UpdateConfig)(File.ReadAllText(filePath))
|
||||
End Function
|
||||
|
||||
End Class
|
||||
10
ModpackUpdater.Model/UpdateInfo.vb
Normal file
10
ModpackUpdater.Model/UpdateInfo.vb
Normal file
@@ -0,0 +1,10 @@
|
||||
Imports Newtonsoft.Json
|
||||
Imports Newtonsoft.Json.Converters
|
||||
|
||||
Public Class UpdateInfo
|
||||
|
||||
<JsonConverter(GetType(VersionConverter))>
|
||||
Public Property Version As Version
|
||||
Public ReadOnly Property Actions As New List(Of UpdateAction)
|
||||
|
||||
End Class
|
||||
11
ModpackUpdater.Model/UpdateInfos.vb
Normal file
11
ModpackUpdater.Model/UpdateInfos.vb
Normal file
@@ -0,0 +1,11 @@
|
||||
Imports Newtonsoft.Json
|
||||
|
||||
Public Class UpdateInfos
|
||||
|
||||
Public ReadOnly Property Updates As New List(Of UpdateInfo)
|
||||
|
||||
Public Shared Function Parse(content As String) As UpdateInfos
|
||||
Return JsonConvert.DeserializeObject(Of UpdateInfos)(content)
|
||||
End Function
|
||||
|
||||
End Class
|
||||
@@ -5,6 +5,12 @@ VisualStudioVersion = 17.2.32526.322
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{778DAE3C-4631-46EA-AA77-85C1314464D9}") = "ModpackUpdater", "ModpackUpdater\ModpackUpdater.vbproj", "{33DD239C-1F33-40F9-908F-54BC02FBA420}"
|
||||
EndProject
|
||||
Project("{778DAE3C-4631-46EA-AA77-85C1314464D9}") = "ModpackUpdater.Model", "ModpackUpdater.Model\ModpackUpdater.Model.vbproj", "{BC4FE51B-4045-432C-B4D9-8C6CF5372DC0}"
|
||||
EndProject
|
||||
Project("{778DAE3C-4631-46EA-AA77-85C1314464D9}") = "ModpackUpdater.Manager", "ModpackUpdater.Manager\ModpackUpdater.Manager.vbproj", "{618DAFD6-3336-4621-82F9-EA5C783D2D2E}"
|
||||
EndProject
|
||||
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ModpackUpdater.GitLab", "ModpackUpdater.GitLab\ModpackUpdater.GitLab.vbproj", "{65D44991-EB3B-4AC4-9166-3E8D0BADD402}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
@@ -15,6 +21,18 @@ Global
|
||||
{33DD239C-1F33-40F9-908F-54BC02FBA420}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{33DD239C-1F33-40F9-908F-54BC02FBA420}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{33DD239C-1F33-40F9-908F-54BC02FBA420}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{BC4FE51B-4045-432C-B4D9-8C6CF5372DC0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{BC4FE51B-4045-432C-B4D9-8C6CF5372DC0}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{BC4FE51B-4045-432C-B4D9-8C6CF5372DC0}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{BC4FE51B-4045-432C-B4D9-8C6CF5372DC0}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{618DAFD6-3336-4621-82F9-EA5C783D2D2E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{618DAFD6-3336-4621-82F9-EA5C783D2D2E}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{618DAFD6-3336-4621-82F9-EA5C783D2D2E}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{618DAFD6-3336-4621-82F9-EA5C783D2D2E}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{65D44991-EB3B-4AC4-9166-3E8D0BADD402}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{65D44991-EB3B-4AC4-9166-3E8D0BADD402}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{65D44991-EB3B-4AC4-9166-3E8D0BADD402}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{65D44991-EB3B-4AC4-9166-3E8D0BADD402}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
||||
@@ -4,8 +4,16 @@ Imports Newtonsoft.Json.Linq
|
||||
|
||||
Public Class AppConfig
|
||||
|
||||
Public Property LastMinecraftProfilePath As string
|
||||
Public Property LastConfigFilePath As string
|
||||
Public Property LastMinecraftProfilePath As String
|
||||
Public Property LastConfigFilePath As String
|
||||
Public Property KeepLocalFiles As New List(Of String)
|
||||
Public Property AllowRemoveLocalFiles As Boolean
|
||||
|
||||
Public Sub Reset()
|
||||
KeepLocalFiles.Clear()
|
||||
KeepLocalFiles.Add("OptiFine_1.7.10_HD_U_E7.jar")
|
||||
AllowRemoveLocalFiles = False
|
||||
End Sub
|
||||
|
||||
Public Shared ReadOnly Property Instance As AppConfig
|
||||
Get
|
||||
@@ -16,6 +24,7 @@ Public Class AppConfig
|
||||
myInstance = LoadConfig(SettingsPath)
|
||||
Else
|
||||
myInstance = New AppConfig
|
||||
myInstance.Reset()
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
70
ModpackUpdater/AppUpdater.vb
Normal file
70
ModpackUpdater/AppUpdater.vb
Normal file
@@ -0,0 +1,70 @@
|
||||
Imports System.IO
|
||||
Imports System.Net
|
||||
Imports System.Net.Http
|
||||
|
||||
Imports WebDav
|
||||
|
||||
Public Class AppUpdater
|
||||
|
||||
Private Const WEBDAV_URL As String = "https://cloud.pilzinsel64.de/public.php/webdav"
|
||||
Private Const WEBDAV_KEY As String = "z4dGicDYmG2neG9"
|
||||
Private Const DOWNLOAD_URL As String = "https://cloud.pilzinsel64.de/s/z4dGicDYmG2neG9/download"
|
||||
|
||||
Public Shared Async Function Check() As Task(Of Boolean)
|
||||
Dim appFileName = Pilz.IO.Extensions.GetExecutablePath()
|
||||
Dim hasUpdate As Boolean = False
|
||||
Dim params As New WebDavClientParams With {
|
||||
.BaseAddress = New Uri(WEBDAV_URL),
|
||||
.Credentials = New NetworkCredential(WEBDAV_KEY, String.Empty)
|
||||
}
|
||||
|
||||
Try
|
||||
Using client As New WebDavClient(params)
|
||||
Dim result = Await client.Propfind(String.Empty)
|
||||
|
||||
If result.IsSuccessful AndAlso result.Resources.Count <> 0 Then
|
||||
Dim resource = result.Resources(0)
|
||||
Dim appModificationDate = File.GetLastWriteTimeUtc(appFileName)
|
||||
Dim remoteModificationDate = resource.LastModifiedDate?.ToUniversalTime
|
||||
|
||||
If remoteModificationDate > appModificationDate Then
|
||||
hasUpdate = True
|
||||
End If
|
||||
End If
|
||||
End Using
|
||||
Catch ex As Exception
|
||||
End Try
|
||||
|
||||
Return hasUpdate
|
||||
End Function
|
||||
|
||||
Public Shared Async Function Install() As Task
|
||||
Dim client As New HttpClient
|
||||
Dim tempFileName = Path.GetTempFileName
|
||||
Dim appFileName = Pilz.IO.Extensions.GetExecutablePath()
|
||||
Dim oldFileName = appFileName & ".old"
|
||||
|
||||
'Delete old file
|
||||
Try
|
||||
File.Delete(oldFileName)
|
||||
Catch ex As Exception
|
||||
End Try
|
||||
|
||||
'Download the new file
|
||||
Using tempFileStream As New FileStream(tempFileName, FileMode.Create, FileAccess.ReadWrite)
|
||||
Dim downloadStream As Stream = Nothing
|
||||
Try
|
||||
downloadStream = Await client.GetStreamAsync(DOWNLOAD_URL)
|
||||
Await downloadStream.CopyToAsync(tempFileStream)
|
||||
Catch
|
||||
Finally
|
||||
downloadStream?.Dispose()
|
||||
End Try
|
||||
End Using
|
||||
|
||||
'Replace current application file with new file
|
||||
File.Move(appFileName, oldFileName, True)
|
||||
File.Move(tempFileName, appFileName)
|
||||
End Function
|
||||
|
||||
End Class
|
||||
413
ModpackUpdater/Form1.Designer.vb
generated
413
ModpackUpdater/Form1.Designer.vb
generated
@@ -24,207 +24,217 @@ Partial Class Form1
|
||||
<System.Diagnostics.DebuggerStepThrough()> _
|
||||
Private Sub InitializeComponent()
|
||||
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Form1))
|
||||
Me.RadLabel1 = New Telerik.WinControls.UI.RadLabel()
|
||||
Me.RadLabel2 = New Telerik.WinControls.UI.RadLabel()
|
||||
Me.RadLabel3 = New Telerik.WinControls.UI.RadLabel()
|
||||
Me.RadLabel_Status = New Telerik.WinControls.UI.RadLabel()
|
||||
Me.RadTextBoxControl_MinecraftProfileFolder = New Telerik.WinControls.UI.RadTextBoxControl()
|
||||
Me.RadTextBoxControl_ModpackConfig = New Telerik.WinControls.UI.RadTextBoxControl()
|
||||
Me.Panel1 = New System.Windows.Forms.Panel()
|
||||
Me.RadButton_Install = New Telerik.WinControls.UI.RadButton()
|
||||
Me.RadButton_CheckForUpdates = New Telerik.WinControls.UI.RadButton()
|
||||
Me.RadButton_EditModpackConfig = New Telerik.WinControls.UI.RadButton()
|
||||
Me.RadButton_SearchModpackConfig = New Telerik.WinControls.UI.RadButton()
|
||||
Me.RadButton_SearchMinecraftProfileFolder = New Telerik.WinControls.UI.RadButton()
|
||||
CType(Me.RadLabel1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.RadLabel2, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.RadLabel3, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.RadLabel_Status, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.RadTextBoxControl_MinecraftProfileFolder, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.RadTextBoxControl_ModpackConfig, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
Me.Panel1.SuspendLayout()
|
||||
CType(Me.RadButton_Install, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.RadButton_CheckForUpdates, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.RadButton_EditModpackConfig, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.RadButton_SearchModpackConfig, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.RadButton_SearchMinecraftProfileFolder, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
'RadLabel1
|
||||
'
|
||||
Me.RadLabel1.Location = New System.Drawing.Point(3, 5)
|
||||
Me.RadLabel1.Name = "RadLabel1"
|
||||
Me.RadLabel1.Size = New System.Drawing.Size(135, 19)
|
||||
Me.RadLabel1.TabIndex = 0
|
||||
Me.RadLabel1.Text = "Minecraft profile folder:"
|
||||
'
|
||||
'RadLabel2
|
||||
'
|
||||
Me.RadLabel2.Location = New System.Drawing.Point(3, 63)
|
||||
Me.RadLabel2.Name = "RadLabel2"
|
||||
Me.RadLabel2.Size = New System.Drawing.Size(98, 19)
|
||||
Me.RadLabel2.TabIndex = 1
|
||||
Me.RadLabel2.Text = "Modpack config:"
|
||||
'
|
||||
'RadLabel3
|
||||
'
|
||||
Me.RadLabel3.Location = New System.Drawing.Point(3, 121)
|
||||
Me.RadLabel3.Name = "RadLabel3"
|
||||
Me.RadLabel3.Size = New System.Drawing.Size(43, 19)
|
||||
Me.RadLabel3.TabIndex = 2
|
||||
Me.RadLabel3.Text = "Status:"
|
||||
'
|
||||
'RadLabel_Status
|
||||
'
|
||||
Me.RadLabel_Status.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
|
||||
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
||||
Me.RadLabel_Status.AutoSize = False
|
||||
Me.RadLabel_Status.Location = New System.Drawing.Point(144, 119)
|
||||
Me.RadLabel_Status.Name = "RadLabel_Status"
|
||||
Me.RadLabel_Status.Size = New System.Drawing.Size(273, 22)
|
||||
Me.RadLabel_Status.TabIndex = 3
|
||||
Me.RadLabel_Status.Text = "-"
|
||||
Me.RadLabel_Status.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText
|
||||
'
|
||||
'RadTextBoxControl_MinecraftProfileFolder
|
||||
'
|
||||
Me.RadTextBoxControl_MinecraftProfileFolder.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
|
||||
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
||||
Me.RadTextBoxControl_MinecraftProfileFolder.IsReadOnly = True
|
||||
Me.RadTextBoxControl_MinecraftProfileFolder.Location = New System.Drawing.Point(144, 3)
|
||||
Me.RadTextBoxControl_MinecraftProfileFolder.Name = "RadTextBoxControl_MinecraftProfileFolder"
|
||||
Me.RadTextBoxControl_MinecraftProfileFolder.NullText = "No file loaded!"
|
||||
Me.RadTextBoxControl_MinecraftProfileFolder.Size = New System.Drawing.Size(273, 22)
|
||||
Me.RadTextBoxControl_MinecraftProfileFolder.TabIndex = 4
|
||||
'
|
||||
'RadTextBoxControl_ModpackConfig
|
||||
'
|
||||
Me.RadTextBoxControl_ModpackConfig.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
|
||||
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
||||
Me.RadTextBoxControl_ModpackConfig.IsReadOnly = True
|
||||
Me.RadTextBoxControl_ModpackConfig.Location = New System.Drawing.Point(144, 61)
|
||||
Me.RadTextBoxControl_ModpackConfig.Name = "RadTextBoxControl_ModpackConfig"
|
||||
Me.RadTextBoxControl_ModpackConfig.NullText = "No file loaded!"
|
||||
Me.RadTextBoxControl_ModpackConfig.Size = New System.Drawing.Size(273, 22)
|
||||
Me.RadTextBoxControl_ModpackConfig.TabIndex = 5
|
||||
'
|
||||
'Panel1
|
||||
'
|
||||
Me.Panel1.BackColor = System.Drawing.Color.Transparent
|
||||
Me.Panel1.Controls.Add(Me.RadButton_Install)
|
||||
Me.Panel1.Controls.Add(Me.RadButton_CheckForUpdates)
|
||||
Me.Panel1.Controls.Add(Me.RadButton_EditModpackConfig)
|
||||
Me.Panel1.Controls.Add(Me.RadButton_SearchModpackConfig)
|
||||
Me.Panel1.Controls.Add(Me.RadButton_SearchMinecraftProfileFolder)
|
||||
Me.Panel1.Controls.Add(Me.RadLabel1)
|
||||
Me.Panel1.Controls.Add(Me.RadTextBoxControl_ModpackConfig)
|
||||
Me.Panel1.Controls.Add(Me.RadLabel2)
|
||||
Me.Panel1.Controls.Add(Me.RadTextBoxControl_MinecraftProfileFolder)
|
||||
Me.Panel1.Controls.Add(Me.RadLabel3)
|
||||
Me.Panel1.Controls.Add(Me.RadLabel_Status)
|
||||
Me.Panel1.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
Me.Panel1.Location = New System.Drawing.Point(0, 0)
|
||||
Me.Panel1.Name = "Panel1"
|
||||
Me.Panel1.Size = New System.Drawing.Size(420, 176)
|
||||
Me.Panel1.TabIndex = 6
|
||||
'
|
||||
'RadButton_Install
|
||||
'
|
||||
Me.RadButton_Install.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
||||
Me.RadButton_Install.Image = Global.ModpackUpdater.My.Resources.MySymbols.icons8_software_installer_16px
|
||||
Me.RadButton_Install.ImageAlignment = System.Drawing.ContentAlignment.MiddleRight
|
||||
Me.RadButton_Install.Location = New System.Drawing.Point(337, 149)
|
||||
Me.RadButton_Install.Name = "RadButton_Install"
|
||||
Me.RadButton_Install.Size = New System.Drawing.Size(80, 24)
|
||||
Me.RadButton_Install.TabIndex = 10
|
||||
Me.RadButton_Install.Text = "Install"
|
||||
Me.RadButton_Install.TextAlignment = System.Drawing.ContentAlignment.MiddleLeft
|
||||
Me.RadButton_Install.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText
|
||||
'
|
||||
'RadButton_CheckForUpdates
|
||||
'
|
||||
Me.RadButton_CheckForUpdates.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
||||
Me.RadButton_CheckForUpdates.Image = Global.ModpackUpdater.My.Resources.MySymbols.icons8_update_16px
|
||||
Me.RadButton_CheckForUpdates.ImageAlignment = System.Drawing.ContentAlignment.MiddleRight
|
||||
Me.RadButton_CheckForUpdates.Location = New System.Drawing.Point(191, 149)
|
||||
Me.RadButton_CheckForUpdates.Name = "RadButton_CheckForUpdates"
|
||||
Me.RadButton_CheckForUpdates.Size = New System.Drawing.Size(140, 24)
|
||||
Me.RadButton_CheckForUpdates.TabIndex = 0
|
||||
Me.RadButton_CheckForUpdates.Text = "Check for Updates"
|
||||
Me.RadButton_CheckForUpdates.TextAlignment = System.Drawing.ContentAlignment.MiddleLeft
|
||||
Me.RadButton_CheckForUpdates.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText
|
||||
'
|
||||
'RadButton_EditModpackConfig
|
||||
'
|
||||
Me.RadButton_EditModpackConfig.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
|
||||
Me.RadButton_EditModpackConfig.Image = Global.ModpackUpdater.My.Resources.MySymbols.icons8_wrench_16px
|
||||
Me.RadButton_EditModpackConfig.ImageAlignment = System.Drawing.ContentAlignment.MiddleRight
|
||||
Me.RadButton_EditModpackConfig.Location = New System.Drawing.Point(3, 149)
|
||||
Me.RadButton_EditModpackConfig.Name = "RadButton_EditModpackConfig"
|
||||
Me.RadButton_EditModpackConfig.Size = New System.Drawing.Size(150, 24)
|
||||
Me.RadButton_EditModpackConfig.TabIndex = 8
|
||||
Me.RadButton_EditModpackConfig.Text = "Edit modpack config"
|
||||
Me.RadButton_EditModpackConfig.TextAlignment = System.Drawing.ContentAlignment.MiddleLeft
|
||||
Me.RadButton_EditModpackConfig.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText
|
||||
'
|
||||
'RadButton_SearchModpackConfig
|
||||
'
|
||||
Me.RadButton_SearchModpackConfig.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
||||
Me.RadButton_SearchModpackConfig.Image = CType(resources.GetObject("RadButton_SearchModpackConfig.Image"), System.Drawing.Image)
|
||||
Me.RadButton_SearchModpackConfig.ImageAlignment = System.Drawing.ContentAlignment.MiddleRight
|
||||
Me.RadButton_SearchModpackConfig.Location = New System.Drawing.Point(327, 89)
|
||||
Me.RadButton_SearchModpackConfig.Name = "RadButton_SearchModpackConfig"
|
||||
Me.RadButton_SearchModpackConfig.Size = New System.Drawing.Size(90, 24)
|
||||
Me.RadButton_SearchModpackConfig.TabIndex = 7
|
||||
Me.RadButton_SearchModpackConfig.Text = "Search"
|
||||
Me.RadButton_SearchModpackConfig.TextAlignment = System.Drawing.ContentAlignment.MiddleLeft
|
||||
Me.RadButton_SearchModpackConfig.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText
|
||||
'
|
||||
'RadButton_SearchMinecraftProfileFolder
|
||||
'
|
||||
Me.RadButton_SearchMinecraftProfileFolder.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
||||
Me.RadButton_SearchMinecraftProfileFolder.Image = CType(resources.GetObject("RadButton_SearchMinecraftProfileFolder.Image"), System.Drawing.Image)
|
||||
Me.RadButton_SearchMinecraftProfileFolder.ImageAlignment = System.Drawing.ContentAlignment.MiddleRight
|
||||
Me.RadButton_SearchMinecraftProfileFolder.Location = New System.Drawing.Point(327, 31)
|
||||
Me.RadButton_SearchMinecraftProfileFolder.Name = "RadButton_SearchMinecraftProfileFolder"
|
||||
Me.RadButton_SearchMinecraftProfileFolder.Size = New System.Drawing.Size(90, 24)
|
||||
Me.RadButton_SearchMinecraftProfileFolder.TabIndex = 6
|
||||
Me.RadButton_SearchMinecraftProfileFolder.Text = "Search"
|
||||
Me.RadButton_SearchMinecraftProfileFolder.TextAlignment = System.Drawing.ContentAlignment.MiddleLeft
|
||||
Me.RadButton_SearchMinecraftProfileFolder.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText
|
||||
'
|
||||
'Form1
|
||||
'
|
||||
Me.AutoScaleBaseSize = New System.Drawing.Size(7, 15)
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(7.0!, 15.0!)
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.ClientSize = New System.Drawing.Size(420, 176)
|
||||
Me.Controls.Add(Me.Panel1)
|
||||
Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
|
||||
Me.MaximizeBox = False
|
||||
Me.Name = "Form1"
|
||||
'
|
||||
'
|
||||
'
|
||||
Me.RootElement.ApplyShapeToControl = True
|
||||
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
|
||||
Me.Text = "Minecraft Modpack Updater"
|
||||
CType(Me.RadLabel1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.RadLabel2, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.RadLabel3, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.RadLabel_Status, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.RadTextBoxControl_MinecraftProfileFolder, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.RadTextBoxControl_ModpackConfig, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
Me.Panel1.ResumeLayout(False)
|
||||
Me.Panel1.PerformLayout()
|
||||
CType(Me.RadButton_Install, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.RadButton_CheckForUpdates, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.RadButton_EditModpackConfig, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.RadButton_SearchModpackConfig, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.RadButton_SearchMinecraftProfileFolder, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
Me.ResumeLayout(False)
|
||||
RadLabel1 = New Telerik.WinControls.UI.RadLabel()
|
||||
RadLabel2 = New Telerik.WinControls.UI.RadLabel()
|
||||
RadLabel3 = New Telerik.WinControls.UI.RadLabel()
|
||||
RadLabel_Status = New Telerik.WinControls.UI.RadLabel()
|
||||
RadTextBoxControl_MinecraftProfileFolder = New Telerik.WinControls.UI.RadTextBoxControl()
|
||||
RadTextBoxControl_ModpackConfig = New Telerik.WinControls.UI.RadTextBoxControl()
|
||||
Panel1 = New Panel()
|
||||
RadButton_Install = New Telerik.WinControls.UI.RadButton()
|
||||
RadButton_CheckForUpdates = New Telerik.WinControls.UI.RadButton()
|
||||
RadButton_EditModpackConfig = New Telerik.WinControls.UI.RadButton()
|
||||
RadButton_SearchModpackConfig = New Telerik.WinControls.UI.RadButton()
|
||||
RadButton_SearchMinecraftProfileFolder = New Telerik.WinControls.UI.RadButton()
|
||||
RadButton_PasteModpackConfig = New Telerik.WinControls.UI.RadButton()
|
||||
CType(RadLabel1, ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(RadLabel2, ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(RadLabel3, ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(RadLabel_Status, ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(RadTextBoxControl_MinecraftProfileFolder, ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(RadTextBoxControl_ModpackConfig, ComponentModel.ISupportInitialize).BeginInit()
|
||||
Panel1.SuspendLayout()
|
||||
CType(RadButton_Install, ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(RadButton_CheckForUpdates, ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(RadButton_EditModpackConfig, ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(RadButton_SearchModpackConfig, ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(RadButton_SearchMinecraftProfileFolder, ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(RadButton_PasteModpackConfig, ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me, ComponentModel.ISupportInitialize).BeginInit()
|
||||
SuspendLayout()
|
||||
'
|
||||
' RadLabel1
|
||||
'
|
||||
RadLabel1.Location = New Point(3, 5)
|
||||
RadLabel1.Name = "RadLabel1"
|
||||
RadLabel1.Size = New Size(124, 18)
|
||||
RadLabel1.TabIndex = 0
|
||||
RadLabel1.Text = "Minecraft profile folder:"
|
||||
'
|
||||
' RadLabel2
|
||||
'
|
||||
RadLabel2.Location = New Point(3, 63)
|
||||
RadLabel2.Name = "RadLabel2"
|
||||
RadLabel2.Size = New Size(90, 18)
|
||||
RadLabel2.TabIndex = 1
|
||||
RadLabel2.Text = "Modpack config:"
|
||||
'
|
||||
' RadLabel3
|
||||
'
|
||||
RadLabel3.Location = New Point(3, 121)
|
||||
RadLabel3.Name = "RadLabel3"
|
||||
RadLabel3.Size = New Size(39, 18)
|
||||
RadLabel3.TabIndex = 2
|
||||
RadLabel3.Text = "Status:"
|
||||
'
|
||||
' RadLabel_Status
|
||||
'
|
||||
RadLabel_Status.Anchor = AnchorStyles.Top Or AnchorStyles.Left Or AnchorStyles.Right
|
||||
RadLabel_Status.AutoSize = False
|
||||
RadLabel_Status.Location = New Point(144, 119)
|
||||
RadLabel_Status.Name = "RadLabel_Status"
|
||||
RadLabel_Status.Size = New Size(273, 22)
|
||||
RadLabel_Status.TabIndex = 3
|
||||
RadLabel_Status.Text = "-"
|
||||
RadLabel_Status.TextImageRelation = TextImageRelation.ImageBeforeText
|
||||
'
|
||||
' RadTextBoxControl_MinecraftProfileFolder
|
||||
'
|
||||
RadTextBoxControl_MinecraftProfileFolder.Anchor = AnchorStyles.Top Or AnchorStyles.Left Or AnchorStyles.Right
|
||||
RadTextBoxControl_MinecraftProfileFolder.IsReadOnly = True
|
||||
RadTextBoxControl_MinecraftProfileFolder.Location = New Point(144, 3)
|
||||
RadTextBoxControl_MinecraftProfileFolder.Name = "RadTextBoxControl_MinecraftProfileFolder"
|
||||
RadTextBoxControl_MinecraftProfileFolder.NullText = "No file loaded!"
|
||||
RadTextBoxControl_MinecraftProfileFolder.Size = New Size(273, 22)
|
||||
RadTextBoxControl_MinecraftProfileFolder.TabIndex = 4
|
||||
'
|
||||
' RadTextBoxControl_ModpackConfig
|
||||
'
|
||||
RadTextBoxControl_ModpackConfig.Anchor = AnchorStyles.Top Or AnchorStyles.Left Or AnchorStyles.Right
|
||||
RadTextBoxControl_ModpackConfig.IsReadOnly = True
|
||||
RadTextBoxControl_ModpackConfig.Location = New Point(144, 61)
|
||||
RadTextBoxControl_ModpackConfig.Name = "RadTextBoxControl_ModpackConfig"
|
||||
RadTextBoxControl_ModpackConfig.NullText = "No file loaded!"
|
||||
RadTextBoxControl_ModpackConfig.Size = New Size(273, 22)
|
||||
RadTextBoxControl_ModpackConfig.TabIndex = 5
|
||||
'
|
||||
' Panel1
|
||||
'
|
||||
Panel1.BackColor = Color.Transparent
|
||||
Panel1.Controls.Add(RadButton_Install)
|
||||
Panel1.Controls.Add(RadButton_CheckForUpdates)
|
||||
Panel1.Controls.Add(RadButton_EditModpackConfig)
|
||||
Panel1.Controls.Add(RadButton_PasteModpackConfig)
|
||||
Panel1.Controls.Add(RadButton_SearchModpackConfig)
|
||||
Panel1.Controls.Add(RadButton_SearchMinecraftProfileFolder)
|
||||
Panel1.Controls.Add(RadLabel1)
|
||||
Panel1.Controls.Add(RadTextBoxControl_ModpackConfig)
|
||||
Panel1.Controls.Add(RadLabel2)
|
||||
Panel1.Controls.Add(RadTextBoxControl_MinecraftProfileFolder)
|
||||
Panel1.Controls.Add(RadLabel3)
|
||||
Panel1.Controls.Add(RadLabel_Status)
|
||||
Panel1.Dock = DockStyle.Fill
|
||||
Panel1.Location = New Point(0, 0)
|
||||
Panel1.Name = "Panel1"
|
||||
Panel1.Size = New Size(420, 176)
|
||||
Panel1.TabIndex = 6
|
||||
'
|
||||
' RadButton_Install
|
||||
'
|
||||
RadButton_Install.Anchor = AnchorStyles.Bottom Or AnchorStyles.Right
|
||||
RadButton_Install.Image = My.Resources.MySymbols.icons8_software_installer_16px
|
||||
RadButton_Install.ImageAlignment = ContentAlignment.MiddleRight
|
||||
RadButton_Install.Location = New Point(337, 149)
|
||||
RadButton_Install.Name = "RadButton_Install"
|
||||
RadButton_Install.Size = New Size(80, 24)
|
||||
RadButton_Install.TabIndex = 10
|
||||
RadButton_Install.Text = "Install"
|
||||
RadButton_Install.TextAlignment = ContentAlignment.MiddleLeft
|
||||
RadButton_Install.TextImageRelation = TextImageRelation.ImageBeforeText
|
||||
'
|
||||
' RadButton_CheckForUpdates
|
||||
'
|
||||
RadButton_CheckForUpdates.Anchor = AnchorStyles.Bottom Or AnchorStyles.Right
|
||||
RadButton_CheckForUpdates.Image = My.Resources.MySymbols.icons8_update_16px
|
||||
RadButton_CheckForUpdates.ImageAlignment = ContentAlignment.MiddleRight
|
||||
RadButton_CheckForUpdates.Location = New Point(191, 149)
|
||||
RadButton_CheckForUpdates.Name = "RadButton_CheckForUpdates"
|
||||
RadButton_CheckForUpdates.Size = New Size(140, 24)
|
||||
RadButton_CheckForUpdates.TabIndex = 0
|
||||
RadButton_CheckForUpdates.Text = "Check for Updates"
|
||||
RadButton_CheckForUpdates.TextAlignment = ContentAlignment.MiddleLeft
|
||||
RadButton_CheckForUpdates.TextImageRelation = TextImageRelation.ImageBeforeText
|
||||
'
|
||||
' RadButton_EditModpackConfig
|
||||
'
|
||||
RadButton_EditModpackConfig.Anchor = AnchorStyles.Bottom Or AnchorStyles.Left
|
||||
RadButton_EditModpackConfig.Image = My.Resources.MySymbols.icons8_wrench_16px
|
||||
RadButton_EditModpackConfig.ImageAlignment = ContentAlignment.MiddleRight
|
||||
RadButton_EditModpackConfig.Location = New Point(3, 149)
|
||||
RadButton_EditModpackConfig.Name = "RadButton_EditModpackConfig"
|
||||
RadButton_EditModpackConfig.Size = New Size(150, 24)
|
||||
RadButton_EditModpackConfig.TabIndex = 8
|
||||
RadButton_EditModpackConfig.Text = "Edit modpack config"
|
||||
RadButton_EditModpackConfig.TextAlignment = ContentAlignment.MiddleLeft
|
||||
RadButton_EditModpackConfig.TextImageRelation = TextImageRelation.ImageBeforeText
|
||||
'
|
||||
' RadButton_SearchModpackConfig
|
||||
'
|
||||
RadButton_SearchModpackConfig.Anchor = AnchorStyles.Top Or AnchorStyles.Right
|
||||
RadButton_SearchModpackConfig.Image = CType(resources.GetObject("RadButton_SearchModpackConfig.Image"), Image)
|
||||
RadButton_SearchModpackConfig.ImageAlignment = ContentAlignment.MiddleRight
|
||||
RadButton_SearchModpackConfig.Location = New Point(327, 89)
|
||||
RadButton_SearchModpackConfig.Name = "RadButton_SearchModpackConfig"
|
||||
RadButton_SearchModpackConfig.Size = New Size(90, 24)
|
||||
RadButton_SearchModpackConfig.TabIndex = 7
|
||||
RadButton_SearchModpackConfig.Text = "Search"
|
||||
RadButton_SearchModpackConfig.TextAlignment = ContentAlignment.MiddleLeft
|
||||
RadButton_SearchModpackConfig.TextImageRelation = TextImageRelation.ImageBeforeText
|
||||
'
|
||||
' RadButton_SearchMinecraftProfileFolder
|
||||
'
|
||||
RadButton_SearchMinecraftProfileFolder.Anchor = AnchorStyles.Top Or AnchorStyles.Right
|
||||
RadButton_SearchMinecraftProfileFolder.Image = CType(resources.GetObject("RadButton_SearchMinecraftProfileFolder.Image"), Image)
|
||||
RadButton_SearchMinecraftProfileFolder.ImageAlignment = ContentAlignment.MiddleRight
|
||||
RadButton_SearchMinecraftProfileFolder.Location = New Point(327, 31)
|
||||
RadButton_SearchMinecraftProfileFolder.Name = "RadButton_SearchMinecraftProfileFolder"
|
||||
RadButton_SearchMinecraftProfileFolder.Size = New Size(90, 24)
|
||||
RadButton_SearchMinecraftProfileFolder.TabIndex = 6
|
||||
RadButton_SearchMinecraftProfileFolder.Text = "Search"
|
||||
RadButton_SearchMinecraftProfileFolder.TextAlignment = ContentAlignment.MiddleLeft
|
||||
RadButton_SearchMinecraftProfileFolder.TextImageRelation = TextImageRelation.ImageBeforeText
|
||||
'
|
||||
' RadButton_PasteModpackConfig
|
||||
'
|
||||
RadButton_PasteModpackConfig.Anchor = AnchorStyles.Top Or AnchorStyles.Right
|
||||
RadButton_PasteModpackConfig.Image = CType(resources.GetObject("RadButton_PasteModpackConfig.Image"), Image)
|
||||
RadButton_PasteModpackConfig.ImageAlignment = ContentAlignment.MiddleRight
|
||||
RadButton_PasteModpackConfig.Location = New Point(231, 89)
|
||||
RadButton_PasteModpackConfig.Name = "RadButton_PasteModpackConfig"
|
||||
RadButton_PasteModpackConfig.Size = New Size(90, 24)
|
||||
RadButton_PasteModpackConfig.TabIndex = 7
|
||||
RadButton_PasteModpackConfig.Text = "Paste"
|
||||
RadButton_PasteModpackConfig.TextAlignment = ContentAlignment.MiddleLeft
|
||||
RadButton_PasteModpackConfig.TextImageRelation = TextImageRelation.ImageBeforeText
|
||||
'
|
||||
' Form1
|
||||
'
|
||||
AutoScaleBaseSize = New Size(7, 15)
|
||||
AutoScaleDimensions = New SizeF(7F, 15F)
|
||||
AutoScaleMode = AutoScaleMode.Font
|
||||
ClientSize = New Size(420, 176)
|
||||
Controls.Add(Panel1)
|
||||
Icon = CType(resources.GetObject("$this.Icon"), Icon)
|
||||
MaximizeBox = False
|
||||
Name = "Form1"
|
||||
StartPosition = FormStartPosition.CenterScreen
|
||||
Text = "Minecraft Modpack Updater"
|
||||
CType(RadLabel1, ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(RadLabel2, ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(RadLabel3, ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(RadLabel_Status, ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(RadTextBoxControl_MinecraftProfileFolder, ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(RadTextBoxControl_ModpackConfig, ComponentModel.ISupportInitialize).EndInit()
|
||||
Panel1.ResumeLayout(False)
|
||||
Panel1.PerformLayout()
|
||||
CType(RadButton_Install, ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(RadButton_CheckForUpdates, ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(RadButton_EditModpackConfig, ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(RadButton_SearchModpackConfig, ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(RadButton_SearchMinecraftProfileFolder, ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(RadButton_PasteModpackConfig, ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me, ComponentModel.ISupportInitialize).EndInit()
|
||||
ResumeLayout(False)
|
||||
|
||||
End Sub
|
||||
Friend WithEvents RadLabel1 As Telerik.WinControls.UI.RadLabel
|
||||
@@ -239,4 +249,5 @@ Partial Class Form1
|
||||
Friend WithEvents RadButton_EditModpackConfig As Telerik.WinControls.UI.RadButton
|
||||
Friend WithEvents RadButton_SearchModpackConfig As Telerik.WinControls.UI.RadButton
|
||||
Friend WithEvents RadButton_SearchMinecraftProfileFolder As Telerik.WinControls.UI.RadButton
|
||||
Friend WithEvents RadButton_PasteModpackConfig As Telerik.WinControls.UI.RadButton
|
||||
End Class
|
||||
|
||||
@@ -1,4 +1,64 @@
|
||||
<root>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
@@ -58,6 +118,16 @@
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="RadButton_PasteModpackConfig.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAADvSURBVDhPY8AFJixbowfCUC5pYNLidfoTlqxbBcJ9SzboQoXxA9eolHlA/BOo6T8I9y5a87Jv
|
||||
4ZpXMD5IDojnQJVjAqDk3x8/f/2fu247WAMynrt+x3+QHFDNH6hyTACU/E8IgNRAlWMCZAM+//z3/9bb
|
||||
vxg4rn7a/wknf4aCMFQbAiAbAFI84dRPvBiqDQFoYoDDpPsYOHrpC+INyFj3BgXDbKefARR7AV0zzHas
|
||||
BrhEpXzaffjY/4MnTv/feOIWimJsGKoNAVwiU4Ndo1NWukalrkrrWnoMmyZkDNWGHUw68cti4smfq/Fh
|
||||
iEoGBgDk9v/D66ccygAAAABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<data name="RadButton_SearchModpackConfig.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAMhJREFUOE9j
|
||||
|
||||
@@ -1,23 +1,32 @@
|
||||
Imports System.IO
|
||||
|
||||
Imports ModpackUpdater.GitLab
|
||||
|
||||
Imports ModpackUpdater.Manager
|
||||
|
||||
Imports ModpackUpdater.Model
|
||||
|
||||
Imports ModpackUpdater.My.Resources
|
||||
|
||||
Imports Telerik.WinControls
|
||||
Imports Telerik.WinControls.UI
|
||||
|
||||
Public Class Form1
|
||||
|
||||
Private updateConfig As New UpdateConfig
|
||||
Private currentUpdating As Boolean = False
|
||||
Private lastUpdateCheckResult As UpdateCheckResult = Nothing
|
||||
|
||||
Public Sub New()
|
||||
InitializeComponent()
|
||||
Text = $"{Text} (v{Application.ProductVersion})"
|
||||
End Sub
|
||||
|
||||
Private Function IsMinecaftProfileLoaded() As Boolean
|
||||
Return Not String.IsNullOrEmpty(GetMinecraftProfilePath)
|
||||
End Function
|
||||
|
||||
Private Function GetMinecraftProfilePath() As string
|
||||
Private Function GetMinecraftProfilePath() As String
|
||||
Return RadTextBoxControl_MinecraftProfileFolder.Text.Trim
|
||||
End Function
|
||||
|
||||
@@ -25,7 +34,7 @@ Public Class Form1
|
||||
Return Not String.IsNullOrEmpty(GetUpdateconfigPath)
|
||||
End Function
|
||||
|
||||
Private Function GetUpdateconfigPath() As string
|
||||
Private Function GetUpdateconfigPath() As String
|
||||
Return RadTextBoxControl_ModpackConfig.Text.Trim
|
||||
End Function
|
||||
|
||||
@@ -41,7 +50,7 @@ Public Class Form1
|
||||
End If
|
||||
End Function
|
||||
|
||||
Private Sub SetStatus(statusText As string, image As Image)
|
||||
Private Sub SetStatus(statusText As String, image As Image)
|
||||
RadLabel_Status.Text = statusText
|
||||
RadLabel_Status.Image = image
|
||||
End Sub
|
||||
@@ -51,7 +60,7 @@ Public Class Form1
|
||||
RadLabel_Status.Image = Nothing
|
||||
End Sub
|
||||
|
||||
Private Sub LoadMinecraftProfile(folderPath As string)
|
||||
Private Sub LoadMinecraftProfile(folderPath As String)
|
||||
RadTextBoxControl_MinecraftProfileFolder.Text = folderPath
|
||||
|
||||
If IsUpdateConfigLoaded() Then
|
||||
@@ -61,12 +70,19 @@ Public Class Form1
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub LoadUpdateConfigFile(filePath As string)
|
||||
Private Sub LoadUpdateConfigFile(filePath As String)
|
||||
RadTextBoxControl_ModpackConfig.Text = filePath
|
||||
|
||||
If IsUpdateConfigLoaded() Then
|
||||
updateConfig = UpdateConfig.LoadFromFile(filePath)
|
||||
End If
|
||||
Try
|
||||
If IsUpdateConfigLoaded() Then
|
||||
If filePath.StartsWith("http") Then
|
||||
updateConfig = UpdateConfigExt.LoadFromSnippet(filePath)
|
||||
Else
|
||||
updateConfig = UpdateConfig.LoadFromFile(filePath)
|
||||
End If
|
||||
End If
|
||||
Catch ex As Exception
|
||||
RadTextBoxControl_ModpackConfig.Text = String.Empty
|
||||
End Try
|
||||
|
||||
If IsMinecaftProfileLoaded() Then
|
||||
RadButton_CheckForUpdates.PerformClick()
|
||||
@@ -75,42 +91,53 @@ Public Class Form1
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Async Function ExecuteUpdate(allowInstall As Boolean) As Task
|
||||
SetStatus(LangRes.StatusText_CheckingForUpdates, MySymbols.icons8_update_16px)
|
||||
|
||||
Private Async Function ExecuteUpdate(doInstall As Boolean) As Task
|
||||
Dim updater As New UpdateInstaller(updateConfig, GetMinecraftProfilePath)
|
||||
AddHandler updater.InstallProgessUpdated, AddressOf Update_InstallProgessUpdated
|
||||
AddHandler updater.CheckingProgressUpdated, AddressOf Updated_CheckingProgresssUpdated
|
||||
|
||||
Dim result As UpdateCheckResult = Await updater.CheckForUpdates(True)
|
||||
Dim everytingOk As Boolean = False
|
||||
'Check only if not pressed "install", not really needed otherwise.
|
||||
If lastUpdateCheckResult Is Nothing OrElse Not doInstall Then
|
||||
SetStatus(LangRes.StatusText_CheckingForUpdates, MySymbols.icons8_update_16px)
|
||||
|
||||
If result Is Nothing Then
|
||||
SetStatus(LangRes.StatusText_ErrorWhileUpdateCheckOrUpdate, MySymbols.icons8_delete_16px)
|
||||
ElseIf result.HasUpdates Then
|
||||
SetStatus(LangRes.StatusText_UpdateAvailable, MySymbols.icons8_software_installer_16px)
|
||||
|
||||
If allowInstall Then
|
||||
currentUpdating = True
|
||||
SetStatus(LangRes.StatusText_Installing, MySymbols.icons8_software_installer_16px)
|
||||
|
||||
If Await updater.InstallUpdates(result) Then
|
||||
everytingOk = True
|
||||
End If
|
||||
|
||||
currentUpdating = False
|
||||
End If
|
||||
Else
|
||||
everytingOk = True
|
||||
Try
|
||||
lastUpdateCheckResult = Await updater.CheckForUpdates(Not AppConfig.Instance.AllowRemoveLocalFiles)
|
||||
Catch ex As Exception
|
||||
SetStatus(LangRes.StatusText_ErrorWhileUpdateCheckOrUpdate, MySymbols.icons8_delete_16px)
|
||||
Finally
|
||||
End Try
|
||||
End If
|
||||
|
||||
If everytingOk Then
|
||||
If lastUpdateCheckResult Is Nothing OrElse lastUpdateCheckResult.HasError Then
|
||||
SetStatus(LangRes.StatusText_ErrorWhileUpdateCheckOrUpdate, MySymbols.icons8_delete_16px)
|
||||
ElseIf lastUpdateCheckResult.HasUpdates Then
|
||||
If doInstall Then
|
||||
SetStatus(LangRes.StatusText_Installing, MySymbols.icons8_software_installer_16px)
|
||||
currentUpdating = True
|
||||
|
||||
Try
|
||||
If Await updater.InstallUpdates(lastUpdateCheckResult) Then
|
||||
lastUpdateCheckResult = Nothing 'Reset last update check, a new one would be needed now.
|
||||
SetStatus(LangRes.StatusTest_EverythingOk, MySymbols.icons8_checkmark_16px)
|
||||
Else
|
||||
SetStatus(LangRes.StatusText_ErrorWhileUpdateCheckOrUpdate, MySymbols.icons8_delete_16px)
|
||||
End If
|
||||
Catch
|
||||
SetStatus(LangRes.StatusText_ErrorWhileUpdateCheckOrUpdate, MySymbols.icons8_delete_16px)
|
||||
Finally
|
||||
currentUpdating = False
|
||||
End Try
|
||||
Else
|
||||
SetStatus(LangRes.StatusText_UpdateAvailable, MySymbols.icons8_software_installer_16px)
|
||||
End If
|
||||
Else
|
||||
SetStatus(LangRes.StatusTest_EverythingOk, MySymbols.icons8_checkmark_16px)
|
||||
End If
|
||||
End Function
|
||||
|
||||
Private Sub Update_InstallProgessUpdated(result As UpdateCheckResult, processedSyncs As Integer)
|
||||
SetStatus(Math.Round(processedSyncs / result.SyncFiles.Count * 100, 1) & "%", MySymbols.icons8_software_installer_16px)
|
||||
Dim actionCount = If(result.IsLegacy, result.SyncFiles.Count, result.UpdateActions.Count)
|
||||
SetStatus(Math.Round(processedSyncs / actionCount * 100, 1) & "%", MySymbols.icons8_software_installer_16px)
|
||||
End Sub
|
||||
|
||||
Private Sub Updated_CheckingProgresssUpdated(toCheck As Integer, processed As Integer)
|
||||
@@ -126,14 +153,22 @@ Public Class Form1
|
||||
End Sub
|
||||
|
||||
Private Sub ButtonX_SearchUpdateConfig_Click(sender As Object, e As EventArgs) Handles RadButton_SearchModpackConfig.Click
|
||||
Dim ofd As New RadOpenFileDialog
|
||||
ofd.Filter = FiledialogFilters.JSON_Display & "|" & FiledialogFilters.JSON_Filter
|
||||
Dim ofd As New RadOpenFileDialog With {
|
||||
.Filter = FiledialogFilters.JSON_Display & "|" & FiledialogFilters.JSON_Filter
|
||||
}
|
||||
|
||||
If ofd.ShowDialog(Me) = DialogResult.OK Then
|
||||
LoadUpdateConfigFile(ofd.FileName)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub RadButton_PasteModpackConfig_Click(sender As Object, e As EventArgs) Handles RadButton_PasteModpackConfig.Click
|
||||
Dim text = Clipboard.GetText
|
||||
If text.StartsWith("http") Then
|
||||
LoadUpdateConfigFile(text)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub ButtonX_EditUpdateConfig_Click(sender As Object, e As EventArgs) Handles RadButton_EditModpackConfig.Click
|
||||
Dim frm As New FormSettings(updateConfig)
|
||||
frm.ShowDialog(Me)
|
||||
@@ -165,8 +200,15 @@ Public Class Form1
|
||||
If Directory.Exists(AppConfig.Instance.LastMinecraftProfilePath) Then
|
||||
LoadMinecraftProfile(AppConfig.Instance.LastMinecraftProfilePath)
|
||||
End If
|
||||
If File.Exists(AppConfig.Instance.LastConfigFilePath) Then
|
||||
LoadUpdateConfigFile(AppConfig.Instance.LastConfigFilePath)
|
||||
LoadUpdateConfigFile(AppConfig.Instance.LastConfigFilePath)
|
||||
End Sub
|
||||
|
||||
Private Async Sub Form1_Shown(sender As Object, e As EventArgs) Handles Me.Shown
|
||||
If Await AppUpdater.Check AndAlso RadMessageBox.Show(LangRes.MsgBox_UpdateAvailable, LangRes.MsgBox_UpdateAvailable_Title, MessageBoxButtons.YesNo, RadMessageIcon.Info) = DialogResult.Yes Then
|
||||
SetStatus(LangRes.StatusText_InstallingAppUpdate, MySymbols.icons8_software_installer_16px)
|
||||
Enabled = False
|
||||
Await AppUpdater.Install()
|
||||
Application.Restart()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
||||
26
ModpackUpdater/FormSettings.Designer.vb
generated
26
ModpackUpdater/FormSettings.Designer.vb
generated
@@ -32,6 +32,8 @@ Partial Class FormSettings
|
||||
Me.RadLabel3 = New Telerik.WinControls.UI.RadLabel()
|
||||
Me.RadLabel2 = New Telerik.WinControls.UI.RadLabel()
|
||||
Me.RadLabel1 = New Telerik.WinControls.UI.RadLabel()
|
||||
Me.RadTextBoxControl_UpdateUrl = New Telerik.WinControls.UI.RadTextBoxControl()
|
||||
Me.RadLabel4 = New Telerik.WinControls.UI.RadLabel()
|
||||
Me.Panel1.SuspendLayout()
|
||||
CType(Me.RadTextBoxControl_WebdavPassword, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.RadTextBoxControl_WebdavUsername, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
@@ -41,13 +43,16 @@ Partial Class FormSettings
|
||||
CType(Me.RadLabel3, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.RadLabel2, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.RadLabel1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.RadTextBoxControl_UpdateUrl, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.RadLabel4, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
'Panel1
|
||||
'
|
||||
resources.ApplyResources(Me.Panel1, "Panel1")
|
||||
Me.Panel1.BackColor = System.Drawing.Color.Transparent
|
||||
Me.Panel1.Controls.Add(Me.RadTextBoxControl_UpdateUrl)
|
||||
Me.Panel1.Controls.Add(Me.RadLabel4)
|
||||
Me.Panel1.Controls.Add(Me.RadTextBoxControl_WebdavPassword)
|
||||
Me.Panel1.Controls.Add(Me.RadTextBoxControl_WebdavUsername)
|
||||
Me.Panel1.Controls.Add(Me.RadTextBoxControl_WebdavURL)
|
||||
@@ -56,6 +61,7 @@ Partial Class FormSettings
|
||||
Me.Panel1.Controls.Add(Me.RadLabel3)
|
||||
Me.Panel1.Controls.Add(Me.RadLabel2)
|
||||
Me.Panel1.Controls.Add(Me.RadLabel1)
|
||||
resources.ApplyResources(Me.Panel1, "Panel1")
|
||||
Me.Panel1.Name = "Panel1"
|
||||
'
|
||||
'RadTextBoxControl_WebdavPassword
|
||||
@@ -100,6 +106,16 @@ Partial Class FormSettings
|
||||
resources.ApplyResources(Me.RadLabel1, "RadLabel1")
|
||||
Me.RadLabel1.Name = "RadLabel1"
|
||||
'
|
||||
'RadTextBoxControl_UpdateUrl
|
||||
'
|
||||
resources.ApplyResources(Me.RadTextBoxControl_UpdateUrl, "RadTextBoxControl_UpdateUrl")
|
||||
Me.RadTextBoxControl_UpdateUrl.Name = "RadTextBoxControl_UpdateUrl"
|
||||
'
|
||||
'RadLabel4
|
||||
'
|
||||
resources.ApplyResources(Me.RadLabel4, "RadLabel4")
|
||||
Me.RadLabel4.Name = "RadLabel4"
|
||||
'
|
||||
'FormSettings
|
||||
'
|
||||
resources.ApplyResources(Me, "$this")
|
||||
@@ -107,10 +123,6 @@ Partial Class FormSettings
|
||||
Me.Controls.Add(Me.Panel1)
|
||||
Me.MaximizeBox = False
|
||||
Me.Name = "FormSettings"
|
||||
'
|
||||
'
|
||||
'
|
||||
Me.RootElement.ApplyShapeToControl = True
|
||||
Me.Panel1.ResumeLayout(False)
|
||||
Me.Panel1.PerformLayout()
|
||||
CType(Me.RadTextBoxControl_WebdavPassword, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
@@ -121,6 +133,8 @@ Partial Class FormSettings
|
||||
CType(Me.RadLabel3, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.RadLabel2, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.RadLabel1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.RadTextBoxControl_UpdateUrl, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.RadLabel4, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
Me.ResumeLayout(False)
|
||||
|
||||
@@ -135,4 +149,6 @@ Partial Class FormSettings
|
||||
Friend WithEvents RadButton_SaveAs As Telerik.WinControls.UI.RadButton
|
||||
Friend WithEvents RadLabel3 As Telerik.WinControls.UI.RadLabel
|
||||
Friend WithEvents RadLabel2 As Telerik.WinControls.UI.RadLabel
|
||||
Friend WithEvents RadTextBoxControl_UpdateUrl As Telerik.WinControls.UI.RadTextBoxControl
|
||||
Friend WithEvents RadLabel4 As Telerik.WinControls.UI.RadLabel
|
||||
End Class
|
||||
|
||||
@@ -1,64 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<root>
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
@@ -117,60 +57,318 @@
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name=">>RadLabel2.ZOrder" xml:space="preserve">
|
||||
<value>6</value>
|
||||
</data>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="RadButton_SaveAs.TextImageRelation" type="System.Windows.Forms.TextImageRelation, System.Windows.Forms">
|
||||
<value>ImageBeforeText</value>
|
||||
</data>
|
||||
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="Panel1.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name=">>RadTextBoxControl_WebdavURL.ZOrder" xml:space="preserve">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="RadButton_SaveAndClose.Text" xml:space="preserve">
|
||||
<value>Save && Close</value>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="RadTextBoxControl_UpdateUrl.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Left, Right</value>
|
||||
</data>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="RadButton_SaveAndClose.TextAlignment" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||
<value>MiddleLeft</value>
|
||||
<data name="RadTextBoxControl_UpdateUrl.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>118, 87</value>
|
||||
</data>
|
||||
<data name=">>$this.Type" xml:space="preserve">
|
||||
<value>Telerik.WinControls.UI.RadForm, Telerik.WinControls.UI, Version=2022.2.510.40, Culture=neutral, PublicKeyToken=5bb2a467cbec794e</value>
|
||||
<data name="RadTextBoxControl_UpdateUrl.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>389, 22</value>
|
||||
</data>
|
||||
<data name=">>RadButton_SaveAndClose.Parent" xml:space="preserve">
|
||||
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="RadTextBoxControl_UpdateUrl.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>9</value>
|
||||
</data>
|
||||
<data name=">>RadTextBoxControl_UpdateUrl.Name" xml:space="preserve">
|
||||
<value>RadTextBoxControl_UpdateUrl</value>
|
||||
</data>
|
||||
<data name=">>RadTextBoxControl_UpdateUrl.Type" xml:space="preserve">
|
||||
<value>Telerik.WinControls.UI.RadTextBoxControl, Telerik.WinControls.UI, Culture=neutral, PublicKeyToken=5bb2a467cbec794e</value>
|
||||
</data>
|
||||
<data name=">>RadTextBoxControl_UpdateUrl.Parent" xml:space="preserve">
|
||||
<value>Panel1</value>
|
||||
</data>
|
||||
<data name=">>RadTextBoxControl_WebdavPassword.Name" xml:space="preserve">
|
||||
<value>RadTextBoxControl_WebdavPassword</value>
|
||||
<data name=">>RadTextBoxControl_UpdateUrl.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="RadButton_SaveAs.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left</value>
|
||||
<data name="RadLabel4.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 89</value>
|
||||
</data>
|
||||
<data name="RadLabel4.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>70, 18</value>
|
||||
</data>
|
||||
<data name="RadLabel4.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>8</value>
|
||||
</data>
|
||||
<data name="RadLabel4.Text" xml:space="preserve">
|
||||
<value>Update-URL:</value>
|
||||
</data>
|
||||
<data name=">>RadLabel4.Name" xml:space="preserve">
|
||||
<value>RadLabel4</value>
|
||||
</data>
|
||||
<data name=">>RadLabel4.Type" xml:space="preserve">
|
||||
<value>Telerik.WinControls.UI.RadLabel, Telerik.WinControls.UI, Culture=neutral, PublicKeyToken=5bb2a467cbec794e</value>
|
||||
</data>
|
||||
<data name=">>RadLabel4.Parent" xml:space="preserve">
|
||||
<value>Panel1</value>
|
||||
</data>
|
||||
<data name=">>RadLabel4.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="RadTextBoxControl_WebdavPassword.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Left, Right</value>
|
||||
</data>
|
||||
<data name="RadTextBoxControl_WebdavPassword.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>118, 59</value>
|
||||
</data>
|
||||
<data name="RadTextBoxControl_WebdavPassword.NullText" xml:space="preserve">
|
||||
<value>Obsulete! Do not use for new Modpack Configs!</value>
|
||||
</data>
|
||||
<data name="RadTextBoxControl_WebdavPassword.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>389, 22</value>
|
||||
</data>
|
||||
<data name="RadTextBoxControl_WebdavPassword.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>7</value>
|
||||
</data>
|
||||
<data name=">>RadTextBoxControl_WebdavPassword.Name" xml:space="preserve">
|
||||
<value>RadTextBoxControl_WebdavPassword</value>
|
||||
</data>
|
||||
<data name=">>RadTextBoxControl_WebdavPassword.Type" xml:space="preserve">
|
||||
<value>Telerik.WinControls.UI.RadTextBoxControl, Telerik.WinControls.UI, Culture=neutral, PublicKeyToken=5bb2a467cbec794e</value>
|
||||
</data>
|
||||
<data name=">>RadTextBoxControl_WebdavPassword.Parent" xml:space="preserve">
|
||||
<value>Panel1</value>
|
||||
</data>
|
||||
<data name=">>RadTextBoxControl_WebdavPassword.ZOrder" xml:space="preserve">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="RadTextBoxControl_WebdavUsername.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Left, Right</value>
|
||||
</data>
|
||||
<data name="RadTextBoxControl_WebdavUsername.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>118, 31</value>
|
||||
</data>
|
||||
<data name="RadTextBoxControl_WebdavUsername.NullText" xml:space="preserve">
|
||||
<value>Obsulete! Do not use for new Modpack Configs!</value>
|
||||
</data>
|
||||
<data name="RadTextBoxControl_WebdavUsername.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>389, 22</value>
|
||||
</data>
|
||||
<data name="RadTextBoxControl_WebdavUsername.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>6</value>
|
||||
</data>
|
||||
<data name=">>RadTextBoxControl_WebdavUsername.Name" xml:space="preserve">
|
||||
<value>RadTextBoxControl_WebdavUsername</value>
|
||||
</data>
|
||||
<data name=">>RadTextBoxControl_WebdavUsername.Type" xml:space="preserve">
|
||||
<value>Telerik.WinControls.UI.RadTextBoxControl, Telerik.WinControls.UI, Version=2022.2.510.40, Culture=neutral, PublicKeyToken=5bb2a467cbec794e</value>
|
||||
<value>Telerik.WinControls.UI.RadTextBoxControl, Telerik.WinControls.UI, Culture=neutral, PublicKeyToken=5bb2a467cbec794e</value>
|
||||
</data>
|
||||
<data name=">>RadTextBoxControl_WebdavUsername.Parent" xml:space="preserve">
|
||||
<value>Panel1</value>
|
||||
</data>
|
||||
<data name=">>RadTextBoxControl_WebdavUsername.ZOrder" xml:space="preserve">
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name="RadTextBoxControl_WebdavURL.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Left, Right</value>
|
||||
</data>
|
||||
<data name="RadTextBoxControl_WebdavURL.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>118, 3</value>
|
||||
</data>
|
||||
<data name="RadTextBoxControl_WebdavURL.NullText" xml:space="preserve">
|
||||
<value>Obsulete! Do not use for new Modpack Configs!</value>
|
||||
</data>
|
||||
<data name="RadTextBoxControl_WebdavURL.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>389, 22</value>
|
||||
</data>
|
||||
<data name="RadTextBoxControl_WebdavURL.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name=">>RadTextBoxControl_WebdavURL.Name" xml:space="preserve">
|
||||
<value>RadTextBoxControl_WebdavURL</value>
|
||||
</data>
|
||||
<data name=">>RadTextBoxControl_WebdavURL.Type" xml:space="preserve">
|
||||
<value>Telerik.WinControls.UI.RadTextBoxControl, Telerik.WinControls.UI, Culture=neutral, PublicKeyToken=5bb2a467cbec794e</value>
|
||||
</data>
|
||||
<data name=">>RadTextBoxControl_WebdavURL.Parent" xml:space="preserve">
|
||||
<value>Panel1</value>
|
||||
</data>
|
||||
<data name=">>RadTextBoxControl_WebdavURL.ZOrder" xml:space="preserve">
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name="RadButton_SaveAndClose.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Right</value>
|
||||
</data>
|
||||
<data name="RadButton_SaveAndClose.ImageAlignment" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||
<value>MiddleRight</value>
|
||||
</data>
|
||||
<data name="RadButton_SaveAndClose.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>387, 115</value>
|
||||
</data>
|
||||
<data name="RadButton_SaveAndClose.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>120, 24</value>
|
||||
</data>
|
||||
<data name="RadButton_SaveAndClose.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name="RadButton_SaveAndClose.Text" xml:space="preserve">
|
||||
<value>Save && Close</value>
|
||||
</data>
|
||||
<data name="RadButton_SaveAndClose.TextAlignment" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||
<value>MiddleLeft</value>
|
||||
</data>
|
||||
<data name="RadButton_SaveAndClose.TextImageRelation" type="System.Windows.Forms.TextImageRelation, System.Windows.Forms">
|
||||
<value>ImageBeforeText</value>
|
||||
</data>
|
||||
<data name=">>RadButton_SaveAndClose.Name" xml:space="preserve">
|
||||
<value>RadButton_SaveAndClose</value>
|
||||
</data>
|
||||
<data name=">>RadButton_SaveAndClose.Type" xml:space="preserve">
|
||||
<value>Telerik.WinControls.UI.RadButton, Telerik.WinControls.UI, Culture=neutral, PublicKeyToken=5bb2a467cbec794e</value>
|
||||
</data>
|
||||
<data name=">>RadButton_SaveAndClose.Parent" xml:space="preserve">
|
||||
<value>Panel1</value>
|
||||
</data>
|
||||
<data name=">>RadButton_SaveAndClose.ZOrder" xml:space="preserve">
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name="RadButton_SaveAs.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left</value>
|
||||
</data>
|
||||
<data name="RadButton_SaveAs.ImageAlignment" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||
<value>MiddleRight</value>
|
||||
</data>
|
||||
<data name="RadButton_SaveAs.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 115</value>
|
||||
</data>
|
||||
<data name="RadButton_SaveAs.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>100, 24</value>
|
||||
</data>
|
||||
<data name="RadButton_SaveAs.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name="RadButton_SaveAs.Text" xml:space="preserve">
|
||||
<value>Save as ...</value>
|
||||
</data>
|
||||
<data name=">>RadLabel1.ZOrder" xml:space="preserve">
|
||||
<data name="RadButton_SaveAs.TextAlignment" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||
<value>MiddleLeft</value>
|
||||
</data>
|
||||
<data name="RadButton_SaveAs.TextImageRelation" type="System.Windows.Forms.TextImageRelation, System.Windows.Forms">
|
||||
<value>ImageBeforeText</value>
|
||||
</data>
|
||||
<data name=">>RadButton_SaveAs.Name" xml:space="preserve">
|
||||
<value>RadButton_SaveAs</value>
|
||||
</data>
|
||||
<data name=">>RadButton_SaveAs.Type" xml:space="preserve">
|
||||
<value>Telerik.WinControls.UI.RadButton, Telerik.WinControls.UI, Culture=neutral, PublicKeyToken=5bb2a467cbec794e</value>
|
||||
</data>
|
||||
<data name=">>RadButton_SaveAs.Parent" xml:space="preserve">
|
||||
<value>Panel1</value>
|
||||
</data>
|
||||
<data name=">>RadButton_SaveAs.ZOrder" xml:space="preserve">
|
||||
<value>6</value>
|
||||
</data>
|
||||
<data name="RadLabel3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 61</value>
|
||||
</data>
|
||||
<data name="RadLabel3.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>100, 18</value>
|
||||
</data>
|
||||
<data name="RadLabel3.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="RadLabel3.Text" xml:space="preserve">
|
||||
<value>Webdav Password:</value>
|
||||
</data>
|
||||
<data name=">>RadLabel3.Name" xml:space="preserve">
|
||||
<value>RadLabel3</value>
|
||||
</data>
|
||||
<data name=">>RadLabel3.Type" xml:space="preserve">
|
||||
<value>Telerik.WinControls.UI.RadLabel, Telerik.WinControls.UI, Culture=neutral, PublicKeyToken=5bb2a467cbec794e</value>
|
||||
</data>
|
||||
<data name=">>RadLabel3.Parent" xml:space="preserve">
|
||||
<value>Panel1</value>
|
||||
</data>
|
||||
<data name=">>RadLabel3.ZOrder" xml:space="preserve">
|
||||
<value>7</value>
|
||||
</data>
|
||||
<data name="RadLabel2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 33</value>
|
||||
</data>
|
||||
<data name="RadLabel2.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>103, 18</value>
|
||||
</data>
|
||||
<data name="RadLabel2.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
|
||||
<value>CenterParent</value>
|
||||
<data name="RadLabel2.Text" xml:space="preserve">
|
||||
<value>Webdav Username:</value>
|
||||
</data>
|
||||
<data name=">>RadLabel2.Name" xml:space="preserve">
|
||||
<value>RadLabel2</value>
|
||||
</data>
|
||||
<data name=">>RadLabel2.Type" xml:space="preserve">
|
||||
<value>Telerik.WinControls.UI.RadLabel, Telerik.WinControls.UI, Culture=neutral, PublicKeyToken=5bb2a467cbec794e</value>
|
||||
</data>
|
||||
<data name=">>RadLabel2.Parent" xml:space="preserve">
|
||||
<value>Panel1</value>
|
||||
</data>
|
||||
<data name=">>RadLabel2.ZOrder" xml:space="preserve">
|
||||
<value>8</value>
|
||||
</data>
|
||||
<data name="RadLabel1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 5</value>
|
||||
</data>
|
||||
<data name="RadLabel1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>73, 18</value>
|
||||
</data>
|
||||
<data name="RadLabel1.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="RadLabel1.Text" xml:space="preserve">
|
||||
<value>Webdav URL:</value>
|
||||
</data>
|
||||
<data name=">>RadLabel1.Name" xml:space="preserve">
|
||||
<value>RadLabel1</value>
|
||||
</data>
|
||||
<data name=">>RadLabel1.Type" xml:space="preserve">
|
||||
<value>Telerik.WinControls.UI.RadLabel, Telerik.WinControls.UI, Culture=neutral, PublicKeyToken=5bb2a467cbec794e</value>
|
||||
</data>
|
||||
<data name=">>RadLabel1.Parent" xml:space="preserve">
|
||||
<value>Panel1</value>
|
||||
</data>
|
||||
<data name=">>RadLabel1.ZOrder" xml:space="preserve">
|
||||
<value>9</value>
|
||||
</data>
|
||||
<data name="Panel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Fill</value>
|
||||
</data>
|
||||
<data name="Panel1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>0, 0</value>
|
||||
</data>
|
||||
<data name="Panel1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>510, 142</value>
|
||||
</data>
|
||||
<data name="Panel1.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name=">>Panel1.Name" xml:space="preserve">
|
||||
<value>Panel1</value>
|
||||
</data>
|
||||
<data name=">>Panel1.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Panel, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>Panel1.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>Panel1.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<data name="$this.AutoScaleBaseSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>7, 15</value>
|
||||
</data>
|
||||
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||
<value>7, 15</value>
|
||||
</data>
|
||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>510, 142</value>
|
||||
</data>
|
||||
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAABAAYAEBAAAAEAIABoBAAAZgAAACAgAAABACAAqBAAAM4EAAAwMAAAAQAgAKglAAB2FQAAQEAAAAEA
|
||||
@@ -1940,214 +2138,16 @@
|
||||
AAAAAAAAAAAAAAAAAAAAAAAA2Aul/h9Vn+BP9E5eXwAAAABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<data name="Panel1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>510, 114</value>
|
||||
</data>
|
||||
<data name=">>RadLabel3.Type" xml:space="preserve">
|
||||
<value>Telerik.WinControls.UI.RadLabel, Telerik.WinControls.UI, Version=2022.2.510.40, Culture=neutral, PublicKeyToken=5bb2a467cbec794e</value>
|
||||
</data>
|
||||
<data name="RadLabel1.Text" xml:space="preserve">
|
||||
<value>Webdav URL:</value>
|
||||
</data>
|
||||
<data name="RadTextBoxControl_WebdavUsername.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Left, Right</value>
|
||||
</data>
|
||||
<data name="RadButton_SaveAs.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>100, 24</value>
|
||||
</data>
|
||||
<data name=">>RadLabel2.Parent" xml:space="preserve">
|
||||
<value>Panel1</value>
|
||||
</data>
|
||||
<data name="RadButton_SaveAndClose.TextImageRelation" type="System.Windows.Forms.TextImageRelation, System.Windows.Forms">
|
||||
<value>ImageBeforeText</value>
|
||||
</data>
|
||||
<data name=">>Panel1.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name="RadTextBoxControl_WebdavPassword.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>7</value>
|
||||
</data>
|
||||
<data name="RadButton_SaveAndClose.ImageAlignment" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||
<value>MiddleRight</value>
|
||||
</data>
|
||||
<data name="RadLabel2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 33</value>
|
||||
</data>
|
||||
<data name=">>Panel1.Name" xml:space="preserve">
|
||||
<value>Panel1</value>
|
||||
</data>
|
||||
<data name="RadLabel1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 5</value>
|
||||
</data>
|
||||
<data name=">>RadTextBoxControl_WebdavUsername.Parent" xml:space="preserve">
|
||||
<value>Panel1</value>
|
||||
</data>
|
||||
<data name="RadButton_SaveAndClose.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Right</value>
|
||||
</data>
|
||||
<data name=">>RadLabel1.Name" xml:space="preserve">
|
||||
<value>RadLabel1</value>
|
||||
</data>
|
||||
<data name=">>RadLabel2.Name" xml:space="preserve">
|
||||
<value>RadLabel2</value>
|
||||
</data>
|
||||
<data name=">>RadButton_SaveAs.Parent" xml:space="preserve">
|
||||
<value>Panel1</value>
|
||||
</data>
|
||||
<data name=">>RadButton_SaveAndClose.Type" xml:space="preserve">
|
||||
<value>Telerik.WinControls.UI.RadButton, Telerik.WinControls.UI, Version=2022.2.510.40, Culture=neutral, PublicKeyToken=5bb2a467cbec794e</value>
|
||||
</data>
|
||||
<data name="Panel1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>0, 0</value>
|
||||
</data>
|
||||
<data name=">>RadTextBoxControl_WebdavPassword.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name=">>RadButton_SaveAndClose.ZOrder" xml:space="preserve">
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name="RadTextBoxControl_WebdavUsername.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>118, 31</value>
|
||||
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
|
||||
<value>CenterParent</value>
|
||||
</data>
|
||||
<data name="$this.Text" xml:space="preserve">
|
||||
<value>Modpack Configs</value>
|
||||
</data>
|
||||
<data name="RadTextBoxControl_WebdavPassword.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Left, Right</value>
|
||||
</data>
|
||||
<data name="RadTextBoxControl_WebdavPassword.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>118, 59</value>
|
||||
</data>
|
||||
<data name="RadLabel2.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>112, 19</value>
|
||||
</data>
|
||||
<data name=">>RadButton_SaveAs.Name" xml:space="preserve">
|
||||
<value>RadButton_SaveAs</value>
|
||||
</data>
|
||||
<data name=">>RadButton_SaveAs.ZOrder" xml:space="preserve">
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name=">>RadTextBoxControl_WebdavURL.Type" xml:space="preserve">
|
||||
<value>Telerik.WinControls.UI.RadTextBoxControl, Telerik.WinControls.UI, Version=2022.2.510.40, Culture=neutral, PublicKeyToken=5bb2a467cbec794e</value>
|
||||
</data>
|
||||
<data name=">>RadTextBoxControl_WebdavURL.Parent" xml:space="preserve">
|
||||
<value>Panel1</value>
|
||||
</data>
|
||||
<data name=">>RadLabel3.Name" xml:space="preserve">
|
||||
<value>RadLabel3</value>
|
||||
</data>
|
||||
<data name=">>RadLabel1.Parent" xml:space="preserve">
|
||||
<value>Panel1</value>
|
||||
</data>
|
||||
<data name=">>RadTextBoxControl_WebdavUsername.Name" xml:space="preserve">
|
||||
<value>RadTextBoxControl_WebdavUsername</value>
|
||||
</data>
|
||||
<data name=">>RadTextBoxControl_WebdavPassword.Parent" xml:space="preserve">
|
||||
<value>Panel1</value>
|
||||
</data>
|
||||
<data name="RadButton_SaveAndClose.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>387, 87</value>
|
||||
</data>
|
||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>510, 114</value>
|
||||
</data>
|
||||
<data name=">>RadButton_SaveAndClose.Name" xml:space="preserve">
|
||||
<value>RadButton_SaveAndClose</value>
|
||||
</data>
|
||||
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||
<value>6, 13</value>
|
||||
</data>
|
||||
<data name="RadTextBoxControl_WebdavURL.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>389, 22</value>
|
||||
</data>
|
||||
<data name="RadButton_SaveAndClose.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>120, 24</value>
|
||||
</data>
|
||||
<data name="RadButton_SaveAs.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name="RadLabel3.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name=">>RadLabel1.Type" xml:space="preserve">
|
||||
<value>Telerik.WinControls.UI.RadLabel, Telerik.WinControls.UI, Version=2022.2.510.40, Culture=neutral, PublicKeyToken=5bb2a467cbec794e</value>
|
||||
</data>
|
||||
<data name="RadLabel1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>79, 19</value>
|
||||
</data>
|
||||
<data name="RadTextBoxControl_WebdavUsername.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>389, 22</value>
|
||||
</data>
|
||||
<data name="RadTextBoxControl_WebdavURL.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name=">>$this.Name" xml:space="preserve">
|
||||
<value>FormSettings</value>
|
||||
</data>
|
||||
<data name=">>RadLabel3.ZOrder" xml:space="preserve">
|
||||
<value>5</value>
|
||||
<data name=">>$this.Type" xml:space="preserve">
|
||||
<value>Telerik.WinControls.UI.RadForm, Telerik.WinControls.UI, Culture=neutral, PublicKeyToken=5bb2a467cbec794e</value>
|
||||
</data>
|
||||
<data name="RadButton_SaveAs.TextAlignment" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||
<value>MiddleLeft</value>
|
||||
</data>
|
||||
<data name="RadLabel3.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>109, 19</value>
|
||||
</data>
|
||||
<data name="RadLabel3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 61</value>
|
||||
</data>
|
||||
<data name="RadLabel1.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name=">>RadTextBoxControl_WebdavUsername.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="RadLabel3.Text" xml:space="preserve">
|
||||
<value>Webdav Password:</value>
|
||||
</data>
|
||||
<data name="RadButton_SaveAs.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 87</value>
|
||||
</data>
|
||||
<data name=">>RadTextBoxControl_WebdavURL.Name" xml:space="preserve">
|
||||
<value>RadTextBoxControl_WebdavURL</value>
|
||||
</data>
|
||||
<data name=">>RadLabel2.Type" xml:space="preserve">
|
||||
<value>Telerik.WinControls.UI.RadLabel, Telerik.WinControls.UI, Version=2022.2.510.40, Culture=neutral, PublicKeyToken=5bb2a467cbec794e</value>
|
||||
</data>
|
||||
<data name="RadTextBoxControl_WebdavURL.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Left, Right</value>
|
||||
</data>
|
||||
<data name=">>RadTextBoxControl_WebdavPassword.Type" xml:space="preserve">
|
||||
<value>Telerik.WinControls.UI.RadTextBoxControl, Telerik.WinControls.UI, Version=2022.2.510.40, Culture=neutral, PublicKeyToken=5bb2a467cbec794e</value>
|
||||
</data>
|
||||
<data name=">>Panel1.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>RadButton_SaveAs.Type" xml:space="preserve">
|
||||
<value>Telerik.WinControls.UI.RadButton, Telerik.WinControls.UI, Version=2022.2.510.40, Culture=neutral, PublicKeyToken=5bb2a467cbec794e</value>
|
||||
</data>
|
||||
<data name="RadButton_SaveAndClose.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name="RadTextBoxControl_WebdavUsername.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>6</value>
|
||||
</data>
|
||||
<data name=">>Panel1.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name=">>RadLabel3.Parent" xml:space="preserve">
|
||||
<value>Panel1</value>
|
||||
</data>
|
||||
<data name="RadButton_SaveAs.ImageAlignment" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||
<value>MiddleRight</value>
|
||||
</data>
|
||||
<data name="RadTextBoxControl_WebdavURL.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>118, 3</value>
|
||||
</data>
|
||||
<data name="RadLabel2.Text" xml:space="preserve">
|
||||
<value>Webdav Username:</value>
|
||||
</data>
|
||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
</root>
|
||||
@@ -1,4 +1,5 @@
|
||||
Imports ModpackUpdater.My.Resources
|
||||
Imports ModpackUpdater.Model
|
||||
Imports ModpackUpdater.My.Resources
|
||||
|
||||
Imports Telerik.WinControls.UI
|
||||
|
||||
@@ -15,12 +16,14 @@ Public Class FormSettings
|
||||
RadTextBoxControl_WebdavURL.Text = updateConfig.WebdavURL
|
||||
RadTextBoxControl_WebdavUsername.Text = updateConfig.WebdavUsername
|
||||
RadTextBoxControl_WebdavPassword.Text = updateConfig.WebdavPassword
|
||||
RadTextBoxControl_UpdateUrl.Text = updateConfig.UpdateUrl
|
||||
End Sub
|
||||
|
||||
Private Sub SaveConfig()
|
||||
updateConfig.WebdavURL = RadTextBoxControl_WebdavURL.Text.Trim
|
||||
updateConfig.WebdavUsername = RadTextBoxControl_WebdavUsername.Text.Trim
|
||||
updateConfig.WebdavPassword = RadTextBoxControl_WebdavPassword.Text
|
||||
updateConfig.UpdateUrl = RadTextBoxControl_UpdateUrl.Text
|
||||
End Sub
|
||||
|
||||
Private Sub ButtonX_SaveAs_Click(sender As Object, e As EventArgs) Handles RadButton_SaveAs.Click
|
||||
|
||||
27
ModpackUpdater/LangRes.Designer.vb
generated
27
ModpackUpdater/LangRes.Designer.vb
generated
@@ -64,6 +64,24 @@ Namespace My.Resources
|
||||
End Set
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Sucht eine lokalisierte Zeichenfolge, die A new version of this program is available. If you confirm, the update will be installed automatically. It takes just a few seconds. Continue? ähnelt.
|
||||
'''</summary>
|
||||
Friend Shared ReadOnly Property MsgBox_UpdateAvailable() As String
|
||||
Get
|
||||
Return ResourceManager.GetString("MsgBox_UpdateAvailable", resourceCulture)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Sucht eine lokalisierte Zeichenfolge, die New program version available ähnelt.
|
||||
'''</summary>
|
||||
Friend Shared ReadOnly Property MsgBox_UpdateAvailable_Title() As String
|
||||
Get
|
||||
Return ResourceManager.GetString("MsgBox_UpdateAvailable_Title", resourceCulture)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Sucht eine lokalisierte Zeichenfolge, die Everything is right and up-to-date. ähnelt.
|
||||
'''</summary>
|
||||
@@ -109,6 +127,15 @@ Namespace My.Resources
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Sucht eine lokalisierte Zeichenfolge, die Downloading program update... ähnelt.
|
||||
'''</summary>
|
||||
Friend Shared ReadOnly Property StatusText_InstallingAppUpdate() As String
|
||||
Get
|
||||
Return ResourceManager.GetString("StatusText_InstallingAppUpdate", resourceCulture)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Sucht eine lokalisierte Zeichenfolge, die Minecraft profile folder seems to be not valid. ähnelt.
|
||||
'''</summary>
|
||||
|
||||
@@ -117,6 +117,12 @@
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="MsgBox_UpdateAvailable" xml:space="preserve">
|
||||
<value>A new version of this program is available. If you confirm, the update will be installed automatically. It takes just a few seconds. Continue?</value>
|
||||
</data>
|
||||
<data name="MsgBox_UpdateAvailable_Title" xml:space="preserve">
|
||||
<value>New program version available</value>
|
||||
</data>
|
||||
<data name="StatusTest_EverythingOk" xml:space="preserve">
|
||||
<value>Everything is right and up-to-date.</value>
|
||||
</data>
|
||||
@@ -132,6 +138,9 @@
|
||||
<data name="StatusText_Installing" xml:space="preserve">
|
||||
<value>Installing...</value>
|
||||
</data>
|
||||
<data name="StatusText_InstallingAppUpdate" xml:space="preserve">
|
||||
<value>Downloading program update...</value>
|
||||
</data>
|
||||
<data name="StatusText_MinecraftProfileWarning" xml:space="preserve">
|
||||
<value>Minecraft profile folder seems to be not valid.</value>
|
||||
</data>
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<TargetFramework>net6.0-windows</TargetFramework>
|
||||
<TargetFramework>net8.0-windows</TargetFramework>
|
||||
<StartupObject>Sub Main</StartupObject>
|
||||
<UseWindowsForms>true</UseWindowsForms>
|
||||
<MyType>WindowsForms</MyType>
|
||||
<ApplicationIcon>icons8_download_from_ftp.ico</ApplicationIcon>
|
||||
<AssemblyName>Minecraft Modpack Updater</AssemblyName>
|
||||
<IncludeAllContentForSelfExtract>true</IncludeAllContentForSelfExtract>
|
||||
<Version>1.1.0.0</Version>
|
||||
<Version>1.4.1.0</Version>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@@ -71,15 +71,15 @@
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
|
||||
<PackageReference Include="UI.for.WinForms.AllControls.Net60">
|
||||
<Version>2022.2.510</Version>
|
||||
</PackageReference>
|
||||
<PackageReference Include="WebDav.Client" Version="2.8.0" />
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
||||
<PackageReference Include="Pilz.Cryptography" Version="2.0.1" />
|
||||
<PackageReference Include="Pilz.IO" Version="2.0.0" />
|
||||
<PackageReference Include="Pilz.Win32" Version="2.0.0" />
|
||||
<PackageReference Include="UI.for.WinForms.Common" Version="2024.2.514" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Pilz.Cryptography">
|
||||
<HintPath>..\SharedLibs\Pilz.Cryptography.dll</HintPath>
|
||||
</Reference>
|
||||
<ProjectReference Include="..\ModpackUpdater.GitLab\ModpackUpdater.GitLab.vbproj" />
|
||||
<ProjectReference Include="..\ModpackUpdater.Manager\ModpackUpdater.Manager.vbproj" />
|
||||
<ProjectReference Include="..\ModpackUpdater.Model\ModpackUpdater.Model.vbproj" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -1,11 +0,0 @@
|
||||
Public Class UpdateCheckResult
|
||||
|
||||
Public ReadOnly Property SyncFiles As New List(Of UpdateSyncFile)
|
||||
|
||||
Public ReadOnly Property HasUpdates As Boolean
|
||||
Get
|
||||
Return SyncFiles.Where(Function(n) n.SyncAction <> UpdateSyncAction.None).Any
|
||||
End Get
|
||||
End Property
|
||||
|
||||
End Class
|
||||
@@ -1,21 +0,0 @@
|
||||
Imports System.IO
|
||||
|
||||
Imports Newtonsoft.Json.Linq
|
||||
|
||||
Imports Pilz.Cryptography
|
||||
|
||||
Public Class UpdateConfig
|
||||
|
||||
Public Property WebdavURL As SecureString
|
||||
Public Property WebdavUsername As SecureString
|
||||
Public Property WebdavPassword As SecureString
|
||||
|
||||
Public Sub SaveToFile(filePath As string)
|
||||
File.WriteAllText(filePath, JObject.FromObject(Me).ToString)
|
||||
End Sub
|
||||
|
||||
Public Shared Function LoadFromFile(filePath As string)
|
||||
Return JObject.Parse(File.ReadAllText(filePath)).ToObject(Of UpdateConfig)
|
||||
End Function
|
||||
|
||||
End Class
|
||||
@@ -1,6 +0,0 @@
|
||||
Public Enum UpdateSyncAction
|
||||
None
|
||||
NewFile
|
||||
RemovedFile
|
||||
UpdatedFile = 4
|
||||
End Enum
|
||||
@@ -1,7 +1,3 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<packageSources>
|
||||
<add key="Telerik UI for WinForms 2022.2.510.0" value="C:\Program Files (x86)\Progress\Telerik UI for WinForms R2 2022\Bin60\NuGet" />
|
||||
<add key="Telerik UI for WinForms UI.for.WinForms.AllControls.Net60.2022.2.510" value="C:\Program Files (x86)\Progress\Telerik UI for WinForms R2 2022\Bin60\NuGet" />
|
||||
</packageSources>
|
||||
</configuration>
|
||||
Binary file not shown.
Reference in New Issue
Block a user