diff --git a/src/main/java/cc/fascinated/common/WebRequest.java b/src/main/java/cc/fascinated/common/WebRequest.java index c6bd3fd..b1fdbae 100644 --- a/src/main/java/cc/fascinated/common/WebRequest.java +++ b/src/main/java/cc/fascinated/common/WebRequest.java @@ -32,19 +32,19 @@ public class WebRequest { * @param the type of the response */ public static T getAsEntity(String url, Class clazz) throws RateLimitException { - ResponseEntity profile = CLIENT.get() + ResponseEntity responseEntity = CLIENT.get() .uri(url) .retrieve() .onStatus(HttpStatusCode::isError, (request, response) -> {}) // Don't throw exceptions on error .toEntity(clazz); - if (profile.getStatusCode().isError()) { + if (responseEntity.getStatusCode().isError()) { return null; } - if (profile.getStatusCode().isSameCodeAs(HttpStatus.TOO_MANY_REQUESTS)) { + if (responseEntity.getStatusCode().isSameCodeAs(HttpStatus.TOO_MANY_REQUESTS)) { throw new RateLimitException("Rate limit reached"); } - return profile.getBody(); + return responseEntity.getBody(); } /** diff --git a/src/main/java/cc/fascinated/model/skin/Skin.java b/src/main/java/cc/fascinated/model/skin/Skin.java index 7ef0623..5d2b30a 100644 --- a/src/main/java/cc/fascinated/model/skin/Skin.java +++ b/src/main/java/cc/fascinated/model/skin/Skin.java @@ -21,10 +21,14 @@ import java.util.Map; @Getter @Log4j2 public class Skin { /** - * The default skin, usually used when the skin is not found. + * The default skins, usually used when the skin is not found. */ - public static final Skin DEFAULT_SKIN = new Skin("http://textures.minecraft.net/texture/60a5bd016b3c9a1b9272e4929e30827a67be4ebb219017adbbc4a4d22ebd5b1", - Model.DEFAULT); + public static final Map DEFAULT_SKINS = new HashMap<>(); + + static { + DEFAULT_SKINS.put(Model.DEFAULT, new Skin(Config.INSTANCE.getWebPublicUrl() + "/assets/steve.png", Model.DEFAULT)); + DEFAULT_SKINS.put(Model.SLIM, new Skin(Config.INSTANCE.getWebPublicUrl() + "/assets/alex.png", Model.SLIM)); + } /** * The URL for the skin @@ -58,6 +62,9 @@ public class Skin { this.model = model; this.skinImage = PlayerUtils.getSkinImage(url); + if (skinImage == null) { // Use the default skin if the skin is not found + this.skinImage = PlayerUtils.getSkinImage(DEFAULT_SKINS.get(model).getUrl()); + } if (this.skinImage != null) { try { BufferedImage image = ImageIO.read(new ByteArrayInputStream(this.skinImage)); diff --git a/src/main/resources/public/assets/alex.png b/src/main/resources/public/assets/alex.png new file mode 100644 index 0000000..b643fe2 Binary files /dev/null and b/src/main/resources/public/assets/alex.png differ diff --git a/src/main/resources/public/assets/steve.png b/src/main/resources/public/assets/steve.png new file mode 100644 index 0000000..90d4fa2 Binary files /dev/null and b/src/main/resources/public/assets/steve.png differ