我试图为自己和一些朋友创建一个简单的自定义Minecraft发射器。我不需要代码来启动minecraft,只需要登录的实际代码行。例如,据我所知,您曾经能够使用:
string netResponse = httpGET("https://login.minecraft.net/session?name=<USERNAME>&session=<SESSION ID>" + username + "&password=" + password + "&version=" + clientVer);
我知道不再有https://login.minecraft.net,这意味着此代码无法正常工作。这是我需要继续的所有内容,只有连接登录的地方,以及要包含的变量。谢谢,如果需要任何其他信息,请发表评论。
答案 0 :(得分:2)
您需要向https://authserver.mojang.com/authenticate发出JSON POST请求,这是我获取访问令牌(您可以用来玩游戏)的方法。
代码:
string ACCESS_TOKEN;
public string GetAccessToken()
{
return ACCESS_TOKEN;
}
public void ObtainAccessToken(string username, string password)
{
var httpWebRequest = (HttpWebRequest)WebRequest.Create("https://authserver.mojang.com/authenticate");
httpWebRequest.ContentType = "application/json";
httpWebRequest.Method = "POST";
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
string json = "{\"agent\":{\"name\":\"Minecraft\",\"version\":1},\"username\":\""+username+"\",\"password\":\""+password+"\",\"clientToken\":\"6c9d237d-8fbf-44ef-b46b-0b8a854bf391\"}";
streamWriter.Write(json);
streamWriter.Flush();
streamWriter.Close();
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
ACCESS_TOKEN = result;
}
}
}
声明这些:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using System.IO;
using System.Web.Script.Serialization;
如果你还没有,请参考System.Web.Extentions 我用C#winforms进行了测试,它可以工作:)
谢谢,
DMP9
答案 1 :(得分:1)
登录服务器现在是https://authserver.mojang.com/authenticate
,它使用JSON格式的信息。
将此格式用于JSON请求:
{"agent": { "name": "Minecraft", "version": 1 }, "username": "example", "password": "hunter2"}
Here是用于登录的完整实现。