黄凯航
本帖最后由 黄凯航 于 2014-6-27 18:31 编辑

注意:为配合此板块的版主huanghongxun的分类,本人已在帖子主题名上加上【永久过期】标签。此代码可能因Mojang AB关闭login.minecraft.net服务器(旧式正版验证服务器)而无法使用。

刚刚看了那个新闻后我就点开新闻里提供的GitHub链接,之后我就点开下Dinnerbone在GitHub所上传的代码后发现有个.java文件,看了下名字后才发现到这是Mojang官方的旧版Minecraft正版验证方法。
依据介绍,这个文件是在一个月前上传的。这个对想要为自己用Java写的启动器添加正版验证的作者们(我最近学Java,前几天在为这个事情烦恼啊QAQ)有用处
以下是源代码:
  1. package net.minecraft.launcher.authentication;

  2. import net.minecraft.launcher.Http;

  3. import java.io.IOException;
  4. import java.net.Proxy;
  5. import java.net.URL;
  6. import java.util.HashMap;
  7. import java.util.Map;

  8. public class OldAuthentication {
  9.     private final Proxy proxy;
  10.     private Response lastSuccessfulResponse;

  11.     public OldAuthentication(Proxy proxy) {
  12.         this.proxy = proxy;
  13.     }

  14.     public Response login(String username, String password) throws IOException {
  15.         Map<String, Object> args = new HashMap<String, Object>();
  16.         args.put("user", username);
  17.         args.put("password", password);
  18.         args.put("version", 14);
  19.         String response = Http.performPost(new URL("https://login.minecraft.net"), args, proxy);
  20.         String[] split = response.split(":");

  21.         if (split.length == 5) {
  22.             lastSuccessfulResponse = new Response(null, split[3], split[2], split[4]);
  23.             return lastSuccessfulResponse;
  24.         } else {
  25.             return new Response(response, null, null, null);
  26.         }
  27.     }

  28.     public Response getLastSuccessfulResponse() {
  29.         return lastSuccessfulResponse;
  30.     }

  31.     public static class Response {
  32.         private final String errorMessage;
  33.         private final String sessionId;
  34.         private final String name;
  35.         private final String uuid;

  36.         public Response(String errorMessage, String sessionId, String name, String uuid) {
  37.             this.errorMessage = errorMessage;
  38.             this.sessionId = sessionId;
  39.             this.name = name;
  40.             this.uuid = uuid;
  41.         }

  42.         public String getErrorMessage() {
  43.             return errorMessage;
  44.         }

  45.         public String getSessionId() {
  46.             return sessionId;
  47.         }

  48.         public String getName() {
  49.             return name;
  50.         }

  51.         public String getUUID() {
  52.             return uuid;
  53.         }
  54.     }
  55. }
复制代码

原网址:https://gist.github.com/Dinnerbone/5450488

黄凯航
  1. public Response login(String username, String password) throws IOException {
  2.         Map<String, Object> args = new HashMap<String, Object>();
  3.         args.put("user", username);
  4.         args.put("password", password);
  5.         args.put("version", 14);
  6.         String response = Http.performPost(new URL("https://login.minecraft.net"), args, proxy);
  7.         String[] split = response.split(":");
复制代码
我本人觉得这是个重要部分

冥王星人
看不懂的说。。。

黄凯航
冥王星人 发表于 2013-5-23 15:14
看不懂的说。。。

因为这些就是Java代码啊
还好我学过一些(其实就是最近一直在玩游戏,只学到24章里的第六章)

冥王星人
黄凯航 发表于 2013-5-23 15:17
因为这些就是Java代码啊
还好我学过一些(其实就是最近一直在玩游戏,只学到24章里的第六章)

我会说我是软件盲么

黄凯航
冥王星人 发表于 2013-5-23 15:18
我会说我是软件盲么

应该是编程盲=。=
如果是软件盲的话那为什么你还会玩Minecraft和用MCEdit呢。。。

冥王星人
黄凯航 发表于 2013-5-23 15:20
应该是编程盲=。=
如果是软件盲的话那为什么你还会玩Minecraft和用MCEdit呢。。。

可恶你恶心我= =#

黄凯航
冥王星人 发表于 2013-5-23 15:21
可恶你恶心我= =#

我才没有
话说我刚刚发现到原来已经有人开发着另外一种版本的光影MOD,正在写帖子转载中

路邊電燈泡
你學到哪了 求教{:10_535:}
我現在還徘徊在super上面{:10_535:}

冥王星人
黄凯航 发表于 2013-5-23 15:25
我才没有
话说我刚刚发现到原来已经有人开发着另外一种版本的光影MOD,正在写帖子转载中

低配党灰过

黄凯航
路邊電燈泡 发表于 2013-5-23 16:36
你學到哪了 求教
我現在還徘徊在super上面

我只学到Class,int和String等等而已,现在在学Statment(if,else等等)

黄凯航
求问为啥只有4人(包括我)看我的贴啊。。。QAQ

Exroku小洛
黄凯航 发表于 2013-5-25 05:10
求问为啥只有4人(包括我)看我的贴啊。。。QAQ

还有我=w=,呜哈哈哈,看不懂的说

yuxiang555
不错,学习聊

黄凯航
Exroku小洛 发表于 2013-5-25 14:35
还有我=w=,呜哈哈哈,看不懂的说

感谢,至少得到安慰了=w=

seadog007
我到是有VB的代碼

704009905
冥王星人 发表于 2013-5-22 23:14
看不懂的说。。。

早················

zjyl1994
我想知道 import net.minecraft.launcher.Http;是什么包………自己能不能搞一个出来