VB.net:
- Imports System.IO
- Public Structure MRunmcreturn
- Public libraries() As String
- Public bat As String
- Public suc As Boolean
- Public bug As String
- Public bugmsg As String
- End Structure
- Public Class MRunmc
- Public Function MRunmc(ByVal name, ByVal nc, ByVal versions)
- Try
- Dim libraries2(100) As String
- Dim MRunmcreturn As New MRunmcreturn
- Dim mi As Integer = 0
- Dim libraries1 As Integer = 0
- Dim a As String
- Dim json As String
- Dim json1 As String()
- a = "java -Xmx" + nc + "m -Dfml.ignoreInvalidMinecraftCertificates=true -Dfml.ignorePatchDiscrepancies=true -Djava.library.path=" + Chr(34) + ".minecraft\natives" + Chr(34) + " -cp " + Chr(34)
- json = File.ReadAllText(Directory.GetCurrentDirectory() + "\.minecraft\versions" + versions + "" + versions + ".json")
- json1 = json.Split(New String() {Chr(34)}, StringSplitOptions.RemoveEmptyEntries)
- For Each m As String In json1
- If m = "name" Then
- mi = 4
- End If
- If mi > 0 Then
- mi = mi - 1
- End If
- If mi = 1 And m.Contains(".") And m.Contains(":") Then
- Dim mlj As String
- Dim mname As String
- Dim mmh As Integer = InStr(m, ":")
- mlj = Left(m, mmh - 1)
- mlj = Directory.GetCurrentDirectory() + "\.minecraft\libraries" + mlj.Replace(".", "")
- mname = Right(m, m.Length - mmh + 1)
- mlj = mlj + mname.Replace(":", "") + ""
- mname = Right(m, m.Length - mmh)
- mname = mname.Replace(":", "-") + ".jar;"
- libraries2(libraries1) = mlj.Replace(Directory.GetCurrentDirectory() + "\.minecraft\libraries", "") + mname.Replace(";", "")
- libraries1 = libraries1 + 1
- a = a + mlj + mname
- End If
- Next
- MRunmcreturn.libraries = libraries2
-
- 'For Each m1 As String In
- ' My.Computer.FileSystem.GetDirectories(Directory.GetCurrentDirectory() + "\.minecraft\libraries")
- ' For Each m2 As String In
- ' My.Computer.FileSystem.GetDirectories(m1)
- ' For Each m3 As String In
- ' My.Computer.FileSystem.GetDirectories(m2)
- ' For Each m4 As String In
- ' My.Computer.FileSystem.GetFiles(m3)
- ' If json1.Contains(Path.GetFileNameWithoutExtension(m4)) Then
- ' a = a + m4 + ";"
- ' End If
- ' Next
- ' For Each m5 As String In
- ' My.Computer.FileSystem.GetDirectories(m3)
- ' For Each m6 As String In
- ' My.Computer.FileSystem.GetFiles(m5)
- ' If json1.Contains(Path.GetFileNameWithoutExtension(m6)) Then
- ' a = a + m6 + ";"
- ' End If
- ' Next
- ' For Each m7 As String In
- ' My.Computer.FileSystem.GetDirectories(m5)
- ' For Each m8 As String In
- ' My.Computer.FileSystem.GetFiles(m7)
- ' If json1.Contains(Path.GetFileNameWithoutExtension(m8)) Then
- ' a = a + m8 + ";"
- ' End If
- ' Next
- ' For Each m9 As String In
- ' My.Computer.FileSystem.GetDirectories(m7)
- ' For Each m10 As String In
- ' My.Computer.FileSystem.GetFiles(m9)
- ' If json1.Contains(Path.GetFileNameWithoutExtension(m10)) Then
- ' a = a + m10 + ";"
- ' End If
- ' Next
- ' For Each m11 As String In
- ' My.Computer.FileSystem.GetDirectories(m9)
- ' For Each m12 As String In
- ' My.Computer.FileSystem.GetFiles(m11)
- ' If json1.Contains(Path.GetFileNameWithoutExtension(m12)) Then
- ' a = a + m12 + ";"
- ' End If
- ' Next
- ' For Each m14 As String In
- ' My.Computer.FileSystem.GetDirectories(m11)
- ' For Each m13 As String In
- ' My.Computer.FileSystem.GetFiles(m14)
- ' If json1.Contains(Path.GetFileNameWithoutExtension(m13)) Then
- ' a = a + m13 + ";"
- ' End If
- ' Next
- ' Next
- ' Next
- ' Next
- ' Next
- ' Next
- ' Next
- ' Next
- 'Next
- a = a + Directory.GetCurrentDirectory() + "\.minecraft\versions" + versions + "" + versions + ".jar" + Chr(34)
- a = a + " "
- a = a + hz(json, name, versions)
- 'If login = True Then
- 'Dim mclogin As New yggdrasil.yggdrasil
- ' mclogin.Login(name, passwd)
- 'Dim mcfh As New yggdrasil.yggdrasil.LoginInfo
- 'If mcfh.Suc = False Then
- 'login = False
- 'Return mcfh.Errinfo + " 登录错误!"
- 'Exit Function
- 'Else
- 'a = a.Replace("${auth_access_token}", mcfh.SID)
- 'End If
- 'login = False
- 'End If
- Try
- Shell("java", AppWinStyle.Hide)
- Catch ex As FileNotFoundException
- MRunmcreturn.suc = False
- MRunmcreturn.bug = "notfoundjava"
- MRunmcreturn.bugmsg = "找不到java,请确认已安装java或java安装正确!"
- Return MRunmcreturn
- Exit Function
- End Try
- MRunmcreturn.bat = a
- MRunmcreturn.suc = True
- Return MRunmcreturn
- Catch cw As Exception
- Dim MRunmcreturn As New MRunmcreturn
- MRunmcreturn.suc = False
- MRunmcreturn.bug = ""
- MRunmcreturn.bugmsg = cw.Message
- Return MRunmcreturn
- Exit Function
- End Try
- End Function
- Private Function assetIndex(ByVal json As String)
- Dim a1 As Boolean = False
- Dim a As Integer = 0
- Dim json1 As String() = json.Split(New String() {Chr(34)}, StringSplitOptions.RemoveEmptyEntries)
- For Each m As String In json1
- If m = "assets" Then
- a1 = True
- End If
- If a = 2 Then
- Return m
- Exit For
- End If
- If a1 = True Then
- a = a + 1
- End If
- Next
- End Function
- Private Function hz(ByVal json As String, ByVal name As String, ByVal versions As String)
- 'Dim a As Integer
- Dim json3 As String = mainclass(json)
- Dim json1 As String() = json.Split(New String() {Chr(34)}, StringSplitOptions.RemoveEmptyEntries)
- For Each json2 As String In json1
- If json2.Contains("--") Then
- json3 = json3 + " " + json2
- Exit For
- End If
- 'If json2.Contains(Chr(34)) Then
- ' a = InStr(json2, Chr(34))
- ' json2 = Left(json2, a - 1)
- 'End If
- 'If json2.Contains("[ DISCUZ_CODE_2 ]quot;) Or (json2.Contains(".") And json2.Contains(Chr(34)) <> True) Then
- ' json2 = "--" + json2
- ' json3 = json3 + " " + json2
- 'End If
- Next
- json3 = json3.Replace("${game_directory}", ".minecraft")
- json3 = json3.Replace("${assets_root}", ".minecraft\assets")
- json3 = json3.Replace("${game_assets}", ".minecraft\assets")
- json3 = json3.Replace("${user_properties}", "{}")
- json3 = json3.Replace("${auth_player_name}", name)
- json3 = json3.Replace("${version_name}", versions)
- If json3.Contains("${assets_index_name}") Then
- json3 = json3.Replace("${assets_index_name}", assetIndex(json))
- End If
- Return json3
- End Function
- 'If json2.Contains("id") Then
- ' json2 = ""
- ' End If
- 'json2 = json2.Replace(Environment.NewLine, "")
- 'json2 = json2.Replace("{", "")
- 'If json2.Contains("}") And json2.Contains("[ DISCUZ_CODE_2 ]quot;) Then
- ' json2 = "--" + json2
- ' End If
- 'If json2.Contains(".") Then
- 'json2 = "--" + json2
- 'End If
- 'If json2.Contains(Chr(34)) Then
- 'a = InStr(json2, Chr(34))
- 'json2 = Left(json2, a - 1)
- 'End If
- 'json2 = json2.Replace("[ DISCUZ_CODE_2 ]quot;, "${")
- Private Function mainclass(ByVal json As String)
- Dim a1 As Boolean = False
- Dim a As Integer = 0
- Dim json1 As String() = json.Split(New String() {Chr(34)}, StringSplitOptions.RemoveEmptyEntries)
- For Each m As String In json1
- If m = "mainClass" Then
- a1 = True
- End If
- If a = 2 Then
- Return m
- Exit For
- End If
- If a1 = True Then
- a = a + 1
- End If
- Next
- End Function
- End Class
复制代码 C#:
懒得转成C#了。。。。
|