【问题标题】:Launch minecraft 1.6.4 from command line with C#使用 C# 从命令行启动 minecraft 1.6.4
【发布时间】:2013-12-10 05:29:41
【问题描述】:

我目前正在开发一个自定义的 Minecraft 1.6.4 启动器。 我编写的大部分代码都是 C#,但是我正在批量编写最后一段代码。

这似乎可以启动 minecraft 1.5.2 jar

cd "%~1"
java -Xms512m -Xmx1g -Djava.library.path=Bin\bin\native\ -cp Bin\bin\* net.minecraft.client.Minecraft %~2 %~3
pause

(C# 计算出会话 ID (%~3))

但是在我的世界 1.6.4 中我得到一个错误:

Error: Could not find or load main class net.minecraft.client.Minecraft

我听说 Minecraft 的启动方式发生了变化,是否可以在我的启动器中实施新系统?

如果有一种方法可以不用批处理,那就太棒了!

启动批处理文件的 C# 代码:

string sessionID = Session.DoLogin(tbUser.Text, tbPassword.Text).SessionId;
Process p = Process.Start("launch.bat", @"""" + filePath + @"""" + " " + tbUser.Text + " " + sessionID);
p.WaitForExit();

【问题讨论】:

  • 您的批处理命令是否在命令提示符下在批处理文件之外成功运行?
  • 不,这是主要问题
  • 所以这归结为“你如何启动 Minecraft?”你有没有成功过?
  • 是的,如前所述。但是 1.6.4+ 更新破坏了代码。我几乎无处不在,找不到任何有关从命令提示符启动 1.6.4 的信息。需要注意的另一件事是,我正在尝试绕过默认的 Minecraft 启动器
  • 尝试指定working directory

标签: c# java batch-file minecraft


【解决方案1】:

我是第一个为我的世界制作 C# 启动器的人,我很高兴分享一些经验。很抱歉这么晚才回复你!

请注意,您希望启动类“net.minecraft.client.main.Main”而不是“net.minecraft.client.Minecraft”。当我不得不将我的启动器移植到 1.6 时,我也遇到了这个问题。它目前仍然适用于 1.7.4。

下面的示例是直接来自我的(编辑:OLD,但黄金)open source launcher 的清理批处理命令


Minecraft 1.7.4 批量启动(jvm 参数):

java 
-Djava.library.path=C:\Users\<username>\AppData\Roaming\.minecraft\libraries\org\lwjgl\lwjgl\lwjgl-platform\2.9.0\ 
-cp 
C:\Users\<username>\AppData\Roaming\.minecraft\versions\1.7.4\1.7.4.jar;
C:\Users\<username>\AppData\Roaming\.minecraft\libraries\java3d\vecmath\1.3.1\vecmath-1.3.1.jar;
C:\Users\<username>\AppData\Roaming\.minecraft\libraries\net\sf\trove4j\trove4j\3.0.3\trove4j-3.0.3.jar;
C:\Users\<username>\AppData\Roaming\.minecraft\libraries\com\ibm\icu\icu4j-core-mojang\51.2\icu4j-core-mojang-51.2.jar;
C:\Users\<username>\AppData\Roaming\.minecraft\libraries\net\sf\jopt-simple\jopt-simple\4.5\jopt-simple-4.5.jar;
C:\Users\<username>\AppData\Roaming\.minecraft\libraries\com\paulscode\codecjorbis\20101023\codecjorbis-20101023.jar;
C:\Users\<username>\AppData\Roaming\.minecraft\libraries\com\paulscode\codecwav\20101023\codecwav-20101023.jar;
C:\Users\<username>\AppData\Roaming\.minecraft\libraries\com\paulscode\libraryjavasound\20101123\libraryjavasound-20101123.jar;
C:\Users\<username>\AppData\Roaming\.minecraft\libraries\com\paulscode\librarylwjglopenal\20100824\librarylwjglopenal-20100824.jar;
C:\Users\<username>\AppData\Roaming\.minecraft\libraries\com\paulscode\soundsystem\20120107\soundsystem-20120107.jar;
C:\Users\<username>\AppData\Roaming\.minecraft\libraries\io\netty\netty-all\4.0.10.Final\netty-all-4.0.10.Final.jar;
C:\Users\<username>\AppData\Roaming\.minecraft\libraries\com\google\guava\guava\15.0\guava-15.0.jar;
C:\Users\<username>\AppData\Roaming\.minecraft\libraries\org\apache\commons\commons-lang3\3.1\commons-lang3-3.1.jar;
C:\Users\<username>\AppData\Roaming\.minecraft\libraries\commons-io\commons-io\2.4\commons-io-2.4.jar;
C:\Users\<username>\AppData\Roaming\.minecraft\libraries\net\java\jinput\jinput\2.0.5\jinput-2.0.5.jar;
C:\Users\<username>\AppData\Roaming\.minecraft\libraries\net\java\jutils\jutils\1.0.0\jutils-1.0.0.jar;
C:\Users\<username>\AppData\Roaming\.minecraft\libraries\com\google\code\gson\gson\2.2.4\gson-2.2.4.jar;
C:\Users\<username>\AppData\Roaming\.minecraft\libraries\com\mojang\authlib\1.2\authlib-1.2.jar;
C:\Users\<username>\AppData\Roaming\.minecraft\libraries\org\apache\logging\log4j\log4j-api\2.0-beta9\log4j-api-2.0-beta9.jar;
C:\Users\<username>\AppData\Roaming\.minecraft\libraries\org\apache\logging\log4j\log4j-core\2.0-beta9\log4j-core-2.0-beta9.jar;
C:\Users\<username>\AppData\Roaming\.minecraft\libraries\org\lwjgl\lwjgl\lwjgl\2.9.1-nightly-20131120\lwjgl-2.9.1-nightly-20131120.jar;
C:\Users\<username>\AppData\Roaming\.minecraft\libraries\org\lwjgl\lwjgl\lwjgl_util\2.9.1-nightly-20131120\lwjgl_util-2.9.1-nightly-20131120.jar;
C:\Users\<username>\AppData\Roaming\.minecraft\libraries\org\lwjgl\lwjgl\lwjgl-platform\2.9.1-nightly-20131120\lwjgl-platform-2.9.1-nightly-20131120-natives-windows.jar;
C:\Users\<username>\AppData\Roaming\.minecraft\libraries\net\java\jinput\jinput-platform\2.0.5\jinput-platform-2.0.5-natives-windows.jar;
C:\Users\<username>\AppData\Roaming\.minecraft\libraries\tv\twitch\twitch\5.12\twitch-5.12.jar;
C:\Users\<username>\AppData\Roaming\.minecraft\libraries\tv\twitch\twitch-platform\5.12\twitch-platform-5.12-natives-windows-64.jar;
C:\Users\<username>\AppData\Roaming\.minecraft\libraries\tv\twitch\twitch-external-platform\4.5\twitch-external-platform-4.5-natives-windows-64.jar;
net.minecraft.client.main.Main  
--username=<your username> 
--accessToken <your accesstoken> 
--version 1.7.4 
--gameDir C:\Users\<username>\AppData\Roaming\.minecraft 
--assetsDir C:\Users\<username>\AppData\Roaming\.minecraft\assets  
--userProperties {} 
--uuid <your uuid>

您还可以在上面的链接or HERE.中了解如何获取同一命名空间中的 uuid、会话令牌等。

【讨论】:

【解决方案2】:

这可能会有所帮助: http://s3.amazonaws.com/Minecraft.Download/versions/1.6.4/1.6.4.json

链接格式适用于所有 Minecraft 版本,因此您可以比较信息并检查发生了什么变化。

请注意,Minecraft 身份验证系统已更改。 (我认为你必须从 1.7 开始使用新系统,但它可能也适用于 1.6)

编辑: 您可能还想反编译官方启动器(我是为自己的启动器做的)提供了一些关于工作原理的有用信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-06
    • 2017-04-06
    • 2013-01-10
    • 1970-01-01
    • 2016-05-16
    • 1970-01-01
    相关资源
    最近更新 更多