我想为我和我在VB. Net中的朋友创建我自己的Minecraft Launcher。我有这个代码可以给我访问令牌。
Private ACCESS_TOKEN As String
Public Function GetAccessToken() As String
Return ACCESS_TOKEN
End Function
Public Sub ObtainAccessToken()
Dim username As String = TextBox1.Text
Dim password As String = TextBox2.Text
Dim UUID As String = Guid.NewGuid.ToString()
Dim httpWebRequest = DirectCast(WebRequest.Create("https://authserver.mojang.com/authenticate"), HttpWebRequest)
httpWebRequest.ContentType = "application/json"
httpWebRequest.Method = "POST"
Using streamWriter = New StreamWriter(httpWebRequest.GetRequestStream())
Dim json As String = (Convert.ToString((Convert.ToString("{""agent"":{""name"":""Minecraft"",""version"":1},""username"":""") & username) + """,""password"":""") & password) + """,""clientToken"":" & ControlChars.Quote & UUID & ControlChars.Quote & "}"
streamWriter.Write(json)
streamWriter.Flush()
streamWriter.Close()
Dim httpResponse = DirectCast(httpWebRequest.GetResponse(), HttpWebResponse)
Using streamReader = New StreamReader(httpResponse.GetResponseStream())
Dim result = streamReader.ReadToEnd()
ACCESS_TOKEN = result
End Using
End Using
End Sub
但是我可以用这个访问令牌做什么?如何直接使用java参数启动minecraft?我想启动minecraft.jar文件。
这是我编程的开始:)我从Visual Basic开始,现在我在做C。这是为任何想知道如何制作雷舰发射器的人准备的。
首先,你必须下载“游戏文件”,这里的所有内容都有很好的文档记录。然后你可以开始思考如何开始游戏。
您将需要访问权限和客户端令牌我稍微改进了代码:
Imports System.IO
Imports System.Net
Imports System.Web.Script.Serialization ' Add Reference System.Web.Extensions
Module Program
Public Function Authenticate(ByRef username As String, ByRef password As String) As String
Dim UUID As String = Guid.NewGuid.ToString()
Dim Request As HttpWebRequest = DirectCast(WebRequest.Create("https://authserver.mojang.com/authenticate"), HttpWebRequest)
Request.ContentType = "application/json"
Request.Method = "POST"
Using Writer = New StreamWriter(Request.GetRequestStream())
Dim Json As String = ("{ 'agent': {'name': 'Minecraft', 'version': 1}, 'username': '" + username + "', 'password': '" + password + "', 'clientToken': '" + UUID + "', 'requestUser': true }").Replace("'", Chr(34))
Writer.Write(Json)
Writer.Flush()
Writer.Close()
Dim Response = DirectCast(Request.GetResponse(), HttpWebResponse)
Using Reader = New StreamReader(Response.GetResponseStream())
Return Reader.ReadToEnd()
End Using
End Using
End Function
Sub Main()
Dim Response As String = Authenticate("username", "password")
Dim Serializer As JavaScriptSerializer = New JavaScriptSerializer()
Dim Dictionary As Dictionary(Of String, Object) = Serializer.Deserialize(Of Dictionary(Of String, Object))(Response)
Dim AccessToken As String = Dictionary("accessToken")
Dim ClientToken As String = Dictionary("clientToken")
Console.WriteLine(AccessToken)
Console.WriteLine(ClientToken)
Console.Read()
End Sub
End Module
在这段代码中,您向mojang auth服务器发送HTTP POST请求,然后使用JavaScriptSerializer将响应解析为json。访问令牌和客户端令牌存储在变量中。此处记录了Mojang认证。然后,我建议您从系统创建流程。诊断并按如下方式启动:
Public Sub LaunchMinecraft(ByRef AccessToken As String, ByRef ClientToken As String)
Dim Xmx As String = "4G"
Dim Xms As String = "2G"
Dim Title As String = "My Minecraft Instance"
Dim Version As String = "1.7.10"
Dim AssetIndex As String = "..." ' AssetIndex obtained from mojang server
Dim Username As String = "..." ' Minecraft username obtained from mojang server
Dim Libraries As String = "..." ' Paths to all libraries separated by ;
Dim JavaProcess As Process = New Process()
JavaProcess.StartInfo.UseShellExecute = False
JavaProcess.StartInfo.CreateNoWindow = False
JavaProcess.StartInfo.FileName = "..." ' Path to javaw.exe or java.exe
JavaProcess.StartInfo.Arguments = "-XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump" +
" -Xmx" + Xmx +
" -Xms" + Xms +
" -Djava.library.path=.//bin/natives" +
" -Dminecraft.client.jar=.//bin/modpack.jar" +
" -Dminecraft.applet.TargetDirectory=.//" +
" -cp .//bin/modpack.jar;" + Libraries + ";.//bin/minecraft.jar" +
" -XX:+UnlockExperimentalVMOptions" +
" -XX:+UseG1GC -XX:G1NewSizePercent=20" +
" -XX:G1ReservePercent=20" +
" -XX:MaxGCPauseMillis=50" +
" -XX:G1HeapRegionSize=16M" +
" net.minecraft.launchwrapper.Launch" +
" --gameDir .//" +
" --username " + Username +
" --assetsDir ..//..//..//cache/assets" +
" --assetIndex " + AssetIndex +
" --version " + Version +
" --uuid " + ClientToken +
" --accessToken " + AccessToken +
" --userProperties {}" +
" --userType mojang" +
" --tweakClass cpw.mods.fml.common.launcher.FMLTweaker" +
" --title " + Title
JavaProcess.Start()
End Sub
这段代码没有经过测试,也有相对路径。这只是一个例子。请注意,这是为修改后的minecraft准备的。希望它能有所帮助!
在中。minecraft文件夹,所有参数都在版本中。json
这里是1.8.8版(minecraft/versons/1.8.8)的json片段
"id": "1.8.8",
"time": "2016-06-01T07:45:48-04:00",
"releaseTime": "2015-07-27T06:31:28-04: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}"
参数位于“minecraftArguments”下,jar文件位于同一目录下,名为1.8.8。罐子
想改进这个问题吗?更新问题,使其仅通过编辑这篇文章来关注一个问题。 我想创建我自己的雷舰发射器,当玩家检查强制更新时,它会下载一个修改过的雷舰。jar,一个更新的lwjgl(都不是什么大问题)和您的中的2个额外文件夹。minecraft目录。我可以通过将MinecraftDownload目录更改为我自己网站上的目录,并将修改后的文件放在我的网站上,来完成前2项,但我不知道如何将其下载并将存档提取到
本文向大家介绍WPF 自定义雷达图开发实例教程,包括了WPF 自定义雷达图开发实例教程的使用技巧和注意事项,需要的朋友参考一下 自定义雷达图表如下: 1、创建UserControl,名为“RadarChartControl” 前台: 后台: 2、创建标题类按钮控件,定义名称为ChartButton 前台: 后台: 3、定义数据组标题显示列表 前台: 后台: 4、界面引用控件 以上所述是小编给大家介
我的目标是在应用程序中创建一个错误处理机制,处理所有可管理的错误,而不仅仅是与MVC相关的错误。所以我没有使用HandleErrorAttribute模式,因为它只针对MVC错误,而不是其他托管错误。 在我的全球。asax我有: 我有一个< code>ErrorController,它具有< code >常规、< code>Http403和< code>Http404操作。我有与每个动作相对应的视
以下是我的上下文:我使用byteBuddy动态生成一个类,该类根据外部配置将一个对象转换为另一个对象。我遇到了一些问题,我想找到一个替代方案,这就是我发现MapStruct的方式。 因此,我试图构建简单的映射器,我想知道是否有可能自定义注释以添加转换函数。例如,我想要: 在mapper实现中,我会有如下内容: 如果有人能帮我做到这一点,我将不胜感激,这将节省我很多时间。 提前谢谢。
问题内容: 我想以自己的格式记录来自net / http的错误。在net / http包中,我找到了Server结构: 我想用自己的实现代替logger: 实施此方法的正确方法是什么? 更新: 我有以下配置的zap记录器: 它配置为以json格式编写。我希望以与zap相同的方式编写错误。我创建以下内容: 问题: 方法的主体应该是什么? 我应该检索io.Writer以便通过它吗?这该怎么做? 问题答
问题内容: 我正在使用.NET的HttpClient向WebAPI发出请求,该WebAPI返回一些JSON数据,该数据需要在客户端进行一些自定义反序列化。为此,我已经完成了自己的工作,但是我不知道如何让该方法处理转换器的存在。 通过使用读取响应,然后将该字符串传递给,我已经解决了我的问题,但是似乎应该有一个更优雅的解决方案。 这是我的代码: 这是我所能做到的最好的,还是有一些更优雅的方法? 如果需