Skip to content

Commit 3197aa0

Browse files
committed
MCinaBox 添加正版验证POST请求的五种负载和相对应的响应模板。
1 parent 26e0384 commit 3197aa0

12 files changed

+282
-0
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package com.aof.mcinabox.Yggdrasil;
2+
3+
import android.bluetooth.le.AdvertisingSetCallback;
4+
5+
public class AuthenticateRequest {
6+
private Agent agent;
7+
private String username; //Mojang账户用户名
8+
private String password; //Mojang账户密码
9+
private String clientToken; //启动器端标识符(可选的) [请注意,请在第一次运行启动器时生成一个随机UUID.toSring,存储在配置文件中并不要再做任何更改]
10+
private boolean requestUser; // 默认为false,若为true则将user对象加入到响应中(可选的)
11+
12+
public AuthenticateRequest(String name,int version,String username,String password,String clientToken,boolean requestUser){
13+
super();
14+
getAgent().setName(name);
15+
getAgent().setVersion(version);
16+
setUsername(username);
17+
setPassword(password);
18+
setClientToken(clientToken);
19+
setRequestUser(requestUser);
20+
}
21+
22+
private class Agent{
23+
String name; //默认为"Minecraft"
24+
int version; //请填写 1
25+
26+
public String getName() { return name; }
27+
public void setName(String name) { this.name = name; }
28+
public int getVersion() { return version; }
29+
public void setVersion(int version) { this.version = version; }
30+
}
31+
32+
public Agent getAgent() { return agent; }
33+
public void setAgent(Agent agent) { this.agent = agent; }
34+
public String getUsername() { return username; }
35+
public void setUsername(String username) { this.username = username; }
36+
public String getPassword() { return password; }
37+
public void setPassword(String password) { this.password = password; }
38+
public String getClientToken() { return clientToken; }
39+
public void setClientToken(String clientToken) { this.clientToken = clientToken; }
40+
public boolean isRequestUser() { return requestUser; }
41+
public void setRequestUser(boolean requestUser) { this.requestUser = requestUser; }
42+
}
Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
package com.aof.mcinabox.Yggdrasil;
2+
3+
public class AuthenticateResponse {
4+
private String accessToken; //随机访问令牌
5+
private String clientToken; //如果发送了,就与发送的相同,否则为重新下发的
6+
private AvailableProfiles[] availableProfiles; //仅在发送了agent字段时出现
7+
private SelectedProfile selectedProfile; //仅在发送了agent字段时出现
8+
private User user; //仅在请求负载中的requestUser为true出现
9+
10+
private class AvailableProfiles{
11+
String agent; //值为"Minecraft"
12+
String id; //档案标识符
13+
String name; //玩家名称
14+
String userId; //用户Id
15+
long createdAt; //自1970年1月1日起的毫秒数
16+
boolean legacyProfile;
17+
boolean suspended;
18+
boolean paid; //是否购买了游戏
19+
boolean migrated;
20+
boolean legacy;
21+
22+
public String getAgent() { return agent; }
23+
public String getId() { return id; }
24+
public String getName() { return name; }
25+
public String getUserId() { return userId; }
26+
public long getCreatedAt() { return createdAt; }
27+
public boolean isLegacyProfile() { return legacyProfile; }
28+
public boolean isSuspended() { return suspended; }
29+
public boolean isPaid() { return paid; }
30+
public boolean isMigrated() { return migrated; }
31+
public boolean isLegacy() { return legacy; }
32+
}
33+
private class SelectedProfile{
34+
String id; //不含分隔符的uuid
35+
String name; //玩家名称
36+
String userId;
37+
long createdAt;
38+
boolean legacyProfile;
39+
boolean suspended;
40+
boolean paid; //是否购买了游戏
41+
boolean migrated;
42+
boolean legacy;
43+
44+
public String getId() { return id; }
45+
public String getName() { return name; }
46+
public String getUserId() { return userId; }
47+
public long getCreatedAt() { return createdAt; }
48+
public boolean isLegacyProfile() { return legacyProfile; }
49+
public boolean isSuspended() { return suspended; }
50+
public boolean isPaid() { return paid; }
51+
public boolean isMigrated() { return migrated; }
52+
public boolean isLegacy() { return legacy; }
53+
}
54+
private class User{
55+
String id; //不含分隔符的uuid
56+
String email;
57+
String username;
58+
String registerIp; //最后一位隐藏的ip地址
59+
String migratedFrom;
60+
long migrateAt;
61+
long registeredAt;
62+
long passwordChangedAt;
63+
long dateOfBirth;
64+
boolean suspended;
65+
boolean blocked;
66+
boolean secured;
67+
boolean migrated;
68+
boolean emailVerfied;
69+
boolean legacyUse;
70+
boolean verifiedByParent;
71+
Properties[] properties;
72+
73+
private class Properties{
74+
String name;
75+
String value;
76+
77+
public String getName() { return name; }
78+
public String getValue() { return value; }
79+
}
80+
81+
public String getId() { return id; }
82+
public String getEmail() { return email; }
83+
public String getUsername() { return username; }
84+
public String getRegisterIp() { return registerIp; }
85+
public String getMigratedFrom() { return migratedFrom; }
86+
public long getMigrateAt() { return migrateAt; }
87+
public long getRegisteredAt() { return registeredAt; }
88+
public long getPasswordChangedAt() { return passwordChangedAt; }
89+
public long getDateOfBirth() { return dateOfBirth; }
90+
public boolean isSuspended() { return suspended; }
91+
public boolean isBlocked() { return blocked; }
92+
public boolean isSecured() { return secured; }
93+
public boolean isMigrated() { return migrated; }
94+
public boolean isEmailVerfied() { return emailVerfied; }
95+
public boolean isLegacyUse() { return legacyUse; }
96+
public boolean isVerifiedByParent() { return verifiedByParent; }
97+
public Properties[] getProperties() { return properties; }
98+
}
99+
100+
public String getAccessToken() { return accessToken; }
101+
public String getClientToken() { return clientToken; }
102+
public AvailableProfiles[] getAvailableProfiles() { return availableProfiles; }
103+
public SelectedProfile getSelectedProfile() { return selectedProfile; }
104+
public User getUser() { return user; }
105+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package com.aof.mcinabox.Yggdrasil;
2+
3+
import java.util.HashMap;
4+
5+
public class ErrorResponse {
6+
//specification
7+
private String error; //错误的简短描述
8+
private String errorMessage; //用于向用户显示的更长的描述
9+
private String cause; //错误原因
10+
11+
//customize
12+
public static HashMap<String,String> errorMap = new HashMap<String,String>();
13+
public static String TranslateError(String error){
14+
if(errorMap.size() == 0) {
15+
errorMap.put("Method Not Allowed", "不允许的请求");
16+
errorMap.put("Not Found", "不存在的端点");
17+
errorMap.put("ForbiddenOperationException", "无效的凭据");
18+
errorMap.put("IllegalArgumentException", "不合法的参数");
19+
errorMap.put("Unsupported Media Type", "不受支持的对象格式");
20+
}
21+
if(errorMap.get(error) == null){
22+
return error;
23+
}else {
24+
return errorMap.get(error);
25+
}
26+
}
27+
28+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.aof.mcinabox.Yggdrasil;
2+
3+
public class InvalidateRequest {
4+
private String accessToken;
5+
private String clientToken;
6+
7+
public String getAccessToken() { return accessToken; }
8+
public void setAccessToken(String accessToken) { this.accessToken = accessToken; }
9+
public String getClientToken() { return clientToken; }
10+
public void setClientToken(String clientToken) { this.clientToken = clientToken;}
11+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package com.aof.mcinabox.Yggdrasil;
2+
3+
public class InvalidateResponse extends ErrorResponse {
4+
//若成功则返回空响应
5+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package com.aof.mcinabox.Yggdrasil;
2+
3+
public class ReflashRequest {
4+
private String accessToken; //有效的accessToken
5+
private String clientToken; //客户端标识符
6+
boolean requestUser; //默认为false,为true时将响应user信息(可选的)
7+
8+
public ReflashRequest(String accessToken,String clientToken,boolean requestUser){
9+
super();
10+
setAccessToken(accessToken);
11+
setClientToken(clientToken);
12+
setRequestUser(requestUser);
13+
}
14+
15+
public String getAccessToken() { return accessToken; }
16+
public void setAccessToken(String accessToken) { this.accessToken = accessToken; }
17+
public String getClientToken() { return clientToken; }
18+
public void setClientToken(String clientToken) { this.clientToken = clientToken; }
19+
public boolean isRequestUser() { return requestUser; }
20+
public void setRequestUser(boolean requestUser) { this.requestUser = requestUser; }
21+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package com.aof.mcinabox.Yggdrasil;
2+
3+
public class ReflashResponse {
4+
private String accessToken;
5+
private String clientToken;
6+
private SelectedProfile selectedProfile;
7+
private User user;
8+
9+
private class SelectedProfile{
10+
String id;
11+
String name;
12+
public String getId() { return id; }
13+
public String getName() { return name; }
14+
}
15+
private class User{
16+
String id;
17+
Properties[] properties;
18+
19+
private class Properties{
20+
String name;
21+
String value;
22+
public String getName() { return name; }
23+
public String getValue() { return value; }
24+
}
25+
public String getId() { return id; }
26+
public Properties[] getProperties() { return properties; }
27+
}
28+
public String getAccessToken() { return accessToken; }
29+
public String getClientToken() { return clientToken; }
30+
public SelectedProfile getSelectedProfile() { return selectedProfile; }
31+
public User getUser() { return user; }
32+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.aof.mcinabox.Yggdrasil;
2+
3+
public class SignoutRequest {
4+
private String username;
5+
private String password;
6+
7+
public String getUsername() { return username; }
8+
public String getPassword() { return password; }
9+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package com.aof.mcinabox.Yggdrasil;
2+
3+
public class SignoutResponse extends ErrorResponse {
4+
//若成功则返回一个空响应
5+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.aof.mcinabox.Yggdrasil;
2+
3+
public class ValidateRequest {
4+
private String accessToken;
5+
private String clientToken;
6+
7+
public String getAccessToken() { return accessToken; }
8+
public void setAccessToken(String accessToken) { this.accessToken = accessToken; }
9+
public String getClientToken() { return clientToken; }
10+
public void setClientToken(String clientToken) { this.clientToken = clientToken; }
11+
}

0 commit comments

Comments
 (0)