我的世界图书馆从JSON文件下载和启动我的、图书馆、文件、世界

2023-09-04 06:57:29 作者:哥、极度悲伤

我有一个问题的产生和下载我的世界图书馆和当地人的窗口。

从:

 <包装>:<名称>:<版>
 

 <包装> /<名称> /<版> /<名称>  - <版>
 

请大家帮帮忙!

JSON文件:

  {
  ID:1.8.8,
  时间:2015-07-27T12:31:28 + 02:00,
  releaseTime:2015-07-27T12:31:28 + 02:00,
  类型:释放,
  minecraftArguments:--username $ {auth_player_name}  - 版本$ {} VERSION_NAME --gameDir $ {game_directory} --assetsDir $ {assets_root} --assetIndex $ {assets_index_name} --uuid $ {auth_uuid} --accessToken $ {auth_access_token} --userProperties $ {user_properties} --userType $ {user_type},
  库:
    {
      名:oshi项目:oshi芯:1.1
    },
    {
      名:net.java.dev.jna:JNA:3.4.0
    },
    {
      名:net.java.dev.jna:平台:3.4.0
    },
    {
      名:com.ibm.icu:icu4j-core-mojang:51.2
    },
    {
      名:net.sf.jopt-简单:JOPT简单的:4.6
    },
    {
      名:com.pauls code:codecjorbis:20101023
    },
    {
      名:com.pauls code:codecwav:20101023
    },
    {
      名:com.pauls code:libraryjavasound:20101123
    },
    {
      名:com.pauls code:librarylwjglopenal:20100824
    },
    {
      名:com.pauls code:Soundsystem的:20120107
    },
    {
      名:io.netty:网状全:4.0.23.Final
    },
    {
      名:com.google.guava:番石榴:17.0
    },
    {
      名:org.apache.commons:公地lang3:3.3.2
    },
    {
      名:公-IO:公地IO:2.4
    },
    {
      名:commons- codeC:commons- codeC:1.9
    },
    {
      名:net.java.jinput:jinput:2.0.5
    },
    {
      名:net.java.jutils:jutils:1.0.0
    },
    {
      名:com.google code.gson:GSON:2.2.4
    },
    {
      名:com.mojang:authlib的:1.5.21
    },
    {
      名:com.mojang:领域:28年7月1日
    },
    {
      名:org.apache.commons:公共-COM preSS:1.8.1
    },
    {
      名:org.apache.httpcomponents:HttpClient的:4.3.3
    },
    {
      名:共享记录:共享记录:1.1.3
    },
    {
      名:org.apache.httpcomponents:的HttpCore:4.3.2
    },
    {
      名:org.apache.logging.log4j:log4j的-API:2.0 beta9
    },
    {
      名:org.apache.logging.log4j:log4j的核心:2.0 beta9
    },
    {
      名:org.lwjgl.lwjgl:LWJGL:2.9.4-夜间-20150209,
      规则:
        {
          行动:允许
        },
        {
          行动:禁止,
          OS:{
            名:OSX
          }
        }
      ]
    },
    {
      名:org.lwjgl.lwjgl:lwjgl_util:2.9.4-夜间-20150209,
      规则:
        {
          行动:允许
        },
        {
          行动:禁止,
          OS:{
            名:OSX
          }
        }
      ]
    },
    {
      名:org.lwjgl.lwjgl:LWJGL平台:2.9.4-夜间-20150209,
      规则:
        {
          行动:允许
        },
        {
          行动:禁止,
          OS:{
            名:OSX
          }
        }
      ]
      土人:{
        LINUX:土人Linux的,
        窗口:土人-窗口,
        OSX:土人 -  OSX
      },
      提取: {
        排除: [
          META-INF /
        ]
      }
    },
    {
      名:org.lwjgl.lwjgl:LWJGL:2.9.2-夜间-20140822,
      规则:
        {
          行动:允许,
          OS:{
            名:OSX
          }
        }
      ]
    },
    {
      名:org.lwjgl.lwjgl:lwjgl_util:2.9.2-夜间-20140822,
      规则:
        {
          行动:允许,
          OS:{
            名:OSX
          }
        }
      ]
    },
    {
      名:org.lwjgl.lwjgl:LWJGL平台:2.9.2-夜间-20140822,
      规则:
        {
          行动:允许,
          OS:{
            名:OSX
          }
        }
      ]
      土人:{
        LINUX:土人Linux的,
        窗口:土人-窗口,
        OSX:土人 -  OSX
      },
      提取: {
        排除: [
          META-INF /
        ]
      }
    },
    {
      名:net.java.jinput:jinput平台:2.0.5
      土人:{
        LINUX:土人Linux的,
        窗口:土人-窗口,
        OSX:土人 -  OSX
      },
      提取: {
        排除: [
          META-INF /
        ]
      }
    },
    {
      名:tv.twitch:抽搐:6.5
    },
    {
      名:tv.twitch:抽搐平台:6.5,
      规则:
        {
          行动:允许
        },
        {
          行动:禁止,
          OS:{
            名:LINUX
          }
        }
      ]
      土人:{
        LINUX:土人Linux的,
        窗口:土人-窗口 -  $ {}拱,
        OSX:土人 -  OSX
      },
      提取: {
        排除: [
          META-INF /
        ]
      }
    },
    {
      名:tv.twitch:抽搐的外部平台:4.5,
      规则:
        {
          行动:允许,
          OS:{
            名:窗口
          }
        }
      ]
      土人:{
        窗口:土人-窗口 -  $ {}拱
      },
      提取: {
        排除: [
          META-INF /
        ]
      }
    }
  ]
  mainClass:net.minecraft.client.main.Main,
  minimumLauncherVersion:14,
  资产:1.8
}
 
