diff --git a/src/main/java/cc/fascinated/model/skin/ISkinPart.java b/src/main/java/cc/fascinated/model/skin/ISkinPart.java
index 7349589..9ae5d9d 100644
--- a/src/main/java/cc/fascinated/model/skin/ISkinPart.java
+++ b/src/main/java/cc/fascinated/model/skin/ISkinPart.java
@@ -56,6 +56,12 @@ public interface ISkinPart {
return null;
}
+ /**
+ * The vanilla skin parts.
+ *
+ * Skin Format
+ *
+ */
@Getter
enum Vanilla implements ISkinPart {
// Overlays
diff --git a/src/main/java/cc/fascinated/service/PlayerService.java b/src/main/java/cc/fascinated/service/PlayerService.java
index 8fbb6dc..b4745f7 100644
--- a/src/main/java/cc/fascinated/service/PlayerService.java
+++ b/src/main/java/cc/fascinated/service/PlayerService.java
@@ -54,24 +54,23 @@ public class PlayerService {
* @return the player
*/
public CachedPlayer getPlayer(String id) {
- String originalId = id;
- id = id.toUpperCase(); // Convert the id to uppercase to prevent case sensitivity
- log.info("Getting player: {}", originalId);
- UUID uuid = PlayerUtils.getUuidFromString(originalId);
+ // Convert the id to uppercase to prevent case sensitivity
+ log.info("Getting player: {}", id);
+ UUID uuid = PlayerUtils.getUuidFromString(id);
if (uuid == null) { // If the id is not a valid uuid, get the uuid from the username
- uuid = usernameToUuid(originalId).getUniqueId();
+ uuid = usernameToUuid(id).getUniqueId();
}
Optional cachedPlayer = playerCacheRepository.findById(uuid);
if (cachedPlayer.isPresent() && Config.INSTANCE.isProduction()) { // Return the cached player if it exists
- log.info("Player {} is cached", originalId);
+ log.info("Player {} is cached", id);
return cachedPlayer.get();
}
try {
- log.info("Getting player profile from Mojang: {}", originalId);
+ log.info("Getting player profile from Mojang: {}", id);
MojangProfile mojangProfile = mojangAPIService.getProfile(uuid.toString()); // Get the player profile from Mojang
- log.info("Got player profile from Mojang: {}", originalId);
+ log.info("Got player profile from Mojang: {}", id);
Tuple skinAndCape = mojangProfile.getSkinAndCape();
CachedPlayer player = new CachedPlayer(
uuid, // Player UUID
@@ -136,6 +135,7 @@ public class PlayerService {
log.info("Size {} is too small, setting to 32", size);
size = 32;
}
+
ISkinPart part = ISkinPart.getByName(partName); // The skin part to get
if (part == null) {
throw new BadRequestException("Invalid skin part: %s".formatted(partName));
@@ -144,6 +144,7 @@ public class PlayerService {
String name = part.name();
log.info("Getting skin part {} for player: {} (size: {}, renderOverlays: {})", name, player.getUniqueId(), size, renderOverlay);
String key = "%s-%s-%s-%s".formatted(player.getUniqueId(), name, size, renderOverlay);
+
Optional cache = playerSkinPartCacheRepository.findById(key);
// The skin part is cached
@@ -161,7 +162,6 @@ public class PlayerService {
ImageUtils.imageToBytes(renderedPart)
);
log.info("Fetched skin part {} for player: {}", name, player.getUniqueId());
-
playerSkinPartCacheRepository.save(skinPart);
return skinPart;
}