Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

BasicStarter - Czyli nigdy więcej problemów z uruchamianiem minecrafta


matiserv89

Rekomendowane odpowiedzi

Opublikowano

<


<


<


<


<


<


<


<


<


<


<


<


<


<


<


<


<


Elo.


Daje tu wam urywek kodu z mojego launchera [Xeros launcher]


Musisz wkleić to w klasę


 



Imports System.IO
Imports System.Net
Imports Ionic.Zip
Imports Newtonsoft.Json
Imports Newtonsoft.Json.Linq
'/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/'
' '
' Easy launcher class by B4GU5(Matiserv) '
' License: GNU General Public License '
' Note: Please do Not remove only the author of the launcher! ) '
' Starts any version: alpha -> snapshot Have fun! '
' Needs NuGet packages: DotNetZip, Newtonsoft.Json '
' '
'/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/'
Public Class BasicStarter
Dim api As String = "http://xeroslauncher.xaa.pl"
Dim Libraries As New List(Of List(Of String))
Dim client As WebClient = New WebClient
Dim MCVersion As String = "1.0"
Dim MCDirectory As String
Dim MCUsername As String = "Error_in_Xeros_BS_Username_is_blank"
Dim MCAssetsVersion As String
Dim MCMainClass As String
Dim MCAssetsDir As String
Dim MCAssetsLegacyDir As String
Dim MCMinecraftArguments As String
Dim MCUUID As String = "Error_in_Xeros_BS_UUID_is_blank"
Dim MCAccessToken As String = "Error_in_Xeros_BS_AccessToken_is_blank"
Dim MCMinecraftArgumentsConv As String
Dim Javapath As String
Dim MCArguments As String
Dim wp As String = "vanilla"
Dim ForgeVersion As String
'/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/'
' '
' Easy launcher class by B4GU5(Matiserv) '
' License: GNU General Public License '
' Note: Please do Not remove only the author of the launcher! ) '
' Starts any version: alpha -> snapshot Have fun! '
' '
'/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/'
Public Async Function StartMinecraft(mcv As String, mcun As String, mcid As String, mcacctok As String, mcdirec As String, jp As String, arg As String, wrapper_type As String, fgv As String) As Task
MCVersion = mcv
MCUsername = mcun
MCUUID = mcid
MCAccessToken = mcacctok
MCDirectory = mcdirec
Javapath = jp
MCArguments = arg
MCAssetsDir = MCDirectory & "\assets"
MCAssetsLegacyDir = MCDirectory & "\assets\virtual\legacy"
ForgeVersion = fgv
wp = wrapper_type
If wp = "vanilla" Then
Await getJSON()
Convert()
Await getAssets()
Await getLibraries()
Await Launch()
ElseIf wp = "forge" Then
Await getJSON()
Await getForgeJSON()
Convert()
Await getAssets()
Await getLibraries()
Await getForgeLibraries()
Await Launch()
End If