我的世界 我们来说现在还是那么火爆,迷你世界也是因为这样吗

例如:

  oshi项目:oshi芯:1.1
 

  oshi项目/ oshi核心/ 1.1 / oshi核心 -  1.1.jar
 

和 libraries.minecraft.net链接(JAR文件)的

从mojang下载链接:

https://libraries.minecraft.net/<package>/<name>/<version>/<name>-<version>.jar

解决方案

看完Plutonix's评论,我又写了code的应该更好地工作。 (我不知道这是JSON序列化的数据)。

运行以下code ,你必须为 的Json .NET框架.NET (使用的NuGet包是更好的办法),并为导入 Newtonsoft.Json.Linq 进口Newtonsoft.Json.Linq )。

 昏暗图书馆作为新名单(名单(字符串))

私人小组的button1_Click(发送者为对象,E作为EventArgs的)把手Button1.Click
    您的JSON文件的路径。
    昏暗的文件路径作为字符串=C:\用户\ Drarig29 \桌面\ File.json

    解析您的JSON文件。
    昏暗的FileData = JObject.Parse(My.Computer.FileSystem.ReadAllText(文件路径))

    对于每一个图书馆的FileData(库)

        提取库(小于包装&GT;:&LT;名称&gt;:&LT;版&GT;)。
        昏暗ExtractedLibrary作为字符串= CStr的(库(名字))

        提取下分裂的:形式。
        LibrarySplitted(0)=&LT;包装&GT;
        LibrarySplitted(1)=&LT;名称&gt;
        LibrarySplitted(2)=&LT;版&GT;
        昏暗LibrarySplitted()作为字符串= ExtractedLibrary.Split(CCHAR(:))

        昏暗包作为字符串= LibrarySplitted(0)'&LT;包装&GT;
        昏暗的名称作为字符串= LibrarySplitted(1)'&LT;名称&gt;
        昏暗版本字符串= LibrarySplitted(2)'&LT;版&GT;

        与斜线的字符串(小于包装&GT; /&LT;名称&gt; /&LT;版&GT; /&LT;名称&gt;  - &LT;版&GT;)。
        昏暗的WithSlashes的String = CreateWithSlashesString(包装,名称,版)

        '链接(https://libraries.minecraft.net/<package>/<name>/<version>/<name>-<version>.jar).
        昏暗的链接的String = CreateLink(包装,名称,版)

        昏暗AllTheForms作为新的列表(串)
        AllTheForms.Add(ExtractedLibrary)
        AllTheForms.Add(WithSlashes)
        AllTheForms.Add(链接)

        Libraries.Add(AllTheForms)
    下一个
结束小组

创建一个字符串用斜杠(小于包装&GT; /&LT;名称&gt; /&LT;版&GT; /&LT;名称&gt;  - &LT;版&GT;)。
专用功能CreateWithSlashesString(包作为字符串,字符串类型,版本字符串)作为字符串
    返回包和放大器; /和放大器;名称和放大器; /和放大器;版本和放大器; /和放大器;名称和放大器;  - &安培;版
端功能

