Complete the player response
This commit is contained in:
parent
6b38e9f301
commit
cf5ee56b64
@ -24,12 +24,16 @@
|
|||||||
package cc.restfulmc.sdk.exception;
|
package cc.restfulmc.sdk.exception;
|
||||||
|
|
||||||
import cc.restfulmc.sdk.client.RESTfulMCClient;
|
import cc.restfulmc.sdk.client.RESTfulMCClient;
|
||||||
|
import cc.restfulmc.sdk.request.APIWebRequest;
|
||||||
import com.google.gson.JsonObject;
|
import com.google.gson.JsonObject;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.NonNull;
|
import lombok.NonNull;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* This exception is raised when an error
|
||||||
|
* occurs while making an {@link APIWebRequest}.
|
||||||
|
*
|
||||||
* @author Braydon
|
* @author Braydon
|
||||||
*/
|
*/
|
||||||
@Getter @ToString
|
@Getter @ToString
|
||||||
|
@ -25,6 +25,8 @@ package cc.restfulmc.sdk.response;
|
|||||||
|
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
|
|
||||||
|
import java.util.Base64;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -46,6 +48,26 @@ public final class Player extends CacheableResponse {
|
|||||||
*/
|
*/
|
||||||
@NonNull private final String username;
|
@NonNull private final String username;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The skin of this player.
|
||||||
|
*/
|
||||||
|
@NonNull private final Skin skin;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The cape of this player, null if none.
|
||||||
|
*/
|
||||||
|
private final Cape cape;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The raw profile properties of this player.
|
||||||
|
*/
|
||||||
|
@NonNull private final ProfileProperty[] properties;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The profile actions this player has, null if none.
|
||||||
|
*/
|
||||||
|
private final ProfileAction[] profileActions;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Is this player legacy?
|
* Is this player legacy?
|
||||||
* <p>
|
* <p>
|
||||||
@ -54,4 +76,137 @@ public final class Player extends CacheableResponse {
|
|||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
private final boolean legacy;
|
private final boolean legacy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A skin for a player.
|
||||||
|
*/
|
||||||
|
@AllArgsConstructor @Getter @EqualsAndHashCode(onlyExplicitlyIncluded = true) @ToString
|
||||||
|
public static class Skin {
|
||||||
|
/**
|
||||||
|
* The texture URL of the skin.
|
||||||
|
*/
|
||||||
|
@EqualsAndHashCode.Include @NonNull private final String url;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The model of this skin.
|
||||||
|
*/
|
||||||
|
@NonNull private final SkinModel model;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Is this skin legacy?
|
||||||
|
*/
|
||||||
|
private final boolean legacy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* URLs for the parts of this skin.
|
||||||
|
*/
|
||||||
|
private final Map<SkinPart, String> parts;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A model of a skin.
|
||||||
|
*/
|
||||||
|
public enum SkinModel {
|
||||||
|
DEFAULT, SLIM
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A part of a skin.
|
||||||
|
*/
|
||||||
|
public enum SkinPart {
|
||||||
|
// Overlays
|
||||||
|
HEAD_OVERLAY_FACE,
|
||||||
|
|
||||||
|
// Head
|
||||||
|
HEAD_TOP,
|
||||||
|
HEAD,
|
||||||
|
FACE,
|
||||||
|
HEAD_LEFT,
|
||||||
|
HEAD_RIGHT,
|
||||||
|
HEAD_BOTTOM,
|
||||||
|
HEAD_BACK,
|
||||||
|
|
||||||
|
// Body
|
||||||
|
BODY_FLAT,
|
||||||
|
BODY_FRONT,
|
||||||
|
|
||||||
|
// Arms
|
||||||
|
LEFT_ARM_TOP,
|
||||||
|
RIGHT_ARM_TOP,
|
||||||
|
|
||||||
|
LEFT_ARM_FRONT,
|
||||||
|
RIGHT_ARM_FRONT,
|
||||||
|
|
||||||
|
// Legs
|
||||||
|
LEFT_LEG_FRONT,
|
||||||
|
RIGHT_LEG_FRONT;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A skin for a player.
|
||||||
|
*/
|
||||||
|
@AllArgsConstructor @Getter @EqualsAndHashCode(onlyExplicitlyIncluded = true) @ToString
|
||||||
|
public static class Cape {
|
||||||
|
/**
|
||||||
|
* The texture URL of the cape.
|
||||||
|
*/
|
||||||
|
@EqualsAndHashCode.Include @NonNull private final String url;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A property of a player's profile.
|
||||||
|
*/
|
||||||
|
@AllArgsConstructor @Getter @EqualsAndHashCode(onlyExplicitlyIncluded = true) @ToString
|
||||||
|
public static class ProfileProperty {
|
||||||
|
/**
|
||||||
|
* The name of this property.
|
||||||
|
*/
|
||||||
|
@EqualsAndHashCode.Include @NonNull private final String name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The value of this property.
|
||||||
|
*/
|
||||||
|
@NonNull private final String value;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Base64 signature of this property, null if none.
|
||||||
|
*/
|
||||||
|
private String signature;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the decoded value
|
||||||
|
* of this property.
|
||||||
|
*
|
||||||
|
* @return the decoded value
|
||||||
|
*/
|
||||||
|
@NonNull
|
||||||
|
public String getDecodedValue() {
|
||||||
|
return new String(Base64.getDecoder().decode(value));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Is this property signed?
|
||||||
|
*
|
||||||
|
* @return whether this property has a signature
|
||||||
|
*/
|
||||||
|
public boolean isSigned() {
|
||||||
|
return signature != null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Actions that can be taken on a player's profile.
|
||||||
|
*/
|
||||||
|
public enum ProfileAction {
|
||||||
|
/**
|
||||||
|
* The player is required to change their
|
||||||
|
* username before accessing Multiplayer.
|
||||||
|
*/
|
||||||
|
FORCED_NAME_CHANGE,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The player is using a banned skin.
|
||||||
|
*/
|
||||||
|
USING_BANNED_SKIN
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user