| VB.net:
 
 C#:复制代码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#了。。。。
 
 |