创建一个网页链接到库中。
专用功能CreateLink(包作为字符串,字符串类型,版本字符串)作为字符串
    返回https://libraries.minecraft.net/&放大器;包装及放大器; /和放大器;名称和放大器; /和放大器;版本和放大器; /和放大器;名称和放大器;  - &安培;版
端功能
 

一旦完成,您可以使用每个项目( ExtractedLibrary WithSlashes ,图书馆的索引&gt;)(项指数)。

例如,如果你想为让所有的图书馆链接,你可以这样做:

 为每个库在库
    '库(0)对应于库的名称。
    图书馆(1)对应于库的WithSlashes字符串。
    MSGBOX(库(2))'库(2)对应于库的链接。
下一个
 

I have a problem in generate and download minecraft libraries and natives for windows.

from:

<package>:<name>:<version>

to:

<package>/<name>/<version>/<name>-<version>

please help!

Json file:

{
  "id": "1.8.8",
  "time": "2015-07-27T12:31:28+02:00",
  "releaseTime": "2015-07-27T12:31:28+02:00",
  "type": "release",
  "minecraftArguments": "--username ${auth_player_name} --version ${version_name} --gameDir ${game_directory} --assetsDir ${assets_root} --assetIndex ${assets_index_name} --uuid ${auth_uuid} --accessToken ${auth_access_token} --userProperties ${user_properties} --userType ${user_type}",
  "libraries": [
    {
      "name": "oshi-project:oshi-core:1.1"
    },
    {
      "name": "net.java.dev.jna:jna:3.4.0"
    },
    {
      "name": "net.java.dev.jna:platform:3.4.0"
    },
    {
      "name": "com.ibm.icu:icu4j-core-mojang:51.2"
    },
    {
      "name": "net.sf.jopt-simple:jopt-simple:4.6"
    },
    {
      "name": "com.paulscode:codecjorbis:20101023"
    },
    {
      "name": "com.paulscode:codecwav:20101023"
    },
    {
      "name": "com.paulscode:libraryjavasound:20101123"
    },
    {
      "name": "com.paulscode:librarylwjglopenal:20100824"
    },
    {
      "name": "com.paulscode:soundsystem:20120107"
    },
    {
      "name": "io.netty:netty-all:4.0.23.Final"
    },
    {
      "name": "com.google.guava:guava:17.0"
    },
    {
      "name": "org.apache.commons:commons-lang3:3.3.2"
    },
    {
      "name": "commons-io:commons-io:2.4"
    },
    {
      "name": "commons-codec:commons-codec:1.9"
    },
    {
      "name": "net.java.jinput:jinput:2.0.5"
    },
    {
      "name": "net.java.jutils:jutils:1.0.0"
    },
    {
      "name": "com.google.code.gson:gson:2.2.4"
    },
    {
      "name": "com.mojang:authlib:1.5.21"
    },
    {
      "name": "com.mojang:realms:1.7.28"
    },
    {
      "name": "org.apache.commons:commons-compress:1.8.1"
    },
    {
      "name": "org.apache.httpcomponents:httpclient:4.3.3"
    },
    {
      "name": "commons-logging:commons-logging:1.1.3"
    },
    {
      "name": "org.apache.httpcomponents:httpcore:4.3.2"
    },
    {
      "name": "org.apache.logging.log4j:log4j-api:2.0-beta9"
    },
    {
      "name": "org.apache.logging.log4j:log4j-core:2.0-beta9"
    },
    {
      "name": "org.lwjgl.lwjgl:lwjgl:2.9.4-nightly-20150209",
      "rules": [
        {
          "action": "allow"
        },
        {
          "action": "disallow",
          "os": {
            "name": "osx"
          }
        }
      ]
    },
    {
      "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.4-nightly-20150209",
      "rules": [
        {
          "action": "allow"
        },
        {
          "action": "disallow",
          "os": {
            "name": "osx"
          }
        }
      ]
    },
    {
      "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.4-nightly-20150209",
      "rules": [
        {
          "action": "allow"
        },
        {
          "action": "disallow",
          "os": {
            "name": "osx"
          }
        }
      ],
      "natives": {
        "linux": "natives-linux",
        "windows": "natives-windows",
        "osx": "natives-osx"
      },
      "extract": {
        "exclude": [
          "META-INF/"
        ]
      }
    },
    {
      "name": "org.lwjgl.lwjgl:lwjgl:2.9.2-nightly-20140822",
      "rules": [
        {
          "action": "allow",
          "os": {
            "name": "osx"
          }
        }
      ]
    },
    {
      "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.2-nightly-20140822",
      "rules": [
        {
          "action": "allow",
          "os": {
            "name": "osx"
          }
        }
      ]
    },
    {
      "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.2-nightly-20140822",
      "rules": [
        {
          "action": "allow",
          "os": {
            "name": "osx"
          }
        }
      ],
      "natives": {
        "linux": "natives-linux",
        "windows": "natives-windows",
        "osx": "natives-osx"
      },
      "extract": {
        "exclude": [
          "META-INF/"
        ]
      }
    },
    {
      "name": "net.java.jinput:jinput-platform:2.0.5",
      "natives": {
        "linux": "natives-linux",
        "windows": "natives-windows",
        "osx": "natives-osx"
      },
      "extract": {
        "exclude": [
          "META-INF/"
        ]
      }
    },
    {
      "name": "tv.twitch:twitch:6.5"
    },
    {
      "name": "tv.twitch:twitch-platform:6.5",
      "rules": [
        {
          "action": "allow"
        },
        {
          "action": "disallow",
          "os": {
            "name": "linux"
          }
        }
      ],
      "natives": {
        "linux": "natives-linux",
        "windows": "natives-windows-${arch}",
        "osx": "natives-osx"
      },
      "extract": {
        "exclude": [
          "META-INF/"
        ]
      }
    },
    {
      "name": "tv.twitch:twitch-external-platform:4.5",
      "rules": [
        {
          "action": "allow",
          "os": {
            "name": "windows"
          }
        }
      ],
      "natives": {
        "windows": "natives-windows-${arch}"
      },
      "extract": {
        "exclude": [
          "META-INF/"
        ]
      }
    }
  ],
  "mainClass": "net.minecraft.client.main.Main",
  "minimumLauncherVersion": 14,
  "assets": "1.8"
}