End Function
Public Class MCAssets
Public hash As String
Public size As String
Public all As String
End Class
Public AssetsList As New List(Of String)
Private Async Function getJSON() As Task
If (Not System.IO.Directory.Exists(MCDirectory & "\versions\" & MCVersion)) Then
System.IO.Directory.CreateDirectory(MCDirectory & "\versions\" & MCVersion)
End If
If Not File.Exists(MCDirectory & "\versions\" & MCVersion & "\" & MCVersion & ".json") Then
Await client.DownloadFileTaskAsync(New Uri("https://s3.amazonaws.com/Minecraft.Download/versions/" & MCVersion & "/" & MCVersion & ".json"), MCDirectory & "\versions\" & MCVersion & "\" & MCVersion & ".json")
End If
Dim FilePath As String = My.Computer.FileSystem.ReadAllText(MCDirectory & "\versions\" & MCVersion & "\" & MCVersion & ".json")
'Parses the your json file.

Dim FileData = JObject.Parse(FilePath)
MCMainClass = FileData.SelectToken("mainClass")
MCMinecraftArguments = FileData.SelectToken("minecraftArguments")
MCAssetsVersion = FileData.SelectToken("assets")
End Function
Dim forgedownloadlink As String
Private Async Function getForgeJSON() As Task
If (Not System.IO.Directory.Exists(MCDirectory & "\versions\" & MCVersion)) Then
System.IO.Directory.CreateDirectory(MCDirectory & "\versions\" & MCVersion)
End If
If Not File.Exists(MCDirectory & "\versions\" & MCVersion & "\" & MCVersion & "-forge.json") Then
Await client.DownloadFileTaskAsync(New Uri(api & "/api/forge/" & MCVersion & "|" & ForgeVersion & ".json"), MCDirectory & "\versions\" & MCVersion & "\" & MCVersion & "-forge.json")
End If
Dim FilePath As String = My.Computer.FileSystem.ReadAllText(MCDirectory & "\versions\" & MCVersion & "\" & MCVersion & "-forge.json")
'Parses the your json file.

Dim FileData = JObject.Parse(FilePath)
MCMainClass = FileData.SelectToken("mainClass")
MCMinecraftArguments = FileData.SelectToken("minecraftArguments")
forgedownloadlink = FileData.SelectToken("download")
End Function
Private Async Function getLibraries() As Task
Console.WriteLine("Started download libraries")

Dim FilePath As String = MCDirectory & "\versions\" & MCVersion & "\" & MCVersion & ".json"
'Parses the your json file.
Dim FileData = JObject.Parse(My.Computer.FileSystem.ReadAllText(FilePath))
Clipboard.SetText(FileData("libraries").ToString)
For Each Library In FileData("libraries")

Dim Natives As String
Dim WithSlashes As String
Dim Link As String
Dim ExtractedLibrary As String
Dim LibName As String
Dim Version As String
Dim Name As String
Dim Package As String
If wp = "vanilla" Then
If Not MCAssetsVersion = "legacy" Then
If CStr(Library.ToString).Contains("natives-windows") AndAlso Not CStr(Library.ToString).Contains("natives-windows-${arch}") Then
Console.WriteLine("Scanning natives: " & Library("name").ToString)
Natives = "true"
ExtractedLibrary = CStr(Library("name"))
Link = CStr(Library("downloads").SelectToken("classifiers").SelectToken("natives-windows").SelectToken("url"))
WithSlashes = CStr(Library("downloads").SelectToken("classifiers").SelectToken("natives-windows").SelectToken("path"))
Dim LibrarySplitted() As String = ExtractedLibrary.Split(CChar(":"))
Name = LibrarySplitted(1) '<name>
Version = LibrarySplitted(2) '<version>
LibName = Name & "-" & Version & "-natives-windows.jar"

ElseIf CStr(Library.ToString).Contains("natives-windows-${arch}") Then
Natives = "true-arch"
Console.WriteLine("Scanning natives: " & Library("name").ToString)
If IntPtr.Size = 8 Then
' 64 bit machine
ExtractedLibrary = CStr(Library("name"))
Link = CStr(Library("downloads").SelectToken("classifiers").SelectToken("natives-windows-32").SelectToken("url"))
WithSlashes = CStr(Library("downloads").SelectToken("classifiers").SelectToken("natives-windows-64").SelectToken("path"))
Dim LibrarySplitted() As String = ExtractedLibrary.Split(CChar(":"))
Name = LibrarySplitted(1) '<name>
Version = LibrarySplitted(2) '<version>
LibName = Name & "-" & Version & "-natives-windows-64.jar"

ElseIf IntPtr.Size = 4 Then
' 32 bit machine
ExtractedLibrary = CStr(Library("name"))
Link = CStr(Library("downloads").SelectToken("classifiers").SelectToken("natives-windows-64").SelectToken("url"))
WithSlashes = CStr(Library("downloads").SelectToken("classifiers").SelectToken("natives-windows-32").SelectToken("path"))
Dim LibrarySplitted() As String = ExtractedLibrary.Split(CChar(":"))
Name = LibrarySplitted(1) '<name>
Version = LibrarySplitted(2) '<version>
LibName = Name & "-" & Version & "-natives-windows-32.jar"

End If
Else
If wp = "vanilla" Then
Natives = "false"
ExtractedLibrary = CStr(Library("name"))
Link = CStr(Library("downloads").SelectToken("artifact").SelectToken("url"))
WithSlashes = CStr(Library("downloads").SelectToken("artifact").SelectToken("path"))
Dim LibrarySplitted() As String = ExtractedLibrary.Split(CChar(":"))
Name = LibrarySplitted(1) '<name>
Version = LibrarySplitted(2) '<version>
LibName = Name & "-" & Version & ".jar"

End If
End If
Else
If CStr(Library.ToString).Contains("natives-windows") AndAlso Not CStr(Library.ToString).Contains("natives-windows-${arch}") Then
Console.WriteLine("Scanning natives: " & Library("name").ToString)
Natives = "true"
ExtractedLibrary = CStr(Library("name"))
Dim LibrarySplitted() As String = ExtractedLibrary.Split(CChar(":"))
Package = LibrarySplitted(0).Replace(".", "\") '<package>
Name = LibrarySplitted(1).Replace(".", "\") '<name>
Version = LibrarySplitted(2) '<version>
LibName = Name & "-" & Version
WithSlashes = CreateWithSlashesString(Package, Name, Version) & "-natives-windows.jar"
Link = CreateLink(Package, Name, Version) & "-natives-windows.jar"
ElseIf CStr(Library.ToString).Contains("natives-windows-${arch}") Then
Natives = "true-arch"
Console.WriteLine("Scanning natives: " & Library("name").ToString)
If IntPtr.Size = 8 Then
' 64 bit machine
ExtractedLibrary = CStr(Library("name"))

Dim LibrarySplitted() As String = ExtractedLibrary.Split(CChar(":"))
Package = LibrarySplitted(0).Replace(".", "\") '<package>
Name = LibrarySplitted(1).Replace(".", "\") '<name>
Version = LibrarySplitted(2) '<version>
LibName = Name & "-" & Version
WithSlashes = CreateWithSlashesString(Package, Name, Version) & "-natives-windows-64.jar"
Link = CreateLink(Package, Name, Version) & "-natives-windows-64.jar"
ElseIf IntPtr.Size = 4 Then

' 32 bit machine
ExtractedLibrary = CStr(Library("name"))
Dim LibrarySplitted() As String = ExtractedLibrary.Split(CChar(":"))
Package = LibrarySplitted(0).Replace(".", "\") '<package>
Name = LibrarySplitted(1).Replace(".", "\") '<name>
Version = LibrarySplitted(2) '<version>
LibName = Name & "-" & Version
WithSlashes = CreateWithSlashesString(Package, Name, Version) & "-natives-windows-32.jar"
Link = CreateLink(Package, Name, Version) & "-natives-windows-32.jar"
End If
Else

ExtractedLibrary = CStr(Library("name"))
Dim LibrarySplitted() As String = ExtractedLibrary.Split(CChar(":"))
Package = LibrarySplitted(0).Replace(".", "\") '<package>
Name = LibrarySplitted(1).Replace(".", "\") '<name>
Version = LibrarySplitted(2) '<version>
LibName = Name & "-" & Version

WithSlashes = CreateWithSlashesString(Package, Name, Version) & ".jar"
Link = CreateLink(Package, Name, Version) & ".jar"
End If
End If
Dim AllTheForms As New List(Of String)
AllTheForms.Add(ExtractedLibrary)
AllTheForms.Add(WithSlashes)
AllTheForms.Add(Link)
AllTheForms.Add(Natives)
AllTheForms.Add(LibName)

Libraries.Add(AllTheForms)
ElseIf wp = "forge" Then
If Not MCAssetsVersion = "legacy" Then
If CStr(Library.ToString).Contains("natives-windows") AndAlso Not CStr(Library.ToString).Contains("natives-windows-${arch}") Then
Console.WriteLine("Scanning natives: " & Library("name").ToString)
Natives = "true"
ExtractedLibrary = CStr(Library("name"))
Link = CStr(Library("downloads").SelectToken("classifiers").SelectToken("natives-windows").SelectToken("url"))
WithSlashes = CStr(Library("downloads").SelectToken("classifiers").SelectToken("natives-windows").SelectToken("path"))
Dim LibrarySplitted() As String = ExtractedLibrary.Split(CChar(":"))
Name = LibrarySplitted(1) '<name>
Version = LibrarySplitted(2) '<version>
LibName = Name & "-" & Version & "-natives-windows.jar"
Dim AllTheForms As New List(Of String)
AllTheForms.Add(ExtractedLibrary)
AllTheForms.Add(WithSlashes)
AllTheForms.Add(Link)
AllTheForms.Add(Natives)
AllTheForms.Add(LibName)

Libraries.Add(AllTheForms)
ElseIf CStr(Library.ToString).Contains("natives-windows-${arch}") Then
Natives = "true-arch"
Console.WriteLine("Scanning natives: " & Library("name").ToString)
If IntPtr.Size = 8 Then
' 64 bit machine
ExtractedLibrary = CStr(Library("name"))
Link = CStr(Library("downloads").SelectToken("classifiers").SelectToken("natives-windows-32").SelectToken("url"))
WithSlashes = CStr(Library("downloads").SelectToken("classifiers").SelectToken("natives-windows-64").SelectToken("path"))
Dim LibrarySplitted() As String = ExtractedLibrary.Split(CChar(":"))
Name = LibrarySplitted(1) '<name>
Version = LibrarySplitted(2) '<version>
LibName = Name & "-" & Version & "-natives-windows-64.jar"
Dim AllTheForms As New List(Of String)
AllTheForms.Add(ExtractedLibrary)
AllTheForms.Add(WithSlashes)
AllTheForms.Add(Link)
AllTheForms.Add(Natives)
AllTheForms.Add(LibName)

Libraries.Add(AllTheForms)
ElseIf IntPtr.Size = 4 Then
' 32 bit machine
ExtractedLibrary = CStr(Library("name"))
Link = CStr(Library("downloads").SelectToken("classifiers").SelectToken("natives-windows-64").SelectToken("url"))
WithSlashes = CStr(Library("downloads").SelectToken("classifiers").SelectToken("natives-windows-32").SelectToken("path"))
Dim LibrarySplitted() As String = ExtractedLibrary.Split(CChar(":"))
Name = LibrarySplitted(1) '<name>
Version = LibrarySplitted(2) '<version>
LibName = Name & "-" & Version & "-natives-windows-32.jar"
Dim AllTheForms As New List(Of String)
AllTheForms.Add(ExtractedLibrary)
AllTheForms.Add(WithSlashes)
AllTheForms.Add(Link)
AllTheForms.Add(Natives)
AllTheForms.Add(LibName)

Libraries.Add(AllTheForms)
End If
End If
Else
If CStr(Library.ToString).Contains("natives-windows") AndAlso Not CStr(Library.ToString).Contains("natives-windows-${arch}") Then
Console.WriteLine("Scanning natives: " & Library("name").ToString)
Natives = "true"
ExtractedLibrary = CStr(Library("name"))
Dim LibrarySplitted() As String = ExtractedLibrary.Split(CChar(":"))
Package = LibrarySplitted(0).Replace(".", "\") '<package>
Name = LibrarySplitted(1).Replace(".", "\") '<name>
Version = LibrarySplitted(2) '<version>
LibName = Name & "-" & Version
WithSlashes = CreateWithSlashesString(Package, Name, Version) & "-natives-windows.jar"
Link = CreateLink(Package, Name, Version) & "-natives-windows.jar"
Dim AllTheForms As New List(Of String)
AllTheForms.Add(ExtractedLibrary)
AllTheForms.Add(WithSlashes)
AllTheForms.Add(Link)
AllTheForms.Add(Natives)
AllTheForms.Add(LibName)

Libraries.Add(AllTheForms)
ElseIf CStr(Library.ToString).Contains("natives-windows-${arch}") Then
Natives = "true-arch"
Console.WriteLine("Scanning natives: " & Library("name").ToString)
If IntPtr.Size = 8 Then
' 64 bit machine
ExtractedLibrary = CStr(Library("name"))

Dim LibrarySplitted() As String = ExtractedLibrary.Split(CChar(":"))
Package = LibrarySplitted(0).Replace(".", "\") '<package>
Name = LibrarySplitted(1).Replace(".", "\") '<name>
Version = LibrarySplitted(2) '<version>
LibName = Name & "-" & Version
WithSlashes = CreateWithSlashesString(Package, Name, Version) & "-natives-windows-64.jar"
Link = CreateLink(Package, Name, Version) & "-natives-windows-64.jar"
Dim AllTheForms As New List(Of String)
AllTheForms.Add(ExtractedLibrary)
AllTheForms.Add(WithSlashes)
AllTheForms.Add(Link)
AllTheForms.Add(Natives)
AllTheForms.Add(LibName)

Libraries.Add(AllTheForms)
ElseIf IntPtr.Size = 4 Then

' 32 bit machine
ExtractedLibrary = CStr(Library("name"))
Dim LibrarySplitted() As String = ExtractedLibrary.Split(CChar(":"))
Package = LibrarySplitted(0).Replace(".", "\") '<package>
Name = LibrarySplitted(1).Replace(".", "\") '<name>
Version = LibrarySplitted(2) '<version>
LibName = Name & "-" & Version
WithSlashes = CreateWithSlashesString(Package, Name, Version) & "-natives-windows-32.jar"
Link = CreateLink(Package, Name, Version) & "-natives-windows-32.jar"
Dim AllTheForms As New List(Of String)
AllTheForms.Add(ExtractedLibrary)
AllTheForms.Add(WithSlashes)
AllTheForms.Add(Link)
AllTheForms.Add(Natives)
AllTheForms.Add(LibName)

Libraries.Add(AllTheForms)
End If
End If
End If
End If


Next

For Each Library In Libraries

'Library(0) corresponds to the name of the library.
'Library(1) corresponds to the "WithSlashes" string of the library.
'Library(2) corresponds to the link of the library.
'Library(3) says if the file is natives.
'Library(4) Name of library.

'MsgBox(Library(0))
Dim MCLibFile = MCDirectory & "\libraries\" & Library(1).ToString.Replace("/", "\")
Dim MCLibDir = MCDirectory & "\libraries\" & Library(1).ToString.Replace("/", "\").Replace(Library(4).ToString, "").Replace(".jar", "")

If Not File.Exists(MCLibFile) Then

Console.WriteLine("Started download - " & Library(4))
If (Not System.IO.Directory.Exists(MCLibDir)) Then
System.IO.Directory.CreateDirectory(MCLibDir)
End If

Await client.DownloadFileTaskAsync(New Uri(Library(2)), MCLibFile)
Console.WriteLine("completed download - " & Library(4))
End If
Next
Console.WriteLine("Completed download libraries")
End Function
Private Async Function getForgeLibraries() As Task
Console.WriteLine("Started download libraries")

Dim FilePath As String = MCDirectory & "\versions\" & MCVersion & "\" & MCVersion & "-forge.json"
'Parses the your json file.
Dim FileData = JObject.Parse(My.Computer.FileSystem.ReadAllText(FilePath))
Clipboard.SetText(FileData("libraries").ToString)
For Each Library In FileData("libraries")

Dim Natives As String
Dim WithSlashes As String
Dim Link As String
Dim ExtractedLibrary As String
Dim LibName As String
Dim Version As String
Dim Name As String
Dim Package As String
Console.WriteLine("Scanning libraries: " & Library("name").ToString.Replace("|", "\"))
Natives = "false"
WithSlashes = CStr(Library("name").ToString.Replace("|", "\"))






Dim AllTheForms As New List(Of String)
AllTheForms.Add(ExtractedLibrary)
AllTheForms.Add(WithSlashes)
AllTheForms.Add("without link")
AllTheForms.Add(Natives)
AllTheForms.Add(LibName)


Libraries.Add(AllTheForms)
Next
For Each Library In Libraries
'Library(0) corresponds to the name of the library.
'Library(1) corresponds to the "WithSlashes" string of the library.
'Library(2) corresponds to the link of the library.
'Library(3) says if the file is natives.
'Library(4) Name of library.
Dim MCLibFile = MCDirectory & "\libraries\" & Library(1).Replace("/", "\")
If (Not System.IO.Directory.Exists(MCDirectory + "\downloads")) Then
System.IO.Directory.CreateDirectory(MCDirectory + "\downloads")
End If
If Not File.Exists(MCLibFile) Then
Console.WriteLine("Started download - " & MCDirectory + "\downloads")

Await client.DownloadFileTaskAsync(forgedownloadlink, MCDirectory + "\downloads\" & MCVersion & "-forge.zip")
Dim ZipToUnpack As String = MCDirectory + "\downloads\" & MCVersion & "-forge.zip"
Dim UnpackDirectory As String = MCDirectory
Using zip1 As ZipFile = ZipFile.Read(ZipToUnpack)
Dim e As ZipEntry
' here, we extract every entry, but we could extract conditionally,
' based on entry name, size, date, checkbox status, etc.
For Each e In zip1
e.Extract(UnpackDirectory, ExtractExistingFileAction.OverwriteSilently)
Next
End Using
Console.WriteLine("completed download - " & MCDirectory + "\downloads")
End If
Next
Console.WriteLine("Completed download libraries")
End Function
Private Function CreateWithSlashesString(Package As String, Name As String, Version As String) As String
Return Package & "/" & Name & "/" & Version & "/" & Name & "-" & Version
End Function

'Creates a web link to the library.
Private Function CreateLink(Package As String, Name As String, Version As String) As String
Return ("https://libraries.minecraft.net/" & Package & "/" & Name & "/" & Version & "/" & Name & "-" & Version)
End Function
Private Async Function getAssets() As Task
Console.WriteLine("Started download assets")
If Not Directory.Exists(MCDirectory + "\assets\indexes") Then
Directory.CreateDirectory(MCDirectory + "\assets\indexes")
End If
Dim client = New WebClient()
Await client.DownloadFileTaskAsync(New Uri(String.Format("http://s3.amazonaws.com/Minecraft.Download/indexes/{0}.json", MCAssetsVersion)), String.Format(MCDirectory + "\assets\indexes\{0}.json", MCAssetsVersion))
Dim reader As New StreamReader(MCDirectory + "\assets\indexes\" + MCAssetsVersion + ".json")
Dim assets As String = reader.ReadToEnd()
reader.Close()
Dim assetsObject = JsonConvert.DeserializeObject(Of JObject)(assets)
Dim allAssets = (From i In assetsObject("objects").Children() Select New MCAssets() With {.hash = i.First.Value(Of String)("hash"), .size = i.First.Value(Of String)("size"), .all = i.ToString}).ToList()
For Each i In allAssets
Dim MCAssHash As String = i.hash
Dim MCAssSize As String = i.size
Dim MCAssName As String = i.all.Replace("""", "").Replace(":", "").Replace(" ", "").Replace("{", "").Replace("}", "").Replace(MCAssHash, "").Replace(MCAssSize, "").Replace("hash", "").Replace("size", "").Replace(",", "").Replace("/", "\")

Dim MCAssFile As String = MCAssetsDir & "\objects\" & MCAssHash.ToString.Substring(0, If(MCAssHash.ToString.Length >= 2, 2, MCAssHash.ToString.Length)) & "\" & MCAssHash.ToString
Dim MCAssDir As String = MCAssetsDir & "\objects\" & MCAssHash.ToString.Substring(0, If(MCAssHash.ToString.Length >= 2, 2, MCAssHash.ToString.Length))
Dim MCAssNameFile As String = MCAssetsDir & "\virtual\legacy\" & MCAssName
If Not File.Exists(MCAssFile) Then

Console.WriteLine("Started download - " & MCAssHash.ToString)
If Not Directory.Exists(MCAssDir) Then
Directory.CreateDirectory(MCAssDir)
End If

Await client.DownloadFileTaskAsync(New Uri("http://resources.download.minecraft.net/" & MCAssHash.ToString.Substring(0, If(MCAssHash.ToString.Length >= 2, 2, MCAssHash.ToString.Length)) & "/" & MCAssHash.ToString), MCAssFile)

Console.WriteLine("completed download - " & MCAssHash.ToString)
End If
If Not File.Exists(MCAssNameFile) Then
My.Computer.FileSystem.CopyFile(MCAssFile, MCAssNameFile)
End If
Next
Console.WriteLine("Completed download assets")
End Function
'/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/'
' '
' Easy launcher class by B4GU5(Matiserv) '
' License: GNU General Public License '
' Note: Please do Not remove only the author of the launcher! ) '
' Starts any version: alpha -> snapshot Have fun! '
' '
'/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/'
Private Async Function Launch() As Task
Console.WriteLine("Launching...")
If Not File.Exists(MCDirectory + "\versions\" + MCVersion + "\" + MCVersion + ".jar") Then
Console.WriteLine("Started download minecraft - " + MCVersion)
Await client.DownloadFileTaskAsync(New Uri("https://s3.amazonaws.com/Minecraft.Download/versions/" + MCVersion + "/" + MCVersion + ".jar"), MCDirectory + "\versions\" + MCVersion + "\" + MCVersion + ".jar")
Console.WriteLine("Completed download minecraft - " + MCVersion)
End If

Dim Gamelibraries As String = Nothing
For Each Library In Libraries
'Library(0) corresponds to the name of the library.
'Library(1) corresponds to the "WithSlashes" string of the library.
'Library(2) corresponds to the link of the library.
'Library(3) says if the file is natives.
'Library(4) Name of library.

If Library(3) = "true" Or Library(3) = "true-arch" Then
Try
Console.WriteLine(MCDirectory & "\libraries\" & Library(1).Replace("/", "\"))
Dim MCLibFile = MCDirectory & "\libraries\" & Library(1).Replace("/", "\")
Dim ZipToUnpack As String = MCLibFile
Dim UnpackDirectory As String = MCDirectory + "\versions\" + MCVersion + "\natives"
Using zip1 As ZipFile = ZipFile.Read(ZipToUnpack)
Dim e As ZipEntry
' here, we extract every entry, but we could extract conditionally,
' based on entry name, size, date, checkbox status, etc.
For Each e In zip1
e.Extract(UnpackDirectory, ExtractExistingFileAction.OverwriteSilently)
Next
End Using
Catch

End Try
ElseIf Not Library(3) = "true" Or Not Library(3) = "true-arch" Then
Dim MCLibFile = MCDirectory & "\libraries\" & Library(1).Replace("/", "\")
'Dim MCLibDir = MCDirectory & "\libraries\" & Library(1).Replace("/", "\").Replace(Library(4), "")
Gamelibraries += MCLibFile + ";"
End If
Next

Dim p As New Process()

p.StartInfo.FileName = Javapath
p.StartInfo.Arguments = " " & MCArguments & " -Djava.library.path=" + MCDirectory + "\versions\" + MCVersion + "\natives -cp " + Gamelibraries.ToString() + MCDirectory + "\versions\" + MCVersion + "\" + MCVersion + ".jar " + MCMainClass + " " + MCMinecraftArgumentsConv
p.StartInfo.WorkingDirectory = MCDirectory
p.StartInfo.CreateNoWindow = False
p.StartInfo.UseShellExecute = False
p.EnableRaisingEvents = True
Application.DoEvents()
p.StartInfo.RedirectStandardError = True
p.StartInfo.RedirectStandardOutput = True
p.Start()
p.BeginErrorReadLine()
p.BeginOutputReadLine()
End Function

Private Function Convert()
Dim pattern As String = MCMinecraftArguments
Dim str1 As String = "${auth_player_name}"
Dim str2 As String = "${version_name}"
Dim str3 As String = "${game_directory}"
Dim str4 As String = "${assets_root}"
Dim str5 As String = "${game_assets}"
Dim str6 As String = "${assets_index_name}"
Dim str7 As String = "${auth_uuid}"
Dim str8 As String = "${auth_access_token}"
Dim str9 As String = "${user_properties}"
Dim str10 As String = "${user_type}"
Dim str11 As String = "${auth_session}"
Dim str12 As String = "${version_type}"
MCMinecraftArgumentsConv = pattern.Replace(str1, MCUsername).Replace(str2, MCDirectory).Replace(str3, MCVersion).Replace(str4, MCAssetsDir).Replace(str5, MCAssetsLegacyDir).Replace(str6, MCAssetsVersion).Replace(str7, MCUUID).Replace(str8, MCAccessToken).Replace(str9, "{}").Replace(str10, "Mojang").Replace(str11, MCAccessToken).Replace(str12, "Started_by_XerosLauncher")
End Function
'/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/'
' '
' Easy launcher class by B4GU5(Matiserv) '
' License: GNU General Public License '
' Note: Please do Not remove only the author of the launcher! ) '
' Starts any version: alpha -> snapshot Have fun! '
' '
'/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/'
End Class
 

 


Tworzymy nową klasę


nazywamy ją BasicStarter


wklejamy ten kod u góry


później po prostu trzeba go wywołać ;)


Jak go użyć?


Proste.



Dim play As New BasicStarter
play.StartMinecraft("version", "username", "uuid", "accestoken", "minecraft_dir", "javapath", "optional_argument", "vanilla_or_forge", "forge_version")

Opublikowano

a o co w tym chodzi ? ja używam shinigmy 3v100 jak to działa lepiej opisz

Z tego co rozumiem, autor udostępnia kawałek kodu launchera, aby ułatwić pisanie launcherów innym (mogę się mylić)

undefined-Imgur-ezgif.com-resize.gif

i do graphics design

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...