example:

oshi-project:oshi-core:1.1

to:

oshi-project/oshi-core/1.1/oshi-core-1.1.jar

and link on libraries.minecraft.net (JAR file)

download link from mojang:

https://libraries.minecraft.net/<package>/<name>/<version>/<name>-<version>.jar

解决方案

After reading Plutonix's comment, I wrote another code which should work better. (I didn't know that JSON was serialized data).

To run the following code, you have to install Json.NET framework for .NET (using NuGet Packages is the better way), and to import Newtonsoft.Json.Linq (Imports Newtonsoft.Json.Linq).

Dim Libraries As New List(Of List(Of String))

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    'The path of your json file.
    Dim FilePath As String = "C:\Users\Drarig29\Desktop\File.json"

    'Parses the your json file.
    Dim FileData = JObject.Parse(My.Computer.FileSystem.ReadAllText(FilePath))

    For Each Library In FileData("libraries")

        'The extracted library (<package>:<name>:<version>).
        Dim ExtractedLibrary As String = CStr(Library("name"))

        'The extracted under splitted by ":" form.
        'LibrarySplitted(0) = <package>
        'LibrarySplitted(1) = <name>
        'LibrarySplitted(2) = <version>
        Dim LibrarySplitted() As String = ExtractedLibrary.Split(CChar(":"))

        Dim Package As String = LibrarySplitted(0) '<package>
        Dim Name As String = LibrarySplitted(1) '<name>
        Dim Version As String = LibrarySplitted(2) '<version>

        'The string with the slashes (<package>/<name>/<version>/<name>-<version>).
        Dim WithSlashes As String = CreateWithSlashesString(Package, Name, Version)

        'The link (https://libraries.minecraft.net/<package>/<name>/<version>/<name>-<version>.jar).
        Dim Link As String = CreateLink(Package, Name, Version)

        Dim AllTheForms As New List(Of String)
        AllTheForms.Add(ExtractedLibrary)
        AllTheForms.Add(WithSlashes)
        AllTheForms.Add(Link)

        Libraries.Add(AllTheForms)
    Next
End Sub

'Creates a string with slashes (<package>/<name>/<version>/<name>-<version>).
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

Once it's done, you can access each item (ExtractedLibrary, WithSlashes, or Link) of each library by doing Libraries(<library's index>)(item's index).

For example, if you want to get all the libraries' link, you can do this :

For Each Library In Libraries
    'Library(0) corresponds to the name of the library.
    'Library(1) corresponds to the "WithSlashes" string of the library.
    MsgBox(Library(2)) 'Library(2) corresponds to the link of the library.
